$ 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_VERSION
für das Modul - mit
CONFIG_MODULE_SRCVERSION_ALL
kompilieren .srcversion
wird dann für alle Module generiert, auch für die ohneMODULE_VERSION
set: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?