Tenho problemas ao compilar 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 solucionado com a reinstalação simples dos drivers nvidia através deste tutorial: https://askubuntu.com/a/451248/341889
..mas quando 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 ...
PS e sim, salvei todas as alterações após a instalação da nvidia-drivers
libGL.so
:LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/mesa ./glprogram
. Por padrão, meu Ubuntu 16.04 usa/usr/lib/nvidia-361/libGL.so
por causa/etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf
disso e tudo funciona bem.Respostas:
O
swrast
problema é o renderizador de software. Isso significa que não está encontrando o driver de hardware para sua placa de vídeo. Existem várias bibliotecas libGL instaladas e vários links simbólicos para essas bibliotecas. Para vê-los, execute isso no shell:Agora, a causa provável do seu problema é que a instalação de drivers gráficos às vezes quebra esses links simbólicos. (Especificamente,
/usr/local/lib/libGL.so.1.2.0
é provável que seja a lib errada 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 OpenGL:
Espero que isso falhe da mesma maneira que o SFML. Com
LIBGL_DEBUG
isso, você deverá saber qual biblioteca do OpenGL está tentando carregar. Além disso, a lib que ele está tentando carregar quase certamente será/usr/local/lib/libGL.so.1.2.0
(Edit: Esta era a biblioteca OpenGL padrão na minha máquina no momento em que respondi a isso. Pode muito bem ser outra versão na sua máquina agora).Portanto, a solução (neste caso) é garantir 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 da Nvidia 3.40, então executei:Mas você deve apontar para a biblioteca OpenGL apropriada para você (listada no primeiro comando find).
Em resumo: a instalação de drivers gráficos (proprietários) pode quebrar os links simbólicos usados nas bibliotecas do OpenGL. Para resolver esse problema, corrija manualmente os links simbólicos (corrija
/usr/local/lib/libGL.so.1.2.0
primeiro).fonte
Eu tive o mesmo problema no Ubuntu 16.10 com os
nvidia-340
drivers e nenhuma das soluções aqui funcionou para mim.Acontece que as bibliotecas de 32 bits não estavam no caminho da biblioteca.
Este liner funcionou para mim:
fonte
Eu estava tendo problemas para obter o link simbólico correto para apontar para o driver da nVidia e encontrei outra maneira que funciona para mim.
É descrito aqui .
E ele lista como instalar o driver nVidia via PPA, disponível para 349.16, a versão mais recente.
Primeiro desinstale todos os drivers da nVidia atualmente instalados, abrindo uma janela do terminal ( Ctrl+ ALT+ T) e digitando
Reinicie seu sistema
Em seguida, abra outro terminal e digite o seguinte
Em seguida, reinicie novamente
Eu tentei depois de me perder com os links simbólicos e o vapor funcionou bem imediatamente após a instalação do driver e, novamente, ainda estava funcionando depois de mais de 400 megas de atualizações do sistema.
fonte
Para fornecer uma alternativa à resposta de Adrian: se você preferir usar drivers proprietários provenientes diretamente da NVIDIA, em vez dos encontrados em um PPA, instalar (ou no meu caso, reinstalar) o driver proprietário mais recente pode ajudar a eliminar o erro swrast.
Se você ainda não possui o driver NVIDIA, faça o download do driver no site da NVIDIA . Em seguida, mude para tty (
ctrl
+alt
+F1
) e desligue o seu gerenciador de login:Se estiver usando o lightdm,
$ sudo service lightdm stop
Se você estiver usando o gdm,
$ sudo service gdm stop
Navegue para o script de instalação, execute-o e siga as instruções. Não se preocupe se o script de pré-instalação falhar. Eu sempre aceito registrar o DKMS e as bibliotecas de compatibilidade de 32 bits. Após a instalação do driver, reinicie sua máquina:
Se você já possui um script de instalação de um driver NVIDIA mais antigo, basta executar o script de instalação do driver NVIDIA conforme indicado acima, mas com a opção "--update":
Isso fornecerá a versão mais atualizada do driver.
Fazer isso corrigiu meu
libGL error: failed to load driver: swrast
erro.fonte
Tem o mesmo problema no ubuntu 18. Isso aconteceu basicamente apenas com aplicativos de 32 bits. Então, minha idéia foi instalar algo de 32 bits da nvidia, pois minha pasta / usr / lib / i386-linux-gnu / estava suspeitamente vazia.
Depois de poucas tentativas, isso resolveu meu problema com o vapor e o vinho não iniciando:
(e altere 418 para a versão que você tiver)
Interessante que os aplicativos não tenham se queixado de dependências ausentes durante a instalação.
fonte
Tenho que admitir, não sei por que isso funciona para mim, mas funcionou. Neste caso particularmente "corrigindo" as entradas ld.so.conf.d adicionando uma nova entrada como esta funciona:
Isso faz sentido, até você executar o seguinte
find
:Por que ter as mesmas entradas em trabalhos em triplicado, mas não em duplicado, não faço ideia!
fonte
Aqui está uma
apt
solução única que funcionou para mim, sem ligações simbólicas ou brincadeirasld.so.conf.d
:fonte
Eu apenas uso esta linha:
e funciona.
Porque eu vejo essa entrada quando executo
sudo ldconfig -p | grep -i gl.so
:fonte
Basta executar o seguinte:
A versão do seu driver é mostrada em nvidia-settings.
fonte
No meu caso, a solução para esse problema residia na continuação da mensagem de erro
O Paraview 5.7.0 me informou que:
A mensagem
tem sido a chave. Eu corro 'glxgears' para verificar se as bibliotecas gráficas estavam funcionando bem - veja também
man glxgears
- mostrando esta animação:Então minha solução foi simplesmente definir a variável de ambiente
Tome nota:
locate libGL.so
, encontro outro candidato/usr/lib/i386-linux-gnu/libGL.so
. Definir isso como LD_PRELOAD, no entanto, não resolveu o problema;locate libGLEW.so
Sou grato a https://github.com/openai/mujoco-py/issues/44 por dicas
fonte
Eu estava enfrentando esse problema estranho quando ssh na minha VM do Ubuntu a partir do meu Macbook Pro, mas a instalação do driver da Nvidia abaixo no Ubuntu 16.04 corrigiu o problema. Espero que funcione para voce.
sudo apt-get install nvidia-331
fonte