从用户空间获取内核模块版本

问题描述 投票:0回答:1

我正在编写一组程序来在硬件设备上运行性能测试。我希望能够在我的主“控制器”程序中保存每个子程序的版本信息,以便可以将其保存在测试报告中。这些子程序之一是一个简单的内核驱动程序。

我知道 Linux 内核模块可以使用

MODULE_VERSION
宏公开版本信息。随后可以在命令行上使用
modinfo
读取此属性。

是否可以在 C 用户空间程序中访问此信息?如果可以,如何访问?

我考虑过公开我可以读取的字符设备内的版本,但考虑到模块文件包含该信息,直接读取会更方便。

c linux version linux-device-driver
1个回答
0
投票

加载模块的版本字符串应该在

/sys/module/<modulename>/version
中(如果存在)。您可以使用 C 标准库标准 I/O 函数或 POSIX 文件 I/O 函数读取该文件的内容。还可能有一个
srcversion
文件,其中包含由源代码的 128 位 MD4 和的 92 位构成的 23 十六进制数字字符串。

© www.soinside.com 2019 - 2024. All rights reserved.