glxinfo 和 steam 检测到错误的视频驱动程序(Ubuntu 12.04)

glxinfo 和 steam 检测到错误的视频驱动程序(Ubuntu 12.04)

我已在 Steam 讨论板和 Steam Github 错误页面上寻求帮助,他们建议我在 Ubuntu 论坛上询问此问题。以下是链接:

https://github.com/ValveSoftware/steam-for-linux/issues/2516

http://steamcommunity.com/app/221410/discussions/5/828939797039531960/

无论如何,很久以前,我编译了一个自定义的 3.7.9 内核,因为我的笔记本电脑出现了问题(合上盖子后屏幕一直变黑、键盘不亮、没有休眠等)。3.7.9 内核修复了所有这些问题,从此一切都运行得更加顺畅。

不幸的是,Jockey 的 Nvidia 驱动程序无法正常工作。我不记得原因了;那是很久以前的事了。我从 Nvidia 的网站手动下载并安装了 310.32 驱动程序。由于我的内核太新,我不得不手动修补安装程序,但除此之外,一切似乎都安装得很好。

tail -n 21 /var/log/nvidia-installer.log

-> Installing both new and classic TLS OpenGL libraries.
-> Installing classic TLS 32bit OpenGL libraries.
-> Install NVIDIA's 32-bit compatibility OpenGL libraries? (Answer: Yes)
-> Searching for conflicting X files:
-> done.
-> Searching for conflicting OpenGL files:
-> done.
-> Installing 'NVIDIA Accelerated Graphics Driver for Linux-x86_64' (310.32):
   executing: '/sbin/ldconfig'...
   executing: '/sbin/depmod -aq'...
-> done.
-> Driver file installation is complete.
-> Running post-install sanity check:
-> done.
-> Post-install sanity check passed.
-> Shared memory test passed.
-> Running runtime sanity check:
-> done.
-> Runtime sanity check passed.
-> Would you like to run the nvidia-xconfig utility to automatically update your X configuration file so that the NVIDIA X driver will be used when you restart X?  Any pre-existing X configuration file will be backed up. (Answer: Yes)
-> Your X configuration file has been successfully updated.  Installation of the NVIDIA Accelerated Graphics Driver for Linux-x86_64 (version: 310.32) is now complete.

如我在顶部提供的链接所示,Nvidia X 服务器设置和我的 xorg.conf 似乎没问题。现在来看看问题,glxinfo 显示以下内容:

glxinfo | grep -i opengl

OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 0x300)
OpenGL version string: 2.1 Mesa 8.0.4
OpenGL shading language version string: 1.20
OpenGL extensions:

Steam 的系统信息显示:(错误,我的声誉不够,无法发布图片,图片位于我发布的第一个链接页面的顶部附近。)

我认为问题与 的内容有关/etc/ld.so.conf.d。具体来说,此文件夹中有两个符号链接:

i386-linux-gnu_GL.conf -> /etc/alternatives/i386-linux-gnu_gl_conf

x86_64-linux-gnu_GL.conf -> /etc/alternatives/x86_64-linux-gnu_gl_conf

cat i386-linux-gnu_GL.conf

/usr/lib/i386-linux-gnu/mesa

cat x86_64-linux-gnu_GL.conf

/usr/lib/x86_64-linux-gnu/mesa

我几乎可以肯定这就是问题所在。/usr/lib/x86_64-linux-gnu/mesa是一个文件夹。以下是其内容:

ls -l /usr/lib/x86_64-linux-gnu/mesa | grep -o " l.*"

ld.so.conf
libGL.so -> libGL.so.1
libGL.so.1 -> libGL.so.1.2
libGL.so.1.2

以下是我的内容/usr/lib

ls -l libGL* | grep -o lib.*

libGL.la
libGL.so -> libGL.so.1
libGL.so.1 -> libGL.so.310.32
libGL.so.310.32

以下是我的内容/usr/lib32

ls -l libGL* | grep -o lib.*

libGL.la
libGL.so -> libGL.so.1
libGL.so.1 -> libGL.so.310.32
libGL.so.310.32

因此我认为可以通过i386-linux-gnu_GL.conf将的内容更改为/usr/lib32并将 的内容x86_64-linux-gnu_GL.conf更改为来解决此问题/usr/lib

不幸的是,这会导致 glxinfo 混乱:

glxinfo

name of display: :0.0
X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  137 (NV-GLX)
  Minor opcode of failed request:  4 ()
  Resource id in failed request:  0x3e00003
  Serial number of failed request:  34
  Current serial number in output stream:  34

和 Steam 段错误。我觉得我已经快要解决这个问题了;我只是不确定该怎么做,或者哪​​里是寻求帮助的最佳地点。

答案1

我最终放弃了。我重新安装了 Ubuntu 12.04,并坚持使用预编译的二进制文件。现在一切似乎都正常了。

相关内容