Steam: libGL error
- Wenn ich Steam unter Arch Linux starte, scheitert dies häufig an einem Fehler im Zusammenhang mit libGL.
- Hier zeige ich kurz meine Lösung für das Problem.
- Hinweis: Ich nutze eine Konfiguration der Spiele-Anwendungen, welche ein “virtuelles” Home-Verzeichnis nutzt.
- Fehler? Ergänzungen? Fragen? Schreib mir.
Ausgangslage
1
2
3
4
5
6
7
8
9
10
11
12
$ steam
Running Steam on arch rolling 64-bit
STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(##########)
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
Fehlersuche
Der folgende Code von Github löscht alle 3 beschriebenen Dateien in den Ordnern unter ~/.steam/root/.
find ~/.steam/root/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -delete
# or
find ~/.local/share/Steam/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -deleteDies hat bei mir den Fehler leider nicht behoben. Sollte es aber und hat es mal vor langer Zeit. Also schauen wir uns einmal an welche Bibliotheken fehlen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
cd ~/.local/share/Steam/ubuntu12_32
file * | grep ELF | cut -d: -f1 | LD_LIBRARY_PATH=. xargs ldd | grep 'not found' | sort | uniq
libatk-1.0.so.0 => not found
libcairo.so.2 => not found
libcups.so.2 => not found
libdbus-glib-1.so.2 => not found
libgconf-2.so.4 => not found
libgdk_pixbuf-2.0.so.0 => not found
libgtk-x11-2.0.so.0 => not found
libnm-glib.so.4 => not found
libnm-util.so.2 => not found
libnspr4.so => not found
libnss3.so => not found
libnssutil3.so => not found
libopenal.so.1 => not found
libpango-1.0.so.0 => not found
libpangocairo-1.0.so.0 => not found
libsmime3.so => not found
libudev.so.0 => not found
libusb-1.0.so.0 => not found
libXcomposite.so.1 => not found
libXinerama.so.1 => not found
Das sind ja doch ein paar. Im Arch-Linux-Wiki sind die Abhängigkeiten für Steam aufgelistet:
lib32-openallib32-nsslib32-gtk2lib32-gtk3lib32-libcanberralib32-gconf(AUR)lib32-dbus-glib(AUR)lib32-libnm-glib(AUR)lib32-libudev0(AUR)
Diese installieren:
sudo pacman -S lib32-openal lib32-nss lib32-gtk2 lib32-gtk3 lib32-libcanberra
yaourt -Ss lib32-gconf lib32-dbus-glib lib32-libnm-glib lib32-libudev0Und überprüfen, ob auch alle Abhängigkeiten da sind:
1
2
cd ~/.local/share/Steam/ubuntu12_32
file * | grep ELF | cut -d: -f1 | LD_LIBRARY_PATH=. xargs ldd | grep 'not found' | sort | uniq
Kein Output heißt, dass alle Bibliotheken da sind. Starten tut Steam dennoch nicht:
1
2
3
4
5
6
7
8
9
10
11
12
$ steam
Running Steam on arch rolling 64-bit
STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(##########)
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
Aber es funktioniert der Steam-Installer, wenn man der Umgebung sagt, wo die Bibliotheken zu finden sind:
Exec=env LD_PRELOAD='/usr/$LIB/libstdc++.so.6 /usr/$LIB/libgcc_s.so.1 /usr/$LIB/libxcb.so.1' /usr/bin/steam %U