我有一个linux模块的编译版本,然后我有大约20多种源代码。通过各种愚蠢的错误,我已经忘记了哪个版本的源是我用来制作模块的实际版本。
我注意到modinfo <module name>
给了srcversion: <hash>
,我在某个地方发现了一些说明“生成模块的源的总和”。听起来很完美!
如何对我的模块源生成此哈希值?
答案 0 :(得分:7)
srcversion
由scripts/mod/modpost
程序定义。我不知道你必须给modpost的确切选项,以便它输出这个字段。它必须与scripts/mod/modpost -a -m vmlinux you_module.o
类似(您可以查看scripts/Makefile.modpost
的确切选项)。然后输出在drivers/path/to/your_module.mod.c
我建议您将config MODULE_SRCVERSION_ALL
设置为y(在Enable loadable module support
子菜单中可用),以便为构建的所有模块自动生成srcversion。然后,您可以在源代码的变体之间切换,使用新的源变体重建内核(仅在第一次构建后重建您的模块),然后直接查看MODULE_INFO(srcversion, "<hash>");
字段末尾的drivers/path/to/your_module.mod.c
字段1}}文件以查找所请求的信息。