Steam: błąd libGL: Nie znaleziono pasujących fbKonfiguracje lub elementy wizualne błąd libGL: nie można załadować sterownika: swrast

37

Po kliknięciu aplikacji komputerowej „Steam” nic się nie dzieje.

Uruchomienie steamw terminalu powoduje:

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

Co ciekawe, jeśli zmienię sterownik GPU na xorg, to działa idealnie.

Co mogę zrobić, aby działało? Przestał działać po ostatniej aktualizacji Steam (36 godzin temu).

Próbowałem odinstalować nvidię - sudo apt-get remove nvidia*i ponownie zainstalować sterownik, ale bez powodzenia.

cbll
źródło

Odpowiedzi:

52

Ubuntu 16.04+ Dla każdego, kto nadal otrzymuje ten sam błąd, jeśli używasz sterownika nvidia, czasami zobaczysz, że libGL.so.1 wskazuje na niejednoznaczne libGL dostarczone przez zarówno mesa, jak i nvidia. Aby to przetestować, możesz uruchomić to polecenie

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

Wynik był podobny do:

    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

Teraz po prostu musiałem usunąć bibliotekę dostarczoną przez mesa i wszystko działało idealnie.

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

Aktualizacja: Ten problem nie występuje już w systemie Ubuntu 18.04 LTS.

Zobayer Hasan
źródło
11
Człowieku, zasługujesz na ogromne ciastko.
Aritz Lopez,
2
To poprawna odpowiedź
Colonder
2
na debianie 9 usunąłem ten i działałem, ale nie wspominając o „mesa”, jednak „dpkg -S libGL.so.1” daje wskazówkę, którą powinieneś usunąć. Więc: rm /usr/lib/i386-linux-gnu/libGL.so.1 I ciesz się ciasteczkiem :)
FabricioFCarv
4
Ten problem występuje nadal 18.10
QkiZ
4
Po zaktualizowaniu Linux Mint z 18 do 19 miałem ten problem. Musiałem usunąć /usr/lib/i386-linux-gnu/libGL.so.1. Dziękuję Zobayer Hasan za pomoc!
kayo
7

Podsystem Windows dla systemu Linux (WSL) ma ten sam błąd

W Windows Subsystem for Linux (WSL) pod Windows 10 plik /usr/lib/i386-linux-gnu/mesa/libGL.so.1nie istnieje. Zamiast tego plik /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1wydaje się go zastępować. Jeśli jednak usuniesz plik zastępczy, biblioteka w ogóle nie będzie działać.

Zmień nazwę biblioteki, a następnie zmień nazwę z powrotem rozwiązuje problem

Jeśli zmienisz nazwę pliku, a następnie zmienisz nazwę z powrotem, błędy znikną i działa o wiele szybciej:

───────────────────────────────────────────────────────────────────────────────
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$

Sprawdziłem, czy zmiana jest trwała, tzn. Zamknij okno terminala WSL i otwórz nowe okno.

Czego używa biblioteka?

Biblioteka jest używana yadw skrypcie bash z blokadą ekranu, zaktualizowanym o hybrydową obsługę WSL oprócz Ubuntu. Yad jest rozwidleniem, Zenitydlatego widzisz Gtk-Message:odniesienie podobne do Zenity w trzecim komunikacie o błędzie powyżej.

Oto yadjak wygląda okno w Ubuntu (w WSL jest nieco inne):

Timer blokady ekranu

WinEunuuchs2Unix
źródło
To nie działało dla mnie - chociaż nie używam timera blokującego ekran
Eric
lock-screen-timerjest tylko przykładem skryptu wywołującego GUI. Możesz użyć gedit.
WinEunuuchs2Unix
Jasne, rozumiem. Chodzi mi o to, że moja aplikacja ( rqt) może wywoływać GUI w inny sposób, co może być przyczyną niepowodzenia po wypróbowaniu poprawki
Eric
Hm Dla mnie gnome-terminal rzuca to samo ostrzeżenie, ale nawet bez zmiany nazwy, ostrzeżenie zniknęło podczas uruchamiania drugiej instancji gnome-terminal. Czy nie jest tak w przypadku twojego „rozwiązania”?
jan-glx
To też nie zadziałało
Francesco Boccardo,
2

Może to być problem ze sterownikiem NVIDIA, zgodnie z problemem Steam-for-Linux .

W moim przypadku, zainstalowany SuperTuxKart poprzez flapak, kiedy prowadził ją poznałam następujące błędy:

..:: 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

Moje rozwiązanie to:

  1. Sprawdź sterownik nvidia w moim systemie

ubuntu-drivers devices

To nvidia-driver-430już zainstalowany.

  1. Zgodnie z problemem wydania Steam-for-Linux , zainstaluj, nvidia-driver-418aby wymienićnvidia-driver-430

sudo apt install libnvidia-gl-418

Podpowiedział, że nie ma zależności libnvidia-compute-418, więc po prostu zainstaluj libnvidia-compute-418najpierw.

sudo apt install libnvidia-compute-418

następnie

sudo apt install libnvidia-gl-418

  1. Uruchom ponownie system.

Potem uruchomiłem SuperTuxKart , zadziałało.

Yong Yang
źródło