Информация о версии модулей Xserver - PullRequest
2 голосов
/ 21 декабря 2010

Я пытаюсь найти инструмент, который будет извлекать информацию о версии модуля (часть записи модуля) из модуля Xserver. Например, в журналах Xorg я вижу следующую информацию для модуля librecord в моем файле Xorg.0.log ...

[    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. Спасибо.

1 Ответ

1 голос
/ 19 октября 2011

Да, есть, и вы также можете попробовать написать маленький.

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.

Счастливого взлома!

...