我正在尝试找到一个工具,它将从Xserver模块中提取模块版本信息(模块记录的一部分)。例如,在Xorg日志中,我可以在我的Xorg.0.log文件中看到librecord模块的以下信息......
[ 39.892] (II) Loading /usr/lib/xorg/modules/extensions/librecord.so
[ 39.905] (II) Module record: vendor="X.Org Foundation"
[ 39.905] compiled for 1.9.0, module version = 1.13.0
[ 39.905] Module class: X.Org Server Extension
[ 39.905] ABI class: X.Org Server Extension, version 4.0
是否有工具可以让我轻松提取上述信息。有时您可以在模块上使用modinfo并且它将具有版本信息,但这并不总是有效。我现在知道的唯一一致方法是解析xorg日志文件。感谢。
答案 0 :(得分:1)
是的,有,你也可以尝试写一个小的。
http://gitorious.org/xdriverprobe
问题是xdriverprobe不能在较新的服务器上编译,因为我没有将它更新到最新的ABI。此外,xdriverprobe仅用于视频驱动程序,但它可以适用于其他模块。主要的源代码文件(xdriverprobe.c)少于500行,因此您可以通过阅读轻松学习。
它适用于Ubuntu 11.10 ... ./xdriverprobe -o moduledata
提供您想要的信息。
查看其源代码。它确实:
modulenameModuleData
的符号(如果您的模块名为modulename
)XF86ModuleData*
,请参阅/usr/include/xorg/xf86Module.h
vers
花几个小时,你就可以编写一个非常小的代码来完成你想要的工作。
更多信息:http://www.xfree86.org/current/DESIGN17.html#65(非常古老的文档,但今天写的大部分内容仍然是正确的)。如果您对该文档不满意,则必须阅读Xorg源代码。
快乐的黑客攻击!