#!/usr/bin/env nu # # ~~~ kernel updater # # get device let DEVICE_ID = match (uname | get nodename) { "glados" => "010", "wheatley" => "020", "companioncube" => "110", "cavejohnson" => "120", _ => { error make -u { msg: "invalid device" } } } # get kernel config location let DEVICE_CONFIG = match ($DEVICE_ID) { "010" | "020" => $"/home/autumn/src/kernel/configs/($DEVICE_ID).config", "110" | "120" => $"/root/kernel/configs/($DEVICE_ID).config" } # setup kernel cd /usr/src/linux cp $DEVICE_CONFIG .config make oldconfig # compile kernel match ($DEVICE_ID) { "010" => { make -j20 }, "020" => { make -j12 }, "110" => { make -j3 }, "120" => { make -j8 } } make modules_install make install # build initramfs dracut -f --kernel-image=/boot/vmlinuz # setup EFI directory let OLD_EFI = (ls -l /efi/EFI/Linux/ | get name | first) mv $OLD_EFI /efi/Linux.efi try { rm -r /efi/EFI /efi/loader } # sign initramfs if ($DEVICE_ID != "110") { sbctl sign-all }