Steam: erro libGL: nenhum fbConfigs ou recursos visuais encontrados erro libGL: falha ao carregar o driver: swrast

37

Se eu clicar no aplicativo de desktop do "Steam", nada acontece.

A execução steamno terminal produz o seguinte:

STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(1474415843)
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

O interessante é que, se eu mudar o driver da GPU xorg, ele funcionará perfeitamente.

O que posso fazer para que funcione? Parou de funcionar após a atualização mais recente do vapor (36 horas atrás).

Tentei desinstalar a nvidia - sudo apt-get remove nvidia*e reinstalar o driver, mas sem sorte.

cbll
fonte

Respostas:

52

Ubuntu 16.04+ Para quem ainda está com o mesmo erro, se estiver usando o driver da nvidia, às vezes verá que libGL.so.1 aponta para a libGL ambígua fornecida pelo mesa e pela nvidia. Para testar isso, você pode executar este comando

$ sudo ldconfig -p | grep -i gl.so

A saída foi algo como:

    libwayland-egl.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libwayland-egl.so.1
    libftgl.so.2 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libftgl.so.2
    libcogl.so.20 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcogl.so.20
    libQt5OpenGL.so.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQt5OpenGL.so.5
    libQtOpenGL.so.4 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4
    libQtOpenGL.so.4 (libc6) => /usr/lib/i386-linux-gnu/libQtOpenGL.so.4
    libOpenGL.so.0 (libc6,x86-64) => /usr/lib/nvidia-378/libOpenGL.so.0
    libOpenGL.so (libc6,x86-64) => /usr/lib/nvidia-378/libOpenGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/nvidia-378/libGL.so.1
    libGL.so.1 (libc6) => /usr/lib/i386-linux-gnu/mesa/libGL.so.1
    libGL.so.1 (libc6) => /usr/lib32/nvidia-378/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/nvidia-378/libGL.so
    libGL.so (libc6) => /usr/lib32/nvidia-378/libGL.so
    libEGL.so.1 (libc6,x86-64) => /usr/lib/nvidia-378/libEGL.so.1
    libEGL.so.1 (libc6) => /usr/lib32/nvidia-378/libEGL.so.1
    libEGL.so (libc6,x86-64) => /usr/lib/nvidia-378/libEGL.so
    libEGL.so (libc6) => /usr/lib32/nvidia-378/libEGL.so

Agora eu só precisava remover a biblioteca fornecida pelo mesa e tudo funcionou perfeitamente.

$ sudo rm /usr/lib/i386-linux-gnu/mesa/libGL.so.1

Atualização: Esse problema não existe mais no Ubuntu 18.04 LTS.

Zobayer Hasan
fonte
11
Cara, você merece um biscoito enorme.
Aritz Lopez
2
Esta é a resposta correta
Colonder
2
no debian 9, eu removi este e trabalhei, mas nenhuma menção ao "mesa", no entanto, "dpkg -S libGL.so.1" deu uma dica sobre qual você deve remover. Então: rm /usr/lib/i386-linux-gnu/libGL.so.1 E aproveite seu cookie :) #
FabricioFCarv
4
Esse problema persiste em 18.10
QkiZ 10/11
4
Depois de atualizar o Linux Mint de 18 para 19, tive esse problema. Eu tive que remover /usr/lib/i386-linux-gnu/libGL.so.1 Obrigado Zobayer Hasan por sua ajuda!
kayo 24/02
7

O subsistema Windows para Linux (WSL) tem o mesmo erro

No Windows Subsystem para Linux (WSL) no Windows 10, o arquivo /usr/lib/i386-linux-gnu/mesa/libGL.so.1não existe. Em vez disso, existe o arquivo /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1parece substituí-lo. No entanto, se você excluir o arquivo de substituição, a biblioteca não funcionará.

Renomear biblioteca e renomear novamente resolve o problema

Se você renomear o arquivo e depois renomeá-lo, os erros desaparecerão e funcionará muito mais rápido:

───────────────────────────────────────────────────────────────────────────────
rick@alien:/mnt/e/etc$ lock-screen-timer
Linux version 4.4.0-43-Microsoft ([email protected]) (gcc version 5.4.0 (GCC) ) #1-Microsoft Wed Dec 31 14:42:53 PST 2014
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
───────────────────────────────────────────────────────────────────────────────
rick@alien:/mnt/e/etc$ sudo ldconfig -p | grep -i gl.so
        libwayland-egl.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libwayland-egl.so.1
        libcogl.so.20 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcogl.so.20
        libQt5OpenGL.so.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQt5OpenGL.so.5
        libGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
        libEGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/mesa-egl/libEGL.so.1
───────────────────────────────────────────────────────────────────────────────
rick@alien:/mnt/e/etc$ sudo rm /usr/lib/i386-linux-gnu/mesa/libGL.so.1
rm: cannot remove '/usr/lib/i386-linux-gnu/mesa/libGL.so.1': No such file or directory
───────────────────────────────────────────────────────────────────────────────
rick@alien:/mnt/e/etc$ sudo mv /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.ORIGINAL
───────────────────────────────────────────────────────────────────────────────
rick@alien:/mnt/e/etc$ lock-screen-timer
Linux version 4.4.0-43-Microsoft ([email protected]) (gcc version 5.4.0 (GCC) ) #1-Microsoft Wed Dec 31 14:42:53 PST 2014
/usr/bin/zenity: error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory
───────────────────────────────────────────────────────────────────────────────
rick@alien:/mnt/e/etc$ sudo mv /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.ORIGINAL /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
───────────────────────────────────────────────────────────────────────────────
rick@alien:/mnt/e/etc$ lock-screen-timer
Linux version 4.4.0-43-Microsoft ([email protected]) (gcc version 5.4.0 (GCC) ) #1-Microsoft Wed Dec 31 14:42:53 PST 2014
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
───────────────────────────────────────────────────────────────────────────────
rick@alien:/mnt/e/etc$

Eu verifiquei que a alteração é persistente, ou seja, feche a janela do terminal WSL e abra uma nova janela.

O que está usando a biblioteca?

A biblioteca é usada yadno script bash do timer de bloqueio de tela atualizado com suporte híbrido para WSL, além do Ubuntu. O yad é uma bifurcação Zenitye é por isso que você vê a referência do Zenity Gtk-Message:na terceira mensagem de erro acima.

Aqui está a yadaparência da janela no Ubuntu (na WSL é um pouco diferente):

Temporizador da tela de bloqueio

WinEunuuchs2Unix
fonte
Isso não funcionou para mim - embora eu não esteja usando o temporizador de tela de bloqueio
Eric
lock-screen-timeré apenas um exemplo de script que chama a GUI. Você poderia usar gedit.
WinEunuuchs2Unix
Claro, eu percebo. Meu ponto é que a minha aplicação ( rqt) pode ser invocando a GUI de uma maneira diferente, o que pode ser por isso que ele ainda falhar depois de tentar a sua correção
Eric
Hum. Para mim, o gnome-terminal lança o mesmo aviso, mas mesmo sem renomear nada, o aviso desaparece ao iniciar uma segunda instância do gnome-terminal. Também não é esse o caso da sua "solução"?
jan-GLX
Isso não funcionou para mim também
Francesco Boccardo
2

Esse pode ser um problema de driver da nvidia, de acordo com um problema do steam-for-linux .

No meu caso, instalei o SuperTuxKart através de flapak, quando o executei, encontrei os seguintes erros:

..:: Antarctica Rendering Engine 2.0 ::..
Linux 4.15.0-52-generic #56-Ubuntu SMP Tue Jun 4 22:49:08 UTC 2019 x86_64
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

Minha solução é:

  1. Verifique o driver da nvidia no meu sistema

ubuntu-drivers devices

Já foi nvidia-driver-430instalado.

  1. De acordo com o problema do steam-for-linux , instale nvidia-driver-418para substituirnvidia-driver-430

sudo apt install libnvidia-gl-418

Ele solicitou a falta de dependência de libnvidia-compute-418, então instale libnvidia-compute-418primeiro.

sudo apt install libnvidia-compute-418

então

sudo apt install libnvidia-gl-418

  1. Reiniciar sistema.

Então eu corri o SuperTuxKart , funcionou.

Yong Yang
fonte