mirror of
https://github.com/cirosantilli/linux-kernel-module-cheat.git
synced 2026-01-23 02:05:57 +01:00
vermagic
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# Linux Kernel Module Cheat
|
# Linux Kernel Module Cheat
|
||||||
|
|
||||||
Run one command, get into QEMU Buildroot BusyBox virtual machine with several minimal Linux kernel 4.9 module example tutorials with GDB and KGDB debug. Tested in x86 and ARM guests, Ubuntu 14.04 - 16.10 hosts.
|
Run one command, get into QEMU Buildroot BusyBox virtual machine with several minimal Linux kernel 4.9 module development example tutorials with GDB and KGDB debug. Tested in x86 and ARM guests, Ubuntu 14.04 - 16.10 hosts.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -345,6 +345,7 @@ You can still send key presses to QEMU however even without the mouse capture, j
|
|||||||
1. [Introduction](introduction.md)
|
1. [Introduction](introduction.md)
|
||||||
1. [Build](build.md)
|
1. [Build](build.md)
|
||||||
1. [kmod](kmod.md)
|
1. [kmod](kmod.md)
|
||||||
|
1. [vermagic](vermagic.md)
|
||||||
1. [Bibliography](bibliography.md)
|
1. [Bibliography](bibliography.md)
|
||||||
1. Examples
|
1. Examples
|
||||||
1. [Host](host/)
|
1. [Host](host/)
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
/poll.sh
|
/poll.sh
|
||||||
|
|
||||||
Outcome: user echoes jiffies every second.
|
Outcome: user echoes jiffies every second.
|
||||||
|
|
||||||
|
https://stackoverflow.com/questions/30035776/how-to-add-poll-function-to-the-kernel-module-code/44645336#44645336
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <asm/uaccess.h> /* copy_from_user, copy_to_user */
|
#include <asm/uaccess.h> /* copy_from_user, copy_to_user */
|
||||||
|
|||||||
27
vermagic.md
Normal file
27
vermagic.md
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# 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.
|
||||||
Reference in New Issue
Block a user