この節では一般的な問題の原因を調べるのに役立つ情報を示します。 特定のハードウェアに関する追加情報は後述します。
lsmod
を実行し、適切な
カーネルモジュールがあるかどうかを見ます。例えば 3dfx ハードウェアの場合
は tdfx
があるはずです。
xdpyinfo
コマンドの出力結果の最初の方に
vendor release number: 4000があるかどうかを調べてください。
Software Resources の節で紹介している XF86Config ファイルの例を参考にし てください。
(==) TDFX(0): Write-combining range (0xf0000000,0x2000000) (II) TDFX(0): Textures Memory 7.93 MB (0): [drm] created "tdfx" driver at busid "PCI:1:0:0" (0): [drm] added 4096 byte SAREA at 0xc65dd000 (0): [drm] mapped SAREA 0xc65dd000 to 0x40013000 (0): [drm] framebuffer handle = 0xf0000000 (0): [drm] added 1 reserved context for kernel (II) TDFX(0): [drm] Registers = 0xfc000000 (II) TDFX(0): visual configs initialized (II) TDFX(0): Using XFree86 Acceleration Architecture (XAA) Screen to screen bit blits Solid filled rectangles 8x8 mono pattern filled rectangles Indirect CPU to Screen color expansion Solid Lines Dashed Lines Offscreen Pixmaps Driver provided NonTEGlyphRenderer replacement Setting up tile and stipple cache: 10 128x128 slots (==) TDFX(0): Backing store disabled (==) TDFX(0): Silken mouse enabled (0): X context handle = 0x00000001 (0): [drm] installed DRM signal handler (0): [DRI] installation complete (II) TDFX(0): direct rendering enabled
xdpyinfo
を実行し、機能拡張のリストに
GLX SGI-GLX XFree86-DRIというエントリがあることを確認してください。
X サーバと DRI が正しく起動したことが確認できたら、次は GL ライブラリと ハードウェアドライバが正しく動作することを確認します。
ldd
コマンドで確認します。
/usr/lib か /usr/X11R6/lib ディレクトリに libGL.so があると思います。
例:
% ldd /usr/local/bin/glxinfo libglut.so.3 => /usr/local/lib/libglut.so.3 (0x40019000) libGLU.so.1 => /usr/local/lib/libGLU.so.1 (0x40051000) libGL.so.1 => /usr/lib/libGL.so.1 (0x40076000) libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x402ee000) libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x40301000) libm.so.6 => /lib/libm.so.6 (0x40309000) libc.so.6 => /lib/libc.so.6 (0x40325000) libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40419000) libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x404bd000) libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40509000) libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40512000) libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40529000) libvga.so.1 => /usr/lib/libvga.so.1 (0x40537000) libpthread.so.0 => /lib/libpthread.so.0 (0x4057d000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
strings libGL.so.1.2 | grep DRI
" を実行し、
"XF86DRI" で始めるシンボルを探します。例えば "XF86DRIQueryExtension"
等です。ldconfig
を実行し、
ランタイムローダが適切なライブラリを探せるようにすべきです。tdfx_dri.so
という名前であるはずです。LIBGL_DEBUG
環境変数を設定します。すると libGL.so は DRI ドライバの
ロードに失敗するとエラーメッセージを出力するようになります。
どのエラーメッセージも、単独で見ても何が起こっているかわかるはずです。glxinfo
を実行します。"OpenGL renderer string" という行に注意してく
ださい。"Mesa DRI" で始まり、これにお使いのハードウェアの名前が続くよう
な値があるはずです。ln -s libGL.so.1 libMesaGL.so.3また、アプリケーションは XFree86 の新しい libGL.so にリンクし直してやら なければならない場合もあるでしょう。
問題の一端は ldconfig
を実行するとライブラリの SONAME フィールド
に基づいてリンクの書き直しがこっそり行われることだと報告されています。
これでも問題が解決しなければ、次の節を見てお使いのグラフィックス カードに固有の情報を調べてください。