2010-12-21 21 views
2

Xserverモジュールのモジュールバージョン情報(モジュールレコードの一部)を抽出するツールを探しています。例えば、Xserverモジュールのバージョン情報

[ 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 

...私は私のXorg.0.logファイルにlibrecordモジュールについては、以下の情報を参照することができXorgのログには、私は簡単に上記の情報を抽出できるようになるそこのツールです。 modinfoをモジュール上で使うこともできますが、バージョン情報もありますが、それは必ずしも機能しません。私が今知っている唯一の一貫した方法は、xorgログファイルを解析することです。ありがとう。

答えて

1

はい、ありますが、小さなものを書くこともできます。

http://gitorious.org/xdriverprobe

問題は、私は、最新のABIにそれを更新しなかったので、xdriverprobeは、新しいサーバー上でコンパイルされないということです。また、xdriverprobeはビデオドライバでのみ使用されますが、他のモジュールでも使用できるようになっています。メインのソースコードファイル(xdriverprobe.c)は500行未満ですので、簡単に読むことができます。

Ubuntu 11.10で動作します... ./xdriverprobe -o moduledataは、必要な情報を提供します。

ソースコードを見てください。それはありません:vers の名前(あなたのモジュールがmodulename呼び出された場合)

  • のdlopen()モジュール
  • modulenameModuleDataと呼ばれるシンボルを見つけ、そのシンボルXF86ModuleData*/usr/include/xorg/xf86Module.h
  • を参照してくださいされ、そのメンバーをチェック

数時間を過ごすと、あなたが望むような非常に小さなコードを書くことができます。

詳細情報:http://www.xfree86.org/current/DESIGN17.html#65(非常に古い文書ですが、今日はまだ書かれているもののほとんどが今日もなお真です)。その文書に満足できない場合は、Xorgのソースコードを読む必要があります。

ハッピーハッキング!

関連する問題