Por que minhas bibliotecas OpenGL de 32 bits apontam para mesa em vez de nvidia, e como faço para corrigir isso?

4

Eu instalei os drivers da Nvidia no meu sistema Ubuntu 13, mas de acordo com este comando ( ldconfig -p | grep GL ):

$ ldconfig -p | grep GL
    libQtOpenGL.so.4 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4
    libGLU.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLU.so.1
    libGLEWmx.so.1.8 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.8
    libGLEW.so.1.8 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLEW.so.1.8
    libGLESv2.so.2 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2
    libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
    libGL.so.1 (libc6) => /usr/lib/i386-linux-gnu/mesa/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/libGL.so
    libEGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/mesa-egl/libEGL.so.1

A versão de 32 bits do OpenGL está apontando para as bibliotecas do mesa em vez da nvidia. Isso faz com que meus jogos Steam se recusem a iniciar com o erro:

  

Não foi possível encontrar o ponto de entrada necessário do OpenGL 'glGetError'! Sua placa de vídeo não é suportada ou seu driver OpenGL precisa ser atualizado.

Por que isso acontece? Quando o instalador nvidia me perguntou se eu queria instalar "bibliotecas de compatibilidade de 32 bits" (ou algo parecido), eu escolhi sim. Como faço para corrigir isso?

Editar:

Eu apenas reinstalei o mesmo driver da Nvidia, e isso aparentemente removeu completamente o driver OpenGL de 32 bits:

$ ldconfig -p | grep libGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/libGL.so

Agora o Steam não será iniciado:

  

Você está perdendo as seguintes bibliotecas de 32 bits, e o Steam pode não executar:   libGL.so.1

Mais uma vez, escolhi YES quando o instalador me perguntou se eu queria instalar bibliotecas de 32 bits. Por que eles não estão instalados!?

    
por Hubro 27.06.2013 / 03:00

3 respostas

2

Opção 1: Tente executar sudo ldconfig em um terminal. Reinicie e tente.

Opção 2: Se isto não for ordenado, você terá que adicionar manualmente o diretório das bibliotecas NVidia (/ usr / lib32) ao arquivo de configuração ldconfig (/ etc / ld. so.conf.d / libc.conf) e, em seguida, execute novamente o ldconfig (como root, é claro)

EDIT: Eu faria uma cópia do libc.conf antes de alterá-lo.

    
por BiggJJ 27.06.2013 / 03:11
1

Quando eu reinstalei os drivers da Nvidia, todos os drivers OpenGL do Mesa foram removidos do cache da biblioteca. O cache da minha biblioteca ficou assim:

$ ldconfig -p | grep libGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/libGL.so

Não há drivers de 32 bits lá! Felizmente, após uma pesquisa rápida, encontrei os drivers de 32 bits da Nvidia em /usr/lib32 . Eu adicionei esse caminho para um arquivo em /etc/ld.so.conf.d/ (qualquer arquivo servirá, você pode até criar um novo arquivo) e executei sudo ldconfig . Meu cache agora é assim:

$ ldconfig -p | grep libGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
    libGL.so.1 (libc6) => /usr/lib32/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/libGL.so
    libGL.so (libc6) => /usr/lib32/libGL.so

E o Steam funciona perfeitamente!

    
por Hubro 27.06.2013 / 05:19
0

Codemonkey Correct. Tudo o que você precisa fazer é adicionar o driver nvidia de 32 bits e remover o driver da mesa.

cd /etc/ld.so.conf.d/

ls

encontre um nome de arquivo com o "i386"

o meu é "i386-linux-gnu_GL.conf"

então eu escrevo,

sudo gedit i386-linux-gnu_GL.conf 

adicione o caminho do driver de 32 bits usando o gedit.
o meu é "/ usr / lib32 /".

Se você não conseguir encontrar o local do driver de 32 bits, basta pesquisar.

Salvar. Abra o terminal e digite:

sudo ldconfig

Meu Half-Life2 funciona perfeitamente depois disso. : D

    
por Haikalx 03.12.2013 / 11:43