$ 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_VERSIONuntuk modul - kompilasi dengan
CONFIG_MODULE_SRCVERSION_ALL.srcversionkemudian dihasilkan untuk semua modul, termasuk yang tanpaMODULE_VERSIONset: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?