Saturday, February 12, 2022

[fedora-arm] Re: Fedora on Pinephone Pro & path to upstreaming

Hi,

> 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

Does the PPP have SPI flash? I've not seen any documentation that says
it does and of late Pine64 has sadly been dropping it on devices, I
would love to be proved wrong on that. Also You miss 0) USB recovery,
I'm hoping the PPP has a means of putting it into this mode with the
external HW buttons similar to how you can do so with all Android
phones.

> 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.

See point above about USB recovery.

> 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.

I see a number of problems with tow-boot. 1) I don't see any reference
in that post to the PPP 2) The whole "incubator for my long shot
ideas" just says to me "throw any shit over the fence" which means if
it doesn't work with Fedora we're shit out of luck and can't fix stuff
ourselves 3) I don't see the project having independent code review
for security and related bits. 4) support. 5) without a SPI flash
there's a bunch of other possible issues

> 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-create-images

The points you make here are completely orthogonal to tow-boot or
upstream U-Boot, we make generic images for all our deliverables and
while there's separate scripts at the moment there will not be once
the Mobility initiative is fully upstreamed into Fedora.

Fedora doesn't use livemedia-creator for it's arm images currently so
Neal (AKA Conan Kudo) is wrong. It currently uses image-factory and
will be migrating to ImageBuilder before the Mobility images become
official so yes, you've misunderstood due to the incorrect information
provided to you.

> 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.

This point is irrelevant in the context of specific device support and
there's already work afoot here anyway. We won't be producing PPP
specific images, we will be producing a single image for each Mobility
UX, or possibly one with all of them. There's no need for device
specific images and Fedora has never gone that route.

> 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/35916/15

Someone will have to do the work to add a plymouth OSK of some sort,
with the work my team is doing for Edge/IoT the encryption problem is
solved when we move to ImageBuilder, we expect the first pieces of
that to land for Fedora IoT in F-37 and I'll be working to move all
Fedora deliverables over to that so Mobility will be able to just
consume that work,

> Does this seem like a reasonable plan? Is there anything I've overlooked?

No, TBH not really.
_______________________________________________
arm mailing list -- arm@lists.fedoraproject.org
To unsubscribe send an email to arm-leave@lists.fedoraproject.org
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/arm@lists.fedoraproject.org
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure

No comments:

Post a Comment