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:
- phones getting updates to the GPS and Modem installs, if there are any
- 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 withzzz-u-boot-pine* $(uname -r)