diff options
| author | Autumn <git@autumnfo.rest> | 2026-04-18 11:09:31 +0100 |
|---|---|---|
| committer | Autumn <git@autumnfo.rest> | 2026-04-18 11:09:31 +0100 |
| commit | a8b93ff0403f617cfe170ea086c4de5437d1b9f4 (patch) | |
| tree | 31354380baacfeab7b8024cc5e7a40708b73b93a | |
| parent | 23779acd0eec2c274f4facf13a4f4d01cd6f8610 (diff) | |
[meta] added kernel compile script
| -rwxr-xr-x | kernel.nu | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/kernel.nu b/kernel.nu new file mode 100755 index 0000000..ba3a5e2 --- /dev/null +++ b/kernel.nu @@ -0,0 +1,51 @@ +#!/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 +} |
