Hello,
I've been using Fedora on my Pinephone for like 9 months or so and my Pinephone Pro
Explorer Edition just arrived the other day. The original Pinephone's boot order had
the microSD card before the eMMC which made it really easy to try different OSes. By
contrast, on the Pinephone Pro, the boot order in hardware is:
1. SPI flash
2. eMMC
3. microSD
From the factory, there is a u-boot image on the eMMC drive which will boot an OS from the
SD card before the eMMC and there is nothing on the SPI flash. This is problematic because
it's really easy to accidentally get the device into an unbootable state when
installing an OS to the eMMC drive if the factory uboot build is erased. There is a way to
temporarily disable the eMMC drive in hardware to make it boot from SD, but that's not
obvious or convenient. So, currently, the Pine wiki
(
https://wiki.pine64.org/wiki/PinePhone_Pro) advises against replacing the stock Manjaro
OS on the eMMC drive and few distros are providing prebuilt images.
People working on different distros have been coordinating how to deal with this. The plan
is to use a fairly new project, Tow Boot, and flash it to the SPI flash:
https://samuel.dionne-riel.com/blog/2021/05/10/unveiling-tow-boot.html Putting the
platform firmware on the SPI flash chip separate from the eMMC drive will make the process
of installing OSes easier and more foolproof. Support for the Pinephone Pro in Tow Boot is
almost ready with support for the Pinephone Pro's SPI flash just added today, albeit
it needs a little polishing. Tow Boot on the SPI flash will make the process of installing
an OS similar to x86; distros just need to create a UEFI bootable system and do not need
to worry about shipping platform firmware. Tow Boot also obviates the need for JumpDrive.
Simply pressing the volume up button on boot will expose the eMMC drive as a USB mass
storage device, refer to
https://github.com/Tow-Boot/Tow-Boot/pull/67 for details about
the UX design. Hopefully future Pinephon
e Pro batches will ship with Tow Boot on the SPI flash from the factory, but for now
users will need to install it by booting a Linux system from an SD card. A Tow Boot
installer image like that has already been made for the Pinebook Pro, so I think one for
the Pinephone Pro will be ready to test soon.
This is great new for Fedora because I think it means we can use the normal Fedora tools
for building ARM images to create UEFI bootable images without needing the scripts in
https://github.com/nikhiljha/pp-fedora-sdsetup that were made for the Pinephone. Using
Fedora tooling to build the Pinephone Pro images opens up the path to smartphone support
in upstream Fedora. I've been digging around in scattered documentation and talking to
Conan Kudo on Matrix and IIUC, the way the upstream images are built is that Punji calls
`koji image-build` which calls livemedia-creator. Please correct me if I've
misunderstood this. I've tried to figure out how to build aarch64 images locally on my
x86-64 laptop and made a bit of progress using Mock with livemedia-creator as documented
at
https://weldr.io/lorax/livemedia-creator.html#using-mock-and-no-virt-to-c...
Thanks to the efforts getting Fedora on the original Pinephone, good progress has been
made getting Plasma Mobile and Phosh packaged in upstream Fedora. There are still a
handful of packages in the
https://copr.fedorainfracloud.org/coprs/njha/mobile/ COPR
repository that aren't upstream. I think enough has been upstreamed at this point that
we can start working on base Plasma Mobile and Phosh Kickstart files to use with
livemedia-creator that could eventually make it upstream. For now, we'll still need
device-specific Kickstarts for the downstream kernel packages which could %include the
base Plasma Mobile or Phosh Kickstart. Fortunately for the Pinephone Pro, distros are
coordinating to avoid the fragmentation that has happened with kernels for the original
Pinephone and development effort is being coordinated on the
https://gitlab.com/pine64-org/linux/-/tree/pine64-kernel-ppp-5.16.y/ repository.
One important feature that we haven't gotten working on the Pinephone is full disk
encryption. One issue blocking this is that Plymouth (the software in the initrd that asks
for the LUKS password) does not have an on screen keyboard:
https://gitlab.freedesktop.org/plymouth/plymouth/-/issues/144 Also, the Anaconda GUI
wasn't designed for small touchscreen devices without a keyboard. Fortunately this
could change with the recently announced rewrite of the Anaconda GUI:
https://discussion.fedoraproject.org/t/anaconda-is-getting-a-new-suit/359...
Does this seem like a reasonable plan? Is there anything I've overlooked?