# December 2020 round-up

DevFeed: [December 2020 round-up](<https://devfeed.tech/articles/december-2020-round-up-32468.md>)

Original publisher: [Read original article](<https://mobile.nixos.org/news/2021-01-05-december-2020-round-up.html>)

Author: Samuel Dionne-Riel

Published: 2021-01-05T00:00:00Z

Content type: article

Language: en

Sources: [Mobile NixOS news](<https://devfeed.tech/sources/mobile-nixos-news.md>)

Topics: [Mobile](<https://devfeed.tech/topics/mobile.md>), [boot](<https://devfeed.tech/topics/boot.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [UEFI](<https://devfeed.tech/topics/uefi.md>), [x86](<https://devfeed.tech/topics/x86.md>), [qemu](<https://devfeed.tech/topics/qemu.md>), [toolchain](<https://devfeed.tech/topics/toolchain.md>), [touchscreen](<https://devfeed.tech/topics/touchscreen.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [boot](<https://devfeed.tech/tags/boot.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [qemu](<https://devfeed.tech/tags/qemu.md>), [toolchain](<https://devfeed.tech/tags/toolchain.md>), [touchscreen](<https://devfeed.tech/tags/touchscreen.md>), [uefi](<https://devfeed.tech/tags/uefi.md>), [x86](<https://devfeed.tech/tags/x86.md>)

## AI overview

This December 2020 Mobile NixOS project update covers a stage-0 boot scheme that can boot a generation's kernel and stage-1 image, with support verified on the Pinephone and available for UEFI x86_64 devices. It also reports Pinephone Crust firmware support, introduces a generic UEFI x86_64 build, and removes qemu-x86_64 in favor of a more generic device.

## Source excerpt

This update is the thirteenth 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. Notable changes During the month 12 pull requests were merged. Some interesting improvements landed, let's dive in. stage-0: boot in generation kernel+initrd One of the biggest flaw with the approach Mobile NixOS takes with the boot flow is that it completely ignores the system generation's kernel and stage-1 image. In turn, this reduces some of the benefits from NixOS, by reducing the coherency of the running system; the kernel and stage-1 are managed out of band. With the changes from #262, devices can opt-in to a stage-0 scheme. A stage-0 image is the same as a stage-1 image, except that it will use kexec to boot into the generation's kernel and stage-1 image. Devices, and their kernels, need to support kexec. This is not a given for vendor kernels. At the time being, none of the Android-based devices (all using the vendor kernels) can use this feature. On the bright side, the Pinephone has been verified to work well. Additionally, UEFI x86_64 based devices, too, can use the stage-0 scheme. Device-specific changes pine64-pinephone: Crust firmware support With the addition of the or1k toolchain to Nixpkgs, @noneucat was able to finish the pull request adding Crust support to the Pinephone. Details about Crust can be found on their project page. To use U-Boot with Crust, you will need to build it, then install it manually on your boot media. (A helper to upgrade the firmware is planned for the future.) Not related to Crust, the usual kernel upgrade for the Pinephone has been made. Introduction of uefi-x86_64 The introduction of the Generic UEFI build (x86_64) "device" may seem odd. It is meant to be used on a standard computer. But a standard computer is not a mobile device. Really, this is a dogfooding measure. With this change, it is now possib