modinfo --field
允许过滤“作者”、“描述”等字段,这很好。
问题:我在哪里可以找到可能值的完整列表--field
到目前为止我尝试过的:
man 8 modinfo
提到了一些“共同领域”,这让我觉得“你可能最了解你在寻找什么”- 通过 grep 浏览源代码,除了 in 之外
./kmod-9/tools/modinfo.c
,我几乎什么也没找到,这对我没有多大帮助,因为我对 C 是文盲(是的,我通过 grep 浏览了整个kmod
包,找到了相当多的术语) - 内核模块编程指南:参见上面的观点
- 我可能错过了一些重要的事情...
答案1
modinfo
.modinfo
从内核模块部分提取信息。该信息通常会出现在该部分中,因为内核模块作者添加了如下部分:
MODULE_DESCRIPTION("Joe's awesome driver");
MODULE_AUTHOR("Joe Blow<[email protected]>");
MODULE_LICENSE("GPL");
也许这一点很清楚 - 但重点是没有明确的列表,因为驱动程序作者可以添加他们想要的任何自由格式信息,例如:
MODULE_INFO(my_cool_field, "Wow, so cool");
有一些共同的领域。
并且,上述的另一点是程序modinfo
不知道有哪些字段 - 它只是在.modinfo
节模块中搜索它们。
后续:在Linux源中grepping include/linux/module.h,我看到定义了以下宏:
#define MODULE_ALIAS(_alias) MODULE_INFO(alias, _alias)
#define MODULE_LICENSE(_license) MODULE_INFO(license, _license)
#define MODULE_AUTHOR(_author) MODULE_INFO(author, _author)
#define MODULE_DESCRIPTION(_description) MODULE_INFO(description, _description)
#define MODULE_VERSION(_version) MODULE_INFO(version, _version)
#define MODULE_FIRMWARE(_firmware) MODULE_INFO(firmware, _firmware)