Acabei desistindo disso. Eu reinstalei o Ubuntu 12.04 e fiquei com os binários pré-compilados. Tudo parece funcionar bem agora.
Pedi ajuda nos fóruns de discussão do Steam e na página de bugs do Steam Github e me disseram para perguntar sobre esse assunto em um fórum do Ubuntu. Aqui estão os links:
De qualquer forma, eu compilei um kernel 3.7.9 customizado há muito tempo porque estava tendo problemas com meu laptop (fechar a tampa fez a tela ficar permanentemente preta, o teclado não acendeu, não hibernou, etc). O kernel 3.7.9 corrigiu todos esses problemas e tudo tem funcionado muito melhor desde então.
Infelizmente, os drivers da Nvidia da Jockey não funcionaram. Não me lembro do motivo; Foi há muito tempo. Eu baixei e instalei o driver 310.32 manualmente no site da Nvidia. Eu tive que corrigir manualmente o instalador porque meu kernel era muito novo, mas além disso tudo parece ter instalado bem.
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.
Como mostrado nos links que forneci no topo, o Nvidia X Server Settings e o meu xorg.conf parecem bem. Agora, para o problema, o glxinfo mostra isso:
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:
e as informações do sistema do Steam mostram isso: (Erro, eu não tenho reputação suficiente para postar uma foto, a imagem está perto do topo da página do primeiro link que eu postei.)
Eu acredito que o problema tem a ver com o conteúdo do /etc/ld.so.conf.d
. Em particular, existem dois links simbólicos nesta pasta:
i386-linux-gnu_GL.conf -> /etc/alternatives/i386-linux-gnu_gl_conf
e
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
e
cat x86_64-linux-gnu_GL.conf
/usr/lib/x86_64-linux-gnu/mesa
Estou quase certo de que este é o problema. /usr/lib/x86_64-linux-gnu/mesa
é uma pasta. Aqui está o seu conteúdo:
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
Aqui está o conteúdo do meu /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
Aqui está o conteúdo do meu /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
Então, presumi que poderia corrigir esse problema alterando o conteúdo de i386-linux-gnu_GL.conf
para apenas /usr/lib32
e o conteúdo de x86_64-linux-gnu_GL.conf
para apenas /usr/lib
.
Infelizmente, isso faz com que o glxinfo se atrapalhe:
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
e segfaults do Steam. Eu sinto que estou muito perto de corrigir esse problema; Só não sei o que fazer ou onde o melhor lugar para pedir ajuda seria.
Acabei desistindo disso. Eu reinstalei o Ubuntu 12.04 e fiquei com os binários pré-compilados. Tudo parece funcionar bem agora.