The PinePhone is a Linux-native mobile phone. It is based on an AllWinner CPU. Fedora does not (yet) support the PinePhone, but it is possible to get it running with a custom kernel. (Update: 03/30/2020 - It should now be possible to boot regular Fedora Rawhide, provided you can get u-boot to cooperate. This has not been tested, so you should still follow the custom kernel guide for now.) This documentation describes how to install Fedora on a PinePhone, and links to useful resources.
You can install to one of two locations; either you install Fedora to the µSD card (expect about 23MiB/s read speed) or the eMMC (expect more than twice the read speed. Depending on your PinePhone model, you can get up to 3.5 times faster then µSD) (source, section Storage).
Installing to µSD is risk free, if something break you remove it and the phone boots whatever is present on the eMMC. But your experience will be hampered by the comparatively slow speed of the SD card controller.
Installing to eMMC allows you to have a fair comparison against the OS your PinePhone was shipped with.
The Pine64 wiki has instructions on how to set up your PinePhone as shipped from the factory, so the risk of flashing to eMMC is still low.
Install to µSD card
An unofficial script that generates a flashable image can be found here, and unofficial prebuilt images can be found here. The images support both booting from the internal eMMC and booting from an SD card.
Install to eMMC
- Fetch the unofficial prebuilt Fedora image from the section above
- Fetch (and write to µSD card) the tool JumpDrive. It allows you to write to eMMC. Please see the instructions in the Pine64 wiki
- Boot the phone with JumpDrive and then write the eMMC from your PC
- Writing to the eMMC of a PinePhone that booted JumpDrive uses the same commands as writing to a µSD card
- Do not forget to resize the 2nd partition on the eMMC and the f2fs file system in that partition
The default GNOME install doesn't work very well on such a small touch screen. Instead, Purism's Phosh and various other related software have been packaged in the njha/mobile COPR, and are slowly moving over to the main package repository. KDE Plasma Mobile should also be compatible, but hasn't been packaged. If you're interested in packaging it, coordinate with others in the chat.
- carbons - XMPP Message sync for libpurple. Used by chatty.
- chatty - A libpurple client (alternative to Pidgin) optimized for Phosh.
- pidgin - A mildly hacked up version of pidgin that exposes private libraries for chatty to link with. (Don't worry, upstream is working on it.)
- purple-mm-sms - A libpurple plugin for SMS- integrates with ModemManager.
- rtl8723cs-firmware - Firmware needed for Bluetooth on the PinePhone.
- pinephone-helpers - Runs some scripts to initialize the modem, switch audio routing when a call is in progress, etc. Ideally all these tweaks will be built into the respective software eventually.
italic packages are new and previously from the njha/mobile copr repo.
- NetworkManager - Connect to the modem, needed for data, sms, calls.
- gnome-terminal - Self explanatory
- gnome-contacts - Self explanatory
- purple-matrix - Matrix plugin for libpurple.
- purple-telegram - Telegram plugin for libpurple.
- gdm - Self explanatory. Ideally this would be switched out for lightdm but I (njha) haven't been able to get that to work.
- squeekboard - A touchscreen mobile keyboard, integrated with Phosh.
- feedbackd - Physical feedback daemon (LED, vibration, sound) integrated with Phosh.
- calls - A phone dialer and call handler.
- callaudiod - A call audio routing daemon used in Calls.
- phoc - A wayland compositor, needed to run phosh.
- phosh - A mobile version of the GNOME shell.
We need help with everything! Please help :)
If you're interested in improving Fedora on PinePhone, there is a bridged chatroom for Telegram, Matrix, and IRC.
- Telegram: https://t.me/fedoraphone
- IRC: on Libera.chat (not recommended, images and video aren't bridged)
- Matrix: #fedora-mobile:matrix.org
- Pine64's Wiki: https://wiki.pine64.org/index.php/PinePhone
- Megi' Website + Kernel: https://xnux.eu/devices/pine64-pinephone.html
- Pine64's Kernel: https://gitlab.com/pine64-org/linux/
- PostmarketOS Wiki: https://wiki.postmarketos.org/wiki/PINE64_PinePhone_(pine64-pinephone)
- Pine64 Forum: https://forum.pine64.org/forumdisplay.php?fid=120