many: enable sysota for QEMU x86{,-64}
This branch enables SysOTA for the currently supported QEMU targets. ARM is not supported only because we don't have bootable disk-images for QEMU, not because of any inherent incompatibility.
Apart from MACHINE-specific configuration files for RAUC (that, for the moment, encode block device names and the COMPATIBLE) and SysOTA (that encode the MACHINE string) everything is entirely generic wherever GRUB is supported.
I've tested this, including boot, update and rollback for qemux86 and qemux86-64 MACHINEs.
This does duplicate some of the other branches I had open but perhaps it would be easier to evaluate as one piece. It depends on !570 (for some edge cases in case grubenv is damaged) and !569 (on x86_64).
zstd support is only required to update, the system will boot a vanilla image without this patch.
Even with this landed there are some TODOs that I've left out for another wave:
- Partition type UUIDs for SYS_A and SYS_B partitions in our wic images.
- GRUB's partition type UUID support will allow our GRUB boot script to be platform independent and no longer machine specific.
- Similar change to all the RAUC configuration files, so that they don't have to name block devices manually.
- Extending this to SECO x86 systems (we need similar MACHINE-specific patches and a test on a real board that I don't have at the moment, CC @ektor5) (This is now #482 (closed))
- Removing the kernel image from the EFI system partition - this is dead file that nothing references anymore. (This is now #483)
Closes: #70 (closed)