$ 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:
Metode waktu proses
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
Diuji dengan penyiapan ini pada kernel 4.9.6.
/sys/modules/module_version/version
version
diatur oleh MODULE_VERSION
makro.
File tidak ada jika MODULE_VERSION
makro tidak digunakan dalam modul.
/sys/module/module_version/srcversion
srcversion
adalah hash MD4 dari kode sumber yang digunakan untuk mengkompilasi modul kernel. Itu dihitung secara otomatis pada waktu pembuatan dari https://github.com/torvalds/linux/blob/v4.9/scripts/mod/modpost.c#L1978 menggunakan https://github.com/torvalds/linux/blob/ v4.9/scripts/mod/sumversion.c#L400
Untuk mengaktifkannya, baik:
- setel
MODULE_VERSION
untuk modul - kompilasi dengan
CONFIG_MODULE_SRCVERSION_ALL
.srcversion
kemudian dihasilkan untuk semua modul, termasuk yang tanpaMODULE_VERSION
set:modinfo srcversion:Bagaimana cara menghasilkan ini dari sumber saya?
srcversion
file hanya ada jika salah satu dari yang di atas berlaku.
Anda kemudian dapat memeriksa bahwa .ko
telah dibuat cocok dengan yang insmodded dengan:
modinfo mymod.ko
Ini adalah pemeriksaan kewarasan yang sangat berguna saat Anda mengembangkan modul kernel Anda sendiri dan menyalin modul antar mesin.
Dari dalam kode modul itu sendiri dengan THIS_MODULE
Anda dapat menggunakan THIS_MODULE->version
, ini contohnya:Apa pentingnya THIS_MODULE dalam driver modul kernel Linux?