also simplify environment prep and fix qemu dependencies
the matrix should ensure we never run out of space while building
unfortunately, github limits us to 10 inputs so we can't add a selector
for live iso platforms
recent qemu updates mean we don't need to hardcode the binfmts, as they
are shipped as files generated by qemu, importable by update-binfmts.
ref: #386
this can be used to define special platform-specific support things,
like extra packages, a device tree, and cmdline. This allows creating
live isos that support generic arm64 UEFI as well as ones that require
special care (like the x13s)
chose to do it *post* install, just before syncing and unmounting,
because it's the easiest place to know exactly what services will be
available and which will be enabled in the target system in the mess
that is the el-cheapo installer.
filters out some important services that users shouldn't be messing with
at this point in the install, like some agettys, udevd, and sulogin.
dkms makes `/var/lib/dkms` during xbps's package configuration, so if
a dkms module comes *before dkms alphabetically*, it fails `dkms add`
with `Error! No write access to DKMS tree at /var/lib/dkms` (which is
silenced by the xbps trigger)... because `/var/lib/dkms` doesn't exist
yet.
fixes: #358
add hotkeys for:
- speech + nomodeset (g)
- memtest (m)
- uefi firmware (f)
- reboot (b)
- poweroff (p)
the nomodeset entry will be useful in cases like the nvidia 6.6 issue,
where boot fails due to graphics drivers issues.
dracut/vmklive: add hook that disables display manager services if
nomodeset is set
fixes: #160
This commit add a -S option that changes the default root shell of
the iso. It also mentions the live.shell kernel option that changes
the shell of the unprivileged user (anon).
because growpart is now run at boot, we can make the base image smaller.
This does not provide any benefit when compressed (the image is still
81M compressed with xz 9), but this should be much faster to write to
the target SD card/USB drive for SBCs, where the throughput is rather
slow. Growpart will inflate the root partition to a reasonable size for
the user. Users who want more flexibility in partitioning should be
doing a chroot/PLATFORMFS install.
for whatever reason, the old workflow was running out of space on the
runner. splitting it up into different jobs and combining it at the end
fixes that. not 100% optimal because it doesn't reüse the ROOTFS when
building PLATFORMFS and PLATFORMFS when building SBC images. I couldn't
think of a good way to do that if e.g. generating ROOTFSes was not
done in the ROOTFS step.
also add checkboxes for each kind of image to make it more ergonomic to
generate a subset of images while still keeping the default strings.
unfortunately, this means we're at the max number of inputs so something
will have to change if we reënable netboot images or something.
- add some error handling to `umount_pseudofs`
- disable the trap before running `error_out` to stop it running multiple times
- add `--one-file-system` to ensure that the `rm -rf` can't screw you
fixes#364