最近,我从使用专用 ATI 显卡和专有驱动程序切换到板载 Intel 显卡和默认/通用 Intel 驱动程序,因为 ATI 显卡已损坏,并且我无法让专有驱动程序与我的 X 服务器完美配合。
不管怎样,现在每当使用 OpenGL 的程序运行时我都会得到核心转储。例如:
[birdsnest ~]% glxinfo -v
name of display: :0
zsh: segmentation fault (core dumped) glxinfo -v
T̶h̶e̶r̶e̶ ̶i̶s̶ ̶n̶o̶t̶h̶i̶n̶g̶ ̶s̶u̶s̶p̶i̶c̶i̶o̶u̶s̶ ̶i̶n̶ ̶m̶y̶ ̶/̶v̶a̶r̶/̶l̶o g̶/̶x̶o̶r̶g̶.̶0̶.̶l̶o̶g̶,̶ ̶a̶n̶d̶ ̶a̶l̶l̶ ̶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
一直在使用英特尔驱动程序的脚本,因为卸载脚本试图破坏它。