This update is the fifth in a series of regular updates on the state of the project.
Only changes that have been accepted and merged in Mobile NixOS are chronicled here. There’s always more work currently in-progress.
17 PRs were merged during the month. (The link says 18, but one of them was, to me, late in February, read the previous news item).
Let’s look at some of these.
Pine64 Pinephone “Braveheart”
This brings a bit more than only a new device. This is the fourth system type added to Mobile NixOS. The added system type (U-Boot) in theory will give us the ability to support any U-Boot-based system in a common way. In practice the still unmerged and WIP #94 shows how this is true by using U-Boot with another Pine64 device, the Pinebook Pro.
A nice thing that was verified again with this new device port is that the stage-2 image (the rootfs, the system.img) is indeed universal. It is using the same AArch64 build of the system image as Android-based devices, and Depthcharge-based devices.
Our build for the Pinephone relies on the downstream kernel from the Pine64 community, with only one added patch. The same is done for the U-Boot build.
The added patches are user-experience-focused patches that are using the RGB LED of the phone to show the boot status.
Other than that, the hardware support is not complete, but it is supported at the same level as other devices, plus Wi-Fi working.
See PR #96 for all the details.
What this gives us is automatic continuous builds of Mobile NixOS against the
nixos-unstable NixOS channel. From this, we can track changes that break the
Mobile NixOS builds, and track internal breakage to some parts of Mobile NixOS.
This is not even the best part. As can be seen in #133,
we are now delivering up-to-date stage-2 rootfs, which allows end-users without
the required hardware to
bootstrap themselves using a pre-built image. The requirement to have a native
AArch64 machine to build the system image is no more. While not ideal, users
could make use of their phone to build a customized image, or simply, do a
nixos-rebuild on it.
It already paid its worth in gold, as by the time this was developed, two regressions were spotted and quickly fixed. And furthermore, I hope that the exercising of the cross-compilation framework will help the NixOS developers working on making cross-compilation better in NixOS.