Skip to content

focal: add pine64 images

This imports my Pine64 focal work downstream building images, to upstream. The import brings in a new focal/pine64 folder, as not to replace the xenial one. It contains a generic overlay folder for all 4 devices, alongside a scripts folder and a files folder for bootloader bits per device. Additionally, it brings in 5 Debos scripts: a focal/focal-pine64-core.yaml that builds the generic pine64 filesystem w/ the overlay folder and our extra needed APT packages; it will also contain the kernel. The other 4 scripts are for each of the 4 devices, focal/ubuntu-touch-pine{device}-img.yaml, which creates a deployable .img file for eMMC or SD flashing. On the pinephone + pinephone-pro scripts, in addition to deploying + enabling correct bootloader bits, these also install GPS and Modem support. The pinetab and pinetab2 images separately have u-boot-{platform}.bin's that need to be placed into their filesystems, and special scripts to keep the uboot maintained on the image, because they do not support Tow-Boot like the phones do. However, all devices commonly use extlinux/u-boot-menu now instead of flash-kernel.

So what does this mean for system-image?

There are certainly complications. In theory, running focal/focal-pine64-core.yaml with a finalize afterwards will give you a clean generic pine64 tarball for system-image to consume, but because of the device-specifics that are in the img scripts, some stuff may still be missing. The u-boot bins most likely shouldn't be touched, they are stable as is. The boot maint scripts that are placed likewise probably shouldn't be changed - they do what they are supposed to do. However, that leaves 2 issues:

  1. phones getting updates to the GPS and Modem installs, if there are any
  2. the /boot folder correctly updating the files for any kernel changes; basically we need to cp the whole tarball over, and not replace the entire folders, so that old bootloader stuff still remains (because we want it to). Additionally, extlinux will have to re-generate on the device somehow with zzz-u-boot-pine* $(uname -r)
Edited by Oren Klopfer

Merge request reports