aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAutumn <git@autumnfo.rest>2026-04-18 11:09:31 +0100
committerAutumn <git@autumnfo.rest>2026-04-18 11:09:31 +0100
commita8b93ff0403f617cfe170ea086c4de5437d1b9f4 (patch)
tree31354380baacfeab7b8024cc5e7a40708b73b93a
parent23779acd0eec2c274f4facf13a4f4d01cd6f8610 (diff)
[meta] added kernel compile script
-rwxr-xr-xkernel.nu51
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
+}