Files
linux-kernel-module-cheat/vermagic.md
Ciro Santilli cdd0535227 vermagic
2017-06-21 11:32:12 +01:00

28 lines
951 B
Markdown

# vermagic
If the module does not match that of the kernel, `insmod` is unhappy and fails.
Get it from kernel module:
modinfo mymod.ko
Override it on module source:
MODULE_INFO(vermagic, "newver");
On the Linux kernel 4.9.6, it is defined under `include/linux/vermagic.h`:
#define VERMAGIC_STRING \
UTS_RELEASE " " \
MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT \
MODULE_VERMAGIC_MODULE_UNLOAD MODULE_VERMAGIC_MODVERSIONS \
MODULE_ARCH_VERMAGIC
TODO can you get it from running kernel from userland? <https://lists.kernelnewbies.org/pipermail/kernelnewbies/2012-October/006306.html>
Desktop `modprobe` has a flag to skip the check:
`--force-modversion`
Looks like it just strips `modversion` information from the module, and then the kernel skips the check.