将版本号查找/编码到静态编译到内核中的设备驱动程序中

时间:2015-03-03 00:45:16

标签: linux-kernel linux-device-driver

我相信如果将驱动程序静态编译到内核中,则MODULE_VERSION不起作用。版本号在sysfs中无处可见。 modinfo不起作用,因为它不是一个加载的模块。 那么什么是最好的方法来获取驱动程序的MODULE_VERSION或驱动程序中的版本号。有没有一种标准的方法可以做到这一点,还是应该简单地使用sysfs?

1 个答案:

答案 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.hMODULE_VERSION中定义的相应结构的指针。