我相信如果将驱动程序静态编译到内核中,则MODULE_VERSION不起作用。版本号在sysfs中无处可见。 modinfo不起作用,因为它不是一个加载的模块。 那么什么是最好的方法来获取驱动程序的MODULE_VERSION或驱动程序中的版本号。有没有一种标准的方法可以做到这一点,还是应该简单地使用sysfs?
答案 0 :(得分:1)
首先,在树模块中有一个模块版本没有多大意义。否则保留的是名为__modver
的特殊部分。
$ objdump -h ~/prj/TMP/out/mfld/vmlinux -j __modver
/home/andy/prj/TMP/out/mfld/vmlinux: file format elf32-i386
Sections:
Idx Name Size VMA LMA File off Algn
12 __modver 00000c40 c1a003c0 01a003c0 00a013c0 2**2
CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
它包含指向宏include/linux/module.h
中MODULE_VERSION
中定义的相应结构的指针。