Да, есть, и вы также можете попробовать написать маленький.
http://gitorious.org/xdriverprobe
Проблема в том, что xdriverprobe не будет компилироваться на новых серверах, так как я не обновил его до новейших ABI. Кроме того, xdriverprobe используется только для видеодрайверов, но его можно адаптировать для использования в других модулях. Основной файл исходного кода (xdriverprobe.c) содержит менее 500 строк, поэтому вы можете легко узнать его, прочитав его.
Работает в Ubuntu 11.10 ... ./xdriverprobe -o moduledata
дает необходимую информацию.
Посмотрите на его исходный код. Это делает:
- dlopen () модуль
- найдите символ с именем
modulenameModuleData
(если ваш модуль называется modulename
)
- этот символ
XF86ModuleData*
См. /usr/include/xorg/xf86Module.h
- проверить его члена с именем
vers
Потратьте несколько часов, и вы сможете написать очень маленький код, который будет делать то, что вы хотите.
Дополнительная информация: http://www.xfree86.org/current/DESIGN17.html#65 (очень старый документ, но большая часть написанного там до сих пор верна). Если вы недовольны этим документом, вам нужно прочитать исходный код Xorg.
Счастливого взлома!