$ apropos modinfo
modinfo (8) - display information about a kernel module
$ modinfo cpuid.ko
filename: cpuid.ko
author: H. Peter Anvin <[email protected]>
description: x86 generic CPUID driver
license: GPL
vermagic: 2.6.37 SMP preempt mod_unload PENTIUM4 gcc-4.4.5
depends:
Laufzeitmethode
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
Getestet mit diesem Setup auf Kernel 4.9.6.
/sys/modules/module_version/version
version wird durch die MODULE_VERSION gesetzt Makro.
Die Datei existiert nicht, wenn MODULE_VERSION Makro wird im Modul nicht verwendet.
/sys/module/module_version/srcversion
srcversion ist ein MD4-Hash des Quellcodes, der zum Kompilieren des Kernelmoduls verwendet wird. Es wird automatisch zur Erstellungszeit von https://github.com/torvalds/linux/blob/v4.9/scripts/mod/modpost.c#L1978 unter Verwendung von https://github.com/torvalds/linux/blob/ berechnet. v4.9/scripts/mod/sumversion.c#L400
Um es zu aktivieren, entweder:
- Setzen Sie
MODULE_VERSIONfür das Modul - mit
CONFIG_MODULE_SRCVERSION_ALLkompilieren .srcversionwird dann für alle Module generiert, auch für die ohneMODULE_VERSIONset:modinfo srcversion:Wie generiere ich das aus meiner Quelle?
Die srcversion Datei ist nur vorhanden, wenn einer der obigen Punkte zutrifft.
Sie können dann überprüfen, ob der eingebaute .ko stimmt mit dem insmodded überein mit:
modinfo mymod.ko
Dies ist eine sehr nützliche Plausibilitätsprüfung, wenn Sie Ihre eigenen Kernel-Module entwickeln und Module zwischen Computern kopieren.
Vom Inneren des Modulcodes selbst mit THIS_MODULE
Sie können THIS_MODULE->version verwenden , hier ist ein Beispiel:Welche Bedeutung hat THIS_MODULE in Linux-Kernel-Modultreibern?