Problemas com libGl, fbConfigs, swrast através de cada atualização?

25

Eu tenho problemas quando compilo o projeto SFML (não vejo nenhum gráfico):

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

Este erro pode ser resolvido com a simples reinstalação de drivers nvidia através deste tutorial: link

.. mas quando eu recebo novas atualizações - este erro está retornando (O que devo fazer? Não é a solução - não use a atualização do sistema ...

P.S. e sim, salvei todas as alterações depois de instalar os drivers nvidia

    
por pushandpop 25.10.2014 / 11:29

7 respostas

21

A coisa swrast é o renderizador de software. Isso significa que não está encontrando o driver de hardware para sua placa gráfica. Há um monte de bibliotecas libGL instaladas e um monte de links simbólicos para essas bibliotecas. Para ver isso, execute isso no shell:

find /usr -iname "*libGL.so*" -exec ls -l -- {} + 

Agora, a causa provável do seu problema é que a instalação de drivers gráficos às vezes interrompe esses links simbólicos. (Especificamente, /usr/local/lib/libGL.so.1.2.0 provavelmente é o lib errado ou um link sym para o link errado).

Para descobrir qual biblioteca os programas OpenGL estão tentando executar, você pode ativar um pouco de verbosidade e executar um programa OpenGL simples. Você pode verificar isso usando o programa de teste padrão do OpenGL:

LIBGL_DEBUG=verbose glxgears

Espero que isso falhe da mesma forma que o SFML. Com LIBGL_DEBUG , ele deve informar o que a biblioteca OpenGL está tentando carregar. Além disso, o lib que ele tentará carregar quase certamente será /usr/local/lib/libGL.so.1.2.0 (Edit: Esta era a biblioteca OpenGL padrão na minha máquina na época em que eu respondi isso. Pode ser outra versão da sua máquina agora).

Portanto, a solução (nesse caso) é certificar-se de que /usr/local/lib/libGL.so.1.2.0 seja um link simbólico apontando para a biblioteca OpenGL correta. No meu caso eu tenho o driver Nvidia 3.40 então eu corri:

ln -s /usr/lib/nvidia-340/libGL.so.1 /usr/local/lib/libGL.so.1.2.0

Mas você vai querer apontá-lo no OpenGL lib que é apropriado para você (listado no primeiro comando find).

Em resumo: a instalação de drivers gráficos (proprietários) pode quebrar os links simbólicos usados para bibliotecas OpenGL. Para resolver esse problema, corrija manualmente os links simbólicos (fixe /usr/local/lib/libGL.so.1.2.0 first).

    
por demented hedgehog 29.12.2014 / 09:40
4

Eu estava tendo problemas para obter o symlink correto para apontar para o driver da nVidia e encontrei outro jeito que funciona para mim.

É descrito aqui .

E lista como instalar o driver nVidia via PPA que está disponível para 349.16, a última versão.

Primeiro desinstale quaisquer drivers da nVidia atualmente instalados abrindo uma janela de terminal ( Ctrl + ALT + T ) e digitando

sudo apt-get remove nvidia*

Reinicie seu sistema

Em seguida, abra outro terminal e digite o seguinte

sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update
sudo apt-get install nvidia-349 nvidia-settings
sudo add-apt-repository -r ppa:xorg-edgers/ppa

Em seguida, reinicie novamente

Eu tentei isso depois de me perder com os links simbólicos e o steam funcionou bem logo após a instalação do driver e novamente ele ainda estava funcionando depois que eu tive mais de 400 MB de atualizações do sistema.

    
por Adrian 21.05.2015 / 15:28
3

Eu tive o mesmo problema no Ubuntu 16.10 com os drivers nvidia-340 e nenhuma das soluções aqui funcionou para mim.

Acontece que as bibliotecas de 32 bits não estavam no caminho da biblioteca.

Esse único forro funcionou para mim:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib32/nvidia-340"
    
por alexg 08.04.2017 / 23:14
1

Para fornecer uma alternativa à resposta de Adrian: se você preferir usar drivers proprietários originados diretamente da NVIDIA em vez daqueles encontrados em um PPA, instalar (ou, no meu caso, reinstalar) o driver proprietário mais recente pode ajudar a eliminar o problema erro.

Se você ainda não tem o driver NVIDIA, baixe o driver do site da NVIDIA . Em seguida, mude para tty ( ctrl + alt + F1 ) e desligue seu gerenciador de login:

Se estiver usando lightdm, $ sudo service lightdm stop

Se estiver usando o gdm, $ sudo service gdm stop

Navegue até o script de instalação, execute-o e siga os prompts. Não se preocupe se o script de pré-instalação falhar. Eu sempre aceito registrar DKMS e as bibliotecas de compatibilidade de 32 bits. Depois que o driver estiver instalado, reinicie sua máquina:

$ sudo reboot

Se você já tem um script de instalação de um driver NVIDIA mais antigo, simplesmente execute o script de instalação do driver NVIDIA como descrito acima, mas com a opção "--update":

$ sudo ./NVIDIA-Linux-x86_64-***.**.run --update

Isso fará com que você tenha a versão mais atualizada do driver.

Isso corrigiu meu erro libGL error: failed to load driver: swrast .

    
por NWRichmond 22.08.2016 / 17:46
1

Tenho que admitir, não sei por que isso funciona para mim, mas aconteceu. Neste caso particular, "consertando" as entradas ld.so.conf.d adicionando uma nova entrada como esta, funciona:

sudo ln -s /usr/lib/nvidia-381/ld.so.conf /etc/ld.so.conf.d/nvidia64.conf
sudo ldconfig 

Isso faz sentido até você executar o seguinte find :

$ find -L /etc/ld.so.conf.d -type f | xargs grep -i nvidia
/etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf:/usr/lib/nvidia-381
/etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf:/usr/lib32/nvidia-381
/etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf:/usr/lib/nvidia-381
/etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf:/usr/lib32/nvidia-381
/etc/ld.so.conf.d/nvidia64.conf:/usr/lib/nvidia-381
/etc/ld.so.conf.d/nvidia64.conf:/usr/lib32/nvidia-381

Por que ter as mesmas entradas em triplicado funciona, mas não em duplicado, não tenho ideia!

    
por bbarker 30.04.2017 / 20:58
1

Aqui está uma solução apt -only que funcionou para mim, sem symlinking ou mucking com ld.so.conf.d :

apt install --reinstall libgl1-mesa-glx:i386
apt install mesa-utils nvidia-driver nvidia-driver-libs-i386
    
por Cuadue 24.11.2017 / 02:03
-2

Eu estava enfrentando esse problema estranho quando eu ssh para o meu Ubuntu VM do meu Macbook Pro, mas a instalação do driver Nvidia abaixo no meu Ubuntu 16.04 corrigiu o problema. Espero que isso funcione para você.

sudo apt-get instala nvidia-331

    
por TekTutorJegan 28.10.2016 / 07:33