PinePhone: Difference between revisions
imported>Tom |
mNo edit summary |
||
(30 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
[https://en.wikipedia.org/wiki/PinePhone PinePhone] is supported by [https://mobile.nixos.org/ Mobile NixOS]: https://mobile.nixos.org/devices/pine64-pinephone.html | [https://en.wikipedia.org/wiki/PinePhone PinePhone] is supported by [https://mobile.nixos.org/ Mobile NixOS]: https://mobile.nixos.org/devices/pine64-pinephone.html | ||
This guide is discusses how to use [https:// | This guide is discusses how to use [https://phosh.mobi/ Phosh], the GNOME-derived UI used by Librem and Mobian. | ||
== Requirements == | == Requirements == | ||
Line 9: | Line 9: | ||
* [https://github.com/NixOS/mobile-nixos/issues/342 boot.growPartition has no effect] | * [https://github.com/NixOS/mobile-nixos/issues/342 boot.growPartition has no effect] | ||
* [https://github.com/NixOS/mobile-nixos/issues/373 how to cross-compile] | * [https://github.com/NixOS/mobile-nixos/issues/373 how to cross-compile] | ||
== Status == | == Status == | ||
=== Phosh === | === Phosh === | ||
https://github.com/ | Working with: | ||
<syntaxhighlight lang="nix"> | |||
xserver.desktopManager.phosh = { | |||
enable = true; | |||
user = "alice"; | |||
group = "users"; | |||
# for better compatibility with x11 applications | |||
phocConfig.xwayland = "immediate"; | |||
}; | |||
</syntaxhighlight> | |||
=== Battery === | |||
Wake-on-modem works. | |||
Wake-on-WiFi is not supported. Something like https://gist.github.com/Peetz0r/bf8fd93a60962b4afcf2daeb4305da40 is needed. | |||
=== Browsing === | === Browsing === | ||
Line 28: | Line 40: | ||
Working with: | Working with: | ||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix"> | ||
programs.calls.enable = true; | |||
services. | # Optional but recommended. https://github.com/NixOS/nixpkgs/pull/162894 | ||
systemd.services.ModemManager.serviceConfig.ExecStart = [ | |||
"" # clear ExecStart from upstream unit file. | |||
"${pkgs.modemmanager}/sbin/ModemManager --test-quick-suspend-resume" | |||
]; | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Known issues: | Known issues: | ||
* incoming calls don't trigger music to be paused. Likely need something like https://source.puri.sm/Librem5/librem5-base/-/merge_requests/170/diffs | * incoming calls don't trigger music to be paused. Likely need something like https://source.puri.sm/Librem5/librem5-base/-/merge_requests/170/diffs | ||
=== SMS === | === SMS === | ||
Working with: | Working with: | ||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix"> | ||
environment.systemPackages = [ | environment.systemPackages = [ pkgs.chatty ]; | ||
]; | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 59: | Line 63: | ||
=== Camera === | === Camera === | ||
{{ic|pkgs.megapixels}} is the only known application to [https://git.sr.ht/~martijnbraam/megapixels#linux-video-subsystem work with | {{ic|pkgs.megapixels}} is the only known application to [https://git.sr.ht/~martijnbraam/megapixels#linux-video-subsystem work with Pinephone]. Does not always start correctly, retrying might help. | ||
https://github.com/NixOS/mobile-nixos/issues/ | * Front camera works out-of-the-box. | ||
* Back camera works, but autofocus does not ( https://github.com/NixOS/mobile-nixos/issues/393 ) | |||
=== Mobile internet === | === Mobile internet === | ||
Working ( | Working via gnome-control-center ("Mobile Broadband" section), or: | ||
{{Commands|$ nmcli c add type gsm ifname cdc-wdm0 con-name $PROVIDER apn $APN}} | {{Commands|$ nmcli c add type gsm ifname cdc-wdm0 con-name $PROVIDER apn $APN}} | ||
=== GPS === | === GPS === | ||
Line 92: | Line 88: | ||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix"> | ||
hardware.sensor.iio.enable = true; | hardware.sensor.iio.enable = true; | ||
hardware.firmware = [ config.mobile.device.firmware ]; | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Disk encryption === | === Disk encryption === | ||
The boot process supports opening LUKS volumes. Creating an image to use LUKS is unsupported, but possible. The idea is to write an encrypted LUKS volume to the root partition, as described in https://github.com/NixOS/mobile-nixos/tree/master/examples/testing/qemu-cryptsetup. | The boot process supports opening LUKS volumes. Creating an image to use LUKS is unsupported, but possible. The idea is to write an encrypted LUKS volume to the root partition, as described in https://github.com/NixOS/mobile-nixos/tree/master/examples/testing/qemu-cryptsetup. | ||
=== Hardware acceleration for video === | |||
See https://github.com/NixOS/mobile-nixos/issues/398. | |||
=== Torch === | === Torch === | ||
Working, per https://github.com/NixOS/mobile-nixos/issues/379 | |||
=== Bluetooth === | === Bluetooth === | ||
Working with: | |||
<syntaxhighlight lang="nix"> | |||
mobile.boot.stage-1.firmware = [ | |||
config.mobile.device.firmware | |||
]; | |||
</syntaxhighlight> | |||
=== Modem firmware === | |||
Per https://wiki.pine64.org/wiki/PineModems#Upgrade/switch_firmware_via_fwupd , fwupd can be used to flash the FOSS Modem firmware. To enable fwupd: | |||
<syntaxhighlight lang="nix"> | |||
services.fwupd.enable = true; | |||
</syntaxhighlight> | |||
=== Alarm clocks === | === Alarm clocks === | ||
Line 110: | Line 123: | ||
== Recommended applications == | == Recommended applications == | ||
See https://linmobapps.frama.io/ for a list of applications that behave well on small screens, | See https://linmobapps.frama.io/ for a list of applications that behave well on small screens, and in particular https://apps.gnome.org/. | ||
== See also == | == See also == | ||
Line 125: | Line 133: | ||
* [https://wiki.postmarketos.org/wiki/PINE64_PinePhone_(pine64-pinephone) PostmarketOS's Pinephone docs] | * [https://wiki.postmarketos.org/wiki/PINE64_PinePhone_(pine64-pinephone) PostmarketOS's Pinephone docs] | ||
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/main/device-pine64-pinephone PostmarketOS's Pinephone config] | * [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/main/device-pine64-pinephone PostmarketOS's Pinephone config] | ||
[[Category: Hardware]] |
Latest revision as of 19:40, 24 April 2024
PinePhone is supported by Mobile NixOS: https://mobile.nixos.org/devices/pine64-pinephone.html
This guide is discusses how to use Phosh, the GNOME-derived UI used by Librem and Mobian.
Requirements
This document assumes you have set up NixOS on your PinePhone, as described in https://mobile.nixos.org/getting-started.html
Beware known issues:
Status
Phosh
Working with:
xserver.desktopManager.phosh = {
enable = true;
user = "alice";
group = "users";
# for better compatibility with x11 applications
phocConfig.xwayland = "immediate";
};
Battery
Wake-on-modem works. Wake-on-WiFi is not supported. Something like https://gist.github.com/Peetz0r/bf8fd93a60962b4afcf2daeb4305da40 is needed.
Browsing
- GNOME Web is installed by default.
- `pkgs.firefox-wayland` works but doesn't scale down the UI well. https://gitlab.com/postmarketOS/mobile-config-firefox is needed for that.
Sound
Working. Settings -> Sound ->Output -> Configuration -> HiFi
Calling
Working with:
programs.calls.enable = true;
# Optional but recommended. https://github.com/NixOS/nixpkgs/pull/162894
systemd.services.ModemManager.serviceConfig.ExecStart = [
"" # clear ExecStart from upstream unit file.
"${pkgs.modemmanager}/sbin/ModemManager --test-quick-suspend-resume"
];
Known issues:
- incoming calls don't trigger music to be paused. Likely need something like https://source.puri.sm/Librem5/librem5-base/-/merge_requests/170/diffs
SMS
Working with:
environment.systemPackages = [ pkgs.chatty ];
MMS
Unsupported. See https://source.puri.sm/Librem5/chatty/-/issues/30
Camera
pkgs.megapixels
is the only known application to work with Pinephone. Does not always start correctly, retrying might help.
- Front camera works out-of-the-box.
- Back camera works, but autofocus does not ( https://github.com/NixOS/mobile-nixos/issues/393 )
Mobile internet
Working via gnome-control-center ("Mobile Broadband" section), or:
$ nmcli c add type gsm ifname cdc-wdm0 con-name $PROVIDER apn $APN
GPS
Working with GNOME applications with:
- allow Phosh to use geoclue
- and the following:
services.geoclue2.enable = true;
users.users.geoclue.extraGroups = [ "networkmanager" ];
Sensors
The acceleration, compass, and ambient light sensors provide working auto-rotation, compass, and auto-brightness, when you:
hardware.sensor.iio.enable = true;
hardware.firmware = [ config.mobile.device.firmware ];
Disk encryption
The boot process supports opening LUKS volumes. Creating an image to use LUKS is unsupported, but possible. The idea is to write an encrypted LUKS volume to the root partition, as described in https://github.com/NixOS/mobile-nixos/tree/master/examples/testing/qemu-cryptsetup.
Hardware acceleration for video
See https://github.com/NixOS/mobile-nixos/issues/398.
Torch
Working, per https://github.com/NixOS/mobile-nixos/issues/379
Bluetooth
Working with:
mobile.boot.stage-1.firmware = [
config.mobile.device.firmware
];
Modem firmware
Per https://wiki.pine64.org/wiki/PineModems#Upgrade/switch_firmware_via_fwupd , fwupd can be used to flash the FOSS Modem firmware. To enable fwupd:
services.fwupd.enable = true;
Alarm clocks
Not working:
- GNOME Clocks will not wake up the phone: https://gitlab.gnome.org/GNOME/gnome-clocks/-/issues/100
- https://github.com/Dejvino/birdie looks good, but is not packaged.
Recommended applications
See https://linmobapps.frama.io/ for a list of applications that behave well on small screens, and in particular https://apps.gnome.org/.
See also
- xnux.eu ("megi") is authoritative on hardware capabilities
- PinePhone multi-distro demo image is an easy way to see which functionality works in other distros.
- Arch Linux's Pinephone config
- Mobian's Pinephone docs
- PostmarketOS's Pinephone docs
- PostmarketOS's Pinephone config