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

37

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

L'exécution steamdans 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 de pilote GPU 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.

cbll
la source

Réponses:

52

Ubuntu 16.04+ Si vous utilisez toujours le pilote nvidia, vous constaterez parfois que libGL.so.1 pointe sur libGL ambigu fourni 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.

Zobayer Hasan
la source
11
Mec, tu mérites un énorme cookie.
Aritz Lopez
2
C’est la bonne réponse
Colonder
2
sur debian 9, j’ai enlevé celui-ci et travaillé, mais aucune mention de "mesa", cependant, "dpkg -S libGL.so.1" donne un conseil que vous devez supprimer. Donc: rm /usr/lib/i386-linux-gnu/libGL.so.1 et profitez de votre cookie :)
FabricioFCarv
4
Ce problème persiste le 18.10
QkiZ
4
Après avoir mis à jour Linux Mint de 18 à 19, j'ai eu ce problème. Je devais retirer /usr/lib/i386-linux-gnu/libGL.so.1 Merci Zobayer Hasan pour votre aide!
kayo
7

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.1n'existe pas. Au lieu de cela, le fichier /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1semble 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 yadle script bash de lock-screen-timer mis à niveau avec la prise en charge hybride de WSL en plus d’Ubuntu. Yad est un fork de Zenitypourquoi vous voyez la Gtk-Message:référence de type Zenity dans le troisième message d'erreur ci-dessus.

Voici à quoi yadressemble la fenêtre dans Ubuntu (dans WSL, c'est légèrement différent):

Verrouiller la minuterie de l'écran

WinEunuuchs2Unix
la source
Cela n'a pas fonctionné pour moi - bien que je ne me sers pas du verrouillage de l'écran
Eric
lock-screen-timerest juste un exemple de script qui appelle l'interface graphique. Vous pourriez utiliser gedit.
WinEunuuchs2Unix
Bien sûr, je me rends compte. Mon idée est que mon application ( rqt) peut invoquer l’interface graphique différemment, ce qui explique peut-être pourquoi il échoue encore après l’essai de votre correctif
Eric
Hm. Pour moi, gnome-terminal émet le même avertissement, mais même sans rien renommer, cet avertissement disparaît lorsque vous démarrez une deuxième instance de gnome-terminal. N'est-ce pas le cas peut-être aussi pour votre "solution"?
jan-glx
Cela n’a pas fonctionné pour moi aussi
Tropilio
2

Cela pourrait être un problème de pilote nvidia, selon un problème steam-for-linux .

Dans mon cas, j’ai installé SuperTuxKart via flapak, quand je l’ai exécuté, j’ai rencontré les erreurs suivantes:

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

Ma solution est:

  1. Vérifiez le pilote nvidia sur mon système

ubuntu-drivers devices

Il a nvidia-driver-430déjà installé.

  1. Selon le problème "steam-for-linux" , installez nvidia-driver-418pour remplacernvidia-driver-430

sudo apt install libnvidia-gl-418

Il a été incité à ne pas dépendre de l’ libnvidia-compute-418installation, libnvidia-compute-418commencez donc par l’installer .

sudo apt install libnvidia-compute-418

puis

sudo apt install libnvidia-gl-418

  1. Redémarrer le système.

Ensuite, j'ai lancé SuperTuxKart , cela a fonctionné.

Yong Yang
la source