我有一个 Linux 模块的编译版本,然后我有大约 20 多个其源代码的变体。由于各种愚蠢的错误,我已经不知道哪个版本的源代码是我用来制作模块的实际版本了。
我注意到modinfo <module name>
gives srcversion: <hash>
,我在某处找到了一些解释,说它是“生成模块的源的总和”。听起来很完美!
我该如何处理我的模块源来生成此哈希?
The 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
文件以查找所需的信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)