Я попросил помощи на форумах 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 исправило все эти проблемы, и с тех пор все работает намного лучше.
К сожалению, драйверы Nvidia от Jockey не работали. Я не помню причину; это было давно. Я скачал и установил драйвер 310.32 вручную с сайта Nvidia. Мне пришлось вручную исправлять установщик, потому что мое ядро было слишком новым, но в остальном все вроде нормально установилось.
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
[ 1134] Поэтому я предположил, что смогу решить эту проблему, изменив содержимое 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
и segfaults Steam. Я чувствую, что я очень близок к решению этой проблемы; Я просто не уверен, что делать или где лучше всего обратиться за помощью.
Я закончил тем, что отказался от этого. Я переустановил Ubuntu 12.04 и остановился на скомпилированных двоичных файлах. Кажется, теперь все работает хорошо.