web-dev-qa-db-fra.com

Steam: erreur libGL: aucune correspondance fbConfigs ou visuelle trouvée erreur libGL: échec du chargement du pilote: swrast

Si je clique sur l'application de bureau de "Steam", rien ne se passe.

Exécuter Steam dans le terminal produit les éléments suivants:

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

Ce qui est intéressant, c’est que si je change mon pilote GPU en xorg, cela fonctionne parfaitement.

Que puis-je faire pour que cela fonctionne? Il a cessé de fonctionner après la dernière mise à jour de Steam (il y a 36 heures).

J'ai essayé de désinstaller nvidia - Sudo apt-get remove nvidia* et de réinstaller le pilote, mais sans succès.

28
cbll

buntu 16.04 + Pour tous ceux qui obtiennent toujours la même erreur, si vous utilisez le pilote nvidia, vous verrez parfois que libGL.so.1 pointe sur une bibliothèque ambigu ambigu fournie par mesa et nvidia. Pour tester cela, vous pouvez exécuter cette commande

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

La sortie était quelque chose comme:

    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

Maintenant, je devais simplement retirer la bibliothèque fournie par mesa et tout fonctionnait parfaitement.

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

Mise à jour: Ce problème n'existe plus à partir d'Ubuntu 18.04 LTS.

47
Zobayer Hasan

Le sous-système Windows pour Linux (WSL) a la même erreur

Dans le sous-système Windows pour Linux (WSL) sous Windows 10, le fichier /usr/lib/i386-linux-gnu/mesa/libGL.so.1 n'existe pas. À la place, le fichier /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 semble le remplacer. Cependant, si vous supprimez le fichier de remplacement, la bibliothèque ne fonctionne pas du tout.

Renommer la bibliothèque puis renommer en arrière résout le problème

Si vous renommez le fichier puis renommez-le, les erreurs disparaissent et le travail est beaucoup plus rapide:

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

J'ai vérifié que le changement était persistant, c'est-à-dire fermer la fenêtre du terminal WSL et ouvrir une nouvelle fenêtre.

Qu'est-ce qui utilise la bibliothèque?

La bibliothèque est utilisée par yad dans le script bash lock-screen-timer mis à niveau avec la prise en charge hybride de WSL en plus d’Ubuntu. Yad est un fork de Zenity, raison pour laquelle vous voyez la référence Gtk-Message: de type Zenity dans le troisième message d'erreur ci-dessus.

Voici à quoi ressemble la fenêtre yad dans Ubuntu (dans WSL, elle est légèrement différente):

Lock Screen Timer

5
WinEunuuchs2Unix