Skip to content

Commit 6c8436c

Browse files
committed
check that the build time kernel version matches the runtime kver
Signed-off-by: Zen <[email protected]>
1 parent eddf494 commit 6c8436c

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

src/ugrd/kmod/kmod.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
__author__ = "desultory"
2-
__version__ = "4.1.0"
2+
__version__ = "4.2.0"
33

44
from pathlib import Path
55
from platform import uname
@@ -624,6 +624,17 @@ def process_modules(self) -> None:
624624
self.logger.warning("[%s] Failed to process autodetected kernel module dependencies: %s" % (kmod, e))
625625
self["kmod_ignore"] = kmod
626626

627+
@contains("kernel_version", "Kernel version is not set, skipping kernel version check.", log_level=30)
628+
def check_kver(self) -> str:
629+
""" Returns shell lines to check that the defined kernel version matches the running kernel version."""
630+
return f"""
631+
running_kver=$(awk '{{print $3}}' /proc/version)
632+
if [[ "$running_kver" != "{self['kernel_version']}" ]]; then
633+
eerror "Running kernel version ($running_kver) does not match the defined kernel version ({self['kernel_version']})"
634+
eerror "Please ensure the correct kernel version is being booted."
635+
fi
636+
"""
637+
627638

628639
@contains("kmod_init", "No kernel modules to load.", log_level=30)
629640
def load_modules(self) -> str:

src/ugrd/kmod/kmod.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,4 @@ kmod_no_normalize = "NoDupFlatList" # Kernel modules to not normalize (i.e. not
4040
"ugrd.kmod.kmod" = [ "regen_kmod_metadata" ]
4141

4242
[imports.init_pre]
43-
"ugrd.kmod.kmod" = [ "load_modules" ]
43+
"ugrd.kmod.kmod" = [ "check_kver", "load_modules" ]

0 commit comments

Comments
 (0)