最近、ATIカードが破損してXサーバー上で完全に動作する排他的なドライバを取得できなかったため、専用のATIカードと排他的なドライバの使用からオンボードのIntelグラフィックスとネイティブ/一般的なIntelドライバの使用に切り替えました。
とにかく、OpenGLを使用するプログラムが実行されるたびにコアダンプが生成されます。たとえば、
[birdsnest ~]% glxinfo -v
name of display: :0
zsh: segmentation fault (core dumped) glxinfo -v
́h ́ ¬ i s уn у sspiciots ́i myt/vtargx 0 0 0 lotgatatl ― ―a―p―p―e―a―r―s― ―t―o 部 ―b―e― ―w―e―l― l部:
[ 33.580] (II) LoadModule: "glx"
[ 33.604] (II) Loading /usr/lib64/xorg/modules/extensions/libglx.so
[ 33.645] (II) Module glx: vendor="Advanced Micro Devices, Inc."
[ 33.645] compiled for 6.9.0, module version = 1.0.0
[ 33.645] Loading extension GLX
[ 33.645] (==) Matched intel as autoconfigured driver 0
[ 33.645] (==) Matched vesa as autoconfigured driver 1
[ 33.645] (==) Matched modesetting as autoconfigured driver 2
[ 33.645] (==) Matched fbdev as autoconfigured driver 3
[ 33.645] (==) Assigned the driver to the xf86ConfigLayout
[ 33.645] (II) LoadModule: "intel"
[ 33.645] (II) Loading /usr/lib64/xorg/modules/drivers/intel_drv.so
[ 33.700] (II) Module intel: vendor="X.Org Foundation"
[ 33.700] compiled for 1.12.99.905, module version = 2.20.2
[ 33.700] Module class: X.Org Video Driver
[ 33.700] ABI class: X.Org Video Driver, version 13.0
[ 33.700] (II) LoadModule: "vesa"
[ 33.700] (II) Loading /usr/lib64/xorg/modules/drivers/vesa_drv.so
[ 33.709] (II) Module vesa: vendor="X.Org Foundation"
[ 33.709] compiled for 1.13.0, module version = 2.3.2
[ 33.709] Module class: X.Org Video Driver
[ 33.709] ABI class: X.Org Video Driver, version 13.0
[ 33.709] (II) LoadModule: "modesetting"
[ 33.710] (II) Loading /usr/lib64/xorg/modules/drivers/modesetting_drv.so
[ 33.723] (II) Module modesetting: vendor="X.Org Foundation"
[ 33.723] compiled for 1.13.0, module version = 0.5.0
[ 33.723] Module class: X.Org Video Driver
[ 33.723] ABI class: X.Org Video Driver, version 13.0
[ 33.723] (II) LoadModule: "fbdev"
[ 33.723] (II) Loading /usr/lib64/xorg/modules/drivers/fbdev_drv.so
[ 33.731] (II) Module fbdev: vendor="X.Org Foundation"
[ 33.731] compiled for 1.12.99.905, module version = 0.4.3
[ 33.731] Module class: X.Org Video Driver
[ 33.731] ABI class: X.Org Video Driver, version 13.0
[ 33.731] (II) intel: Driver for Intel Integrated Graphics Chipsets: i810,
i810-dc100, i810e, i815, i830M, 845G, 854, 852GM/855GM, 865G, 915G,
E7221 (i915), 915GM, 945G, 945GM, 945GME, Pineview GM, Pineview G,
965G, G35, 965Q, 946GZ, 965GM, 965GME/GLE, G33, Q35, Q33, GM45,
4 Series, G45/G43, Q45/Q43, G41, B43, B43, Clarkdale, Arrandale,
Sandybridge Desktop (GT1), Sandybridge Desktop (GT2),
Sandybridge Desktop (GT2+), Sandybridge Mobile (GT1),
Sandybridge Mobile (GT2), Sandybridge Mobile (GT2+),
Sandybridge Server, Ivybridge Mobile (GT1), Ivybridge Mobile (GT2),
Ivybridge Desktop (GT1), Ivybridge Desktop (GT2), Ivybridge Server,
Ivybridge Server (GT2)
[ 33.731] (II) VESA: driver for VESA chipsets: vesa
[ 33.731] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[ 33.731] (II) FBDEV: driver for framebuffer: fbdev
[ 33.731] (++) using VT number 1
編集:コアダンプからのバックトレース(これがどれだけ役に立つのか、どのように活用するのかわかりません):
Core was generated by `glxinfo -l'.
Program terminated with signal 11, Segmentation fault.
#0 0x000000341ea0a240 in xcb_glx_query_server_string_string_length () from /usr/lib64/libxcb-glx.so.0
Missing separate debuginfos, use: debuginfo-install glx-utils-9.0-0.8.el6_4.3.x86_64
(gdb) bt
#0 0x000000341ea0a240 in xcb_glx_query_server_string_string_length () from /usr/lib64/libxcb-glx.so.0
#1 0x00000031fa444bf4 in __glXQueryServerString () from /usr/lib64/libGL.so.1
#2 0x00000031fa420ca0 in ?? () from /usr/lib64/libGL.so.1
#3 0x00000031fa41d92d in ?? () from /usr/lib64/libGL.so.1
#4 0x00000031fa41ea8f in glXChooseVisual () from /usr/lib64/libGL.so.1
#5 0x000000000040163e in ?? ()
#6 0x0000000000402d8a in ?? ()
#7 0x000000340c61ecdd in __libc_start_main () from /lib64/libc.so.6
#8 0x0000000000401179 in ?? ()
#9 0x00007fffd0ae5628 in ?? ()
#10 0x000000000000001c in ?? ()
#11 0x0000000000000002 in ?? ()
#12 0x00007fffd0ae74d2 in ?? ()
#13 0x00007fffd0ae74da in ?? ()
#14 0x0000000000000000 in ?? ()
だからこれがドライバの問題なのか、それとも別の問題なのかよく分からないし、デバッグする方法もわからない。この問題をどのようにデバッグするかを知っている人はいますか?
Module glx: vendor="Advanced Micro Devices, Inc."
編集:ちょうどxorgログでこの行を見つけました。ファイルが非常に最近最後に変更されたことがわかりました。 ATIビデオドライバをインストールする頃でした。独自のATIドライバをインストールすると、このライブラリが破損する可能性はありますか?
答え1
私はそれについて考えた。私が予想したように、AMDが使用したい共有ライブラリとIntelドライバが使用する共有ライブラリとの間で競合が発生します。回避策は、AMDドライバをアンインストールすることです。アンインストールスクリプトを実行してこれを行います/usr/share/ati
。このスクリプトを実行した後、/etc/X11/xorg.conf
アンインストールスクリプトがスクリプトを破損しようとしたため、Intelドライバで使用したスクリプトを復元する必要がありました。