blob: b84fc77d4e6c542d981a42e60b088efe58430f04 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
#!/usr/bin/env nu
#
# ~~~ kernel updater
#
# get device
let DEVICE_ID = match (uname | get nodename) {
"glados" => "010",
"wheatley" => "020",
"caroline" => "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 }
}
# compile modules
emerge -qv @module-rebuild
# install kernel
make modules_install
make install
# build initramfs
dracut -v -f --kernel-image=/boot/vmlinuz
# setup EFI directory
if ($DEVICE_ID == "110") {
rm /efi/EFI/Linux/Linux.efi
let OLD_EFI = (ls -l /efi/EFI/Linux/ | get name | first)
mv $OLD_EFI /efi/EFI/Linux/Linux.efi
} else {
rm /efi/Linux.efi
let OLD_EFI = (ls -l /efi/EFI/Linux/ | get name | first)
mv -f $OLD_EFI /efi/Linux.efi
try { rm -r /efi/EFI /efi/loader }
sbctl sign-all
}
|