8
A
回答
8
$ 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:
1
運行方法
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
內核4.9.6測試與this setup。
version
version
由MODULE_VERSION
給出。如果沒有給出MODULE_VERSION
,則該文件不存在。
srcversion
srcversion
是用於編譯內核模塊的源代碼的一個MD4散列。它被自動在生成時從https://github.com/torvalds/linux/blob/v4.9/scripts/mod/modpost.c#L1978使用https://github.com/torvalds/linux/blob/v4.9/scripts/mod/sumversion.c#L400
要啓用它計算,或者:
- 設置
MODULE_VERSION
用於模塊 - 編譯
CONFIG_MODULE_SRCVERSION_ALL
。srcversion
然後獲取所有模塊生成的,包括那些沒有MODULE_VERSION
組:modinfo srcversion: How do I generate this from my source?
的srcversion
給出當僅存在。
然後,您可以檢查內置.ko
匹配insmodded一個具有:
modinfo mymod.ko
這是當你正在開發自己的內核模塊和機器之間的複製模塊一個非常有用的完整性檢查。
相關問題
- 1. 爲我的路由器的內核版本編譯特定內核模塊
- 2. 如何編譯Linux內核模塊
- 3. !編譯內核模塊
- 4. FTDI編譯內核模塊
- 5. Linux內核模塊編譯
- 6. Linux內核模塊編譯
- 7. 找到正確的內核版本來構建模塊
- 8. 如何加載預編譯的內核中已經存在的已修改的內核模塊
- 9. 如何找到已安裝的NetBeans模塊的版本?
- 10. 如何找到已安裝的Perl模塊的版本?
- 11. 如何在numpy中找到已編譯的擴展模塊
- 12. 如何在內核模塊中打印linux內核版本號
- 13. 爲不同的內核編譯內核模塊
- 14. 其他內核的Linux內核模塊開發編譯
- 15. 錯誤模塊版本的編譯
- 16. 編譯linux內核模塊時出錯
- 17. 編譯Linux內核模塊(lincan)
- 18. 交叉編譯Linux內核模塊
- 19. 在Chromebook上編譯內核模塊
- 20. 編譯錯誤:內核模塊
- 21. 編譯內核模塊錯誤
- 22. 問題編譯內核模塊
- 23. 如何根據新的源編譯內核模塊
- 24. Python找出已編譯模塊的內容?
- 25. 如何在CLI中找到內置模塊的版本號
- 26. 如何確定內核對象文件編譯的Linux內核版本?
- 27. 內核模塊版本魔術錯誤
- 28. 如果內核版本與模塊版本不同
- 29. 鏈接到內核模塊預編譯的目標文件
- 30. 使用gcc與內核頭文件編譯Linux內核模塊
雖然這個答案解決了我的問題,但我相信vermagic值反映了模塊編譯的內核版本,而不是模塊的版本。爲了測試這個,我嘗試了「modprobe nvidia」,因爲nvidia不包含在內核中,所以必須有不同的版本號。 「modprobe nvidia」返回了vermagic值的內核版本。 – 2011-01-29 22:56:40