mirror of
https://github.com/openwall/lkrg.git
synced 2023-12-13 21:30:29 +01:00
b56b8758af
For (non-grub) BLS boot - install generated by Dracut initrd into
systemd-boot loader entry.
Man pages for curious details: systemd-boot(7), bootctl(1),
kernel-install(8).
Link: https://github.com/lkrg-org/lkrg/pull/228#issuecomment-1235403740
Fixes: db42541
("CI: mkosi: Do not assume grub is installed")
Signed-off-by: Vitaly Chikunov <vt@altlinux.org>
38 lines
1.4 KiB
Bash
Executable file
38 lines
1.4 KiB
Bash
Executable file
#!/bin/bash -exu
|
|
# mkosi.postinst - Install compiled module into initramfs and fix grub.
|
|
|
|
# Use kernel with highest version.
|
|
KERNELRELEASE=$(ls -d /lib/modules/* | sort -V | tail -1)
|
|
KERNELRELEASE=${KERNELRELEASE##/lib/modules/}
|
|
|
|
# mkosi phase 2
|
|
#(We only support bios i.e. grub boot here).
|
|
if test -x /usr/bin/dracut; then
|
|
banner postinst >&2
|
|
# Register our module in kmod database.
|
|
depmod -a $KERNELRELEASE
|
|
|
|
# Install module into (and force its load early in) initrd.
|
|
|
|
# Add lkrg by default for any dracut invocation w/o requirement of
|
|
# passing '--force-drivers lkrg' command line option.
|
|
echo 'force_drivers+=" lkrg "' > /etc/dracut.conf.d/31-lkrg.conf
|
|
dracut --force /boot/initrd.img-$KERNELRELEASE $KERNELRELEASE
|
|
|
|
if [ -d /boot/loader/entries ]; then
|
|
# Install into systemd-boot loader.
|
|
|
|
# Because we pass INITRD argument to kernel-install, this will
|
|
# skip calling dracut (saving time, because it would regenerate
|
|
# ALL images) by mkosi hooks, but this will not delete old
|
|
# 'initrd' file from its boot entry, which is not big deal.
|
|
# Boot entry itself will not be duplicated.
|
|
kernel-install add $KERNELRELEASE /boot/vmlinuz-$KERNELRELEASE /boot/initrd.img-$KERNELRELEASE
|
|
fi
|
|
if [ -e /etc/default/grub ]; then
|
|
# Delete default cmdline which contains 'quiet splash' to see full boot log.
|
|
sed -i /GRUB_CMDLINE_LINUX_DEFAULT/d /etc/default/grub
|
|
update-grub
|
|
fi
|
|
fi
|
|
exit 0
|