From 2e04c96fad8c657e283dcf7da2ebdaa6da3a5eeb Mon Sep 17 00:00:00 2001 From: Ciro Santilli Date: Mon, 13 Nov 2017 15:48:25 +0000 Subject: [PATCH] MODULE_VERSION and srcversion --- kernel_config_fragment | 3 +++ kernel_module/README.md | 1 + kernel_module/module_version.c | 28 ++++++++++++++++++++++++++++ kernel_module/vermagic.c | 6 ++++-- 4 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 kernel_module/module_version.c diff --git a/kernel_config_fragment b/kernel_config_fragment index 0f3b62a..1a0ada4 100644 --- a/kernel_config_fragment +++ b/kernel_config_fragment @@ -1,6 +1,9 @@ # Changes to this file are automatically trigger kernel reconfigures # even without using the linux-reconfigure target. +CONFIG_MODULE_SRCVERSION_ALL=y + +# GDB debugging. CONFIG_DEBUG_FS=y CONFIG_DEBUG_INFO=y CONFIG_DEBUG_KERNEL=y diff --git a/kernel_module/README.md b/kernel_module/README.md index 51fcb55..5e00018 100644 --- a/kernel_module/README.md +++ b/kernel_module/README.md @@ -9,6 +9,7 @@ 1. [params](params.c) 1. [vermagic](vermagic.c) 1. [vermagic_fail](vermagic_fail.c) + 1. [module_version](module_version.c) 1. Pseudo filesystems 1. [debugfs](debugfs.c) 1. [procfs](procfs.c) diff --git a/kernel_module/module_version.c b/kernel_module/module_version.c new file mode 100644 index 0000000..aac8189 --- /dev/null +++ b/kernel_module/module_version.c @@ -0,0 +1,28 @@ +/* +https://stackoverflow.com/questions/4839024/how-to-find-the-version-of-a-compiled-kernel-module/42556565#42556565 + + insmod /module_version.ko + cat /sys/modules/module_version/version + # => 1.0 + cat /sys/module/module_version/srcversion + # => AB0F06618BC3A36B687CDC5 + modinfo /module_version.ko | grep -E '^(src|)version' + # => version: 1.0 + # => srcversion: AB0F06618BC3A36B687CDC5 +*/ + +#include +#include + +static int myinit(void) +{ + pr_info(__FILE__ "\n"); + return 0; +} + +static void myexit(void) {} + +module_init(myinit) +module_exit(myexit) +MODULE_VERSION("1.0"); +MODULE_LICENSE("GPL"); diff --git a/kernel_module/vermagic.c b/kernel_module/vermagic.c index d4baff1..aa00b52 100644 --- a/kernel_module/vermagic.c +++ b/kernel_module/vermagic.c @@ -1,7 +1,9 @@ /* insmod /vermagic.ko # => 4.9.6 SMP mod_unload modversions -TODO how to get the vermagic from running kernel from userland? + +TODO how to get the vermagic from running kernel from userland? + */ #include @@ -10,7 +12,7 @@ TODO how to get the vermagic from running kernel from userland?