systemd-vconsole-setup needs the dracut i18n module so that
the binary loadkeys is present. The binary loadkeys comes from
the kbd package.
A custom dracut module patch for i18n was created, so that only the
default `us` keymap and font are installed, leading the size
increase to the minimum of around a few KB instead of 3MB.
Signed-off-by: Adrian Vladu <avladu@cloudbasesolutions.com>
Fix a missing mkdir of /sysroot/etc/flatcar/sysext from the initrd before
attempting to move sysext files there. Also explicitly omit dracut zfs module
from initrd generation.
Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
emerge-gitclone was never GPL-2.0, it was BSD-3. We're switching it to
Apache-2.0 with this commit.
Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
This commit is part of the effort to decrease the initrd size:
Partially-Fixes: https://github.com/flatcar/Flatcar/issues/1381
Signed-off-by: Adrian Vladu <avladu@cloudbasesolutions.com>
'norecovery' was deprecated and has been removed in kernel v6.8 so switch to
the new way of doing things.
This pulls in https://github.com/flatcar/update_engine/pull/40.
Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
Putting things in a sysexts subdir results in the same layout on
bincache and does not follow the expected url schema for fetching the
sysext.
Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
Gentoo's linux-info.eclass tries to check the kernel version by
including /lib/modules/.../source/Makefile and printing $(VERSION). It
unsets ARCH= before doing this (no clue why) which works with a full
source tree but not with our minimized one. To fix this we need to
archive arch/x86/Makefile also for arm64.
Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
This allows it to be sourced from other scripts and used e.g. in
generating an image changes summary.
Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
There are two challenges with the sysext: it needs config files in /etc
and it needs udev rules for mounting during boot to work. The etc files
are placed in the standard flatcar etc overlay path but the overlay is
mounted from the initrd. So instead, we create a tmpfiles.d rule that
symlinks the best important files over. For the udev issue, we create a
drop-in in /etc that ensures udev runs after systemd-sysext.
We also can't rely on systemd presets to work, so instead parse the
preset file and statically create the service dependencies. For the
primary zfs.target we rely on an Upholds entry. Users can still disabled
unwanted services if they want.
We also removed unnecessary files:
- development files
- initramfs related scripts
Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
The zfs-kmod ebuild needs KERNEL_DIR to point to the correct
/lib/modules directory.
The zfs ebuild installs two systemd unit masks to /usr/lib/systemd which
result in "dangling symlink" errors during the image build. These
systemd unit masks are only necessary for old Ubuntu systems that have
sysv-init-systemd compat wrappers.
Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>