文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>libdrm2 _glapi_tls_Context 问题的解决

libdrm2 _glapi_tls_Context 问题的解决

时间:2009-06-27  来源:blue_stone

hp6515b笔记本的显卡是ATI X1250的显卡, 之前使用的是ati fglrx驱动, 内核升级到2.6.29后,很长时间一直没有合适的补丁可以让fglrx运行于2.6.29上, 一狠心, 决定换用开源的radeon驱动. 卸载了fglrx相关的所有包, 将/etc/X11/xorg.conf中的

Driver      "fglrx"

改成

Driver      "radeonhd"

重启X, 感觉用起来还可以, 虽然慢一些, 不过以后升级内核至少不用考虑显卡驱动的问题了.

然而随之遇到的一个问题就是不能使用Direct Render, 设置LIBGL_DEBUG=verbose后运行glxinfo提示如下信息:

libGL: XF86DRIGetClientDriverName: 4.3.0 r300 (screen 0)
libGL: OpenDriver: trying /usr/lib/dri/r300_dri.so      
libGL error: dlopen /usr/lib/dri/r300_dri.so failed (/usr/lib/dri/r300_dri.so: undefined symbol: _glapi_tls_Context)
libGL error: unable to load driver: r300_dri.so

在google中搜索 _glapi_tls_Context 找到了Debian Bug 491520, 这个bug说, 虽然这个问题现象是r300_dri.so中有未定义的符号, 事实上这个问题并不是libdrm2的bug, 而是是由于libgl1-mesa-dri引起的, 也没有给出一个合适的解决方案.

我查了一下mesa相关的软件包, libgl1-mesa-glx, 发现其中的几个文件被fglrx-driver给替换了, 删除fglrx-driver后也没有被替换回去:

blueice2:~# dpkg -L libgl1-mesa-glx
/.                                 
/usr                               
/usr/share                         
/usr/share/doc                     
/usr/share/doc/libgl1-mesa-glx     
/usr/share/doc/libgl1-mesa-glx/copyright
/usr/share/doc/libgl1-mesa-glx/changelog.Debian.gz
/usr/lib                                          
/usr/lib/libGL.so.1.2                             
diverted by fglrx-glx to: /usr/lib/fglrx/diversions/libGL.so.1.2
/usr/lib/libGL.so.1                                             
diverted by fglrx-driver to: /usr/lib/fglrx/diversions/libGL.so.1

那有没有可能是由于这两个文件不是libgl1-mesa-glx本身的文件而造成的呢? 不管怎么样, 先把这两个文件替换回来再说, 反正fglrx相关的东西已经被删除了, 不论如何, 也不会引起fglrx不正常.

dpkg-divert   --remove /usr/lib/libGL.so.1
dpkg-divert   --remove /usr/lib/libGL.so.1.2
cd /tmp/
ar x /var/cache/apt/archives/libgl1-mesa-glx_7.4.1-1_i386.deb
tar zxf  data.tar.gz
cd usr/lib
cp libGL.so.1.2 /usr/lib/libGL.so.1.2

然后进行检查

blueice2:/tmp/usr/lib# ls -al /usr/lib/libGL.so*
lrwxrwxrwx 1 root root     10 2009-05-15 22:29 /usr/lib/libGL.so -> libGL.so.1
lrwxrwxrwx 1 root root     12 2008-08-22 18:08 /usr/lib/libGL.so.1 -> libGL.so.1.2
-rw-r--r-- 1 root root 391696 2009-05-03 22:26 /usr/lib/libGL.so.1.2
blueice2:~# dpkg -L libgl1-mesa-glx
/.                                
/usr                              
/usr/share                        
/usr/share/doc                    
/usr/share/doc/libgl1-mesa-glx    
/usr/share/doc/libgl1-mesa-glx/copyright
/usr/share/doc/libgl1-mesa-glx/changelog.Debian.gz
/usr/lib                                         
/usr/lib/libGL.so.1.2                            
/usr/lib/libGL.so.1 

现在运行glxinfo已经提示Direct Rendering 已经是Yes了.
相关阅读 更多 +
排行榜 更多 +
单挑幸存者安卓版

单挑幸存者安卓版

飞行射击 下载
决战战地指挥官

决战战地指挥官

飞行射击 下载
鸡仔幸存者最新版

鸡仔幸存者最新版

飞行射击 下载