Steam auf 64-Bit Funtoo
Sunday, 5. June 2016
Steam hat jetzt eine ganze Weile problemlos funktioniert. Aber kürzlich hatte sich irgendetwas geändert und es ging nicht mehr. Ich werde hier dokumentieren, wie man Steam installieren und sein System vorbereiten muss.
Multilib
Steam braucht die 32-Bit Versionen verschiedener Libraries. Um das zu erschlagen aktiviert man am einfachsten Multilib für das gesamte System. In die /etc/portage/package.use kommt ein:
*/* abi_x86_32
Danach das System aktualisieren:
emerge --sync layman -S emerge --ask --update --deep --with-bdeps=y --newuse @world
Steam aus Overlay installieren
Steam selbst ist in verschiedenen Overlays. Wir nutzen hier das von anyc:
layman -a steam-overlay emerge steam-meta
Danach einmal steam
starten und nach seiner Installation schließen.
Veraltete Libs löschen
Um keine Probleme mit den veralteten Libs zu bekommen, die Steam mitliefert, folgen wir diesem Tipp und löschen sie:
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/installed/libstdc++6-4.6-pic_4.6.3-1ubuntu5+srt4_amd64 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/installed/libstdc++6-4.6-pic_4.6.3-1ubuntu5+srt4_amd64.md5 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/installed/libstdc++6_4.8.1-2ubuntu1~12.04+steamrt2+srt1_amd64 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/installed/libstdc++6_4.8.1-2ubuntu1~12.04+steamrt2+srt1_amd64.md5 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++_pic.a && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++_pic.map && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.18 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/share/doc/libstdc++6 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/share/doc/libstdc++6-4.6-pic && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/installed/libstdc++6-4.6-pic_4.6.3-1ubuntu5+srt4_i386 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/installed/libstdc++6-4.6-pic_4.6.3-1ubuntu5+srt4_i386.md5 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/installed/libstdc++6_4.8.1-2ubuntu1~12.04+steamrt2+srt1_i386 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/installed/libstdc++6_4.8.1-2ubuntu1~12.04+steamrt2+srt1_i386.md5 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/gcc/i686-linux-gnu/4.6/libstdc++_pic.a && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/gcc/i686-linux-gnu/4.6/libstdc++_pic.map && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6.0.18 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/share/doc/libstdc++6 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/share/doc/libstdc++6-4.6-pic && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime.old/i386/usr/share/doc/libstdc++6 rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libgcc_s.so.1 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libgcc_s.so.1
LIBGL_DRIVERS_PATH setzen
Dies ist der Knackpunkt. Auf einem 64-Bit-System würde Steam jetzt versuchen, die 64-Bit-Treiber zu laden und daran scheitern. Also brauchen wir ein Startskript, das Steam zum richtigen Treiber führt:
#!/bin/sh killall compton LIBGL_DRIVERS_PATH="/usr/lib32/dri" LIBGL_DEBUG="verbose" /usr/bin/steam compton --vsync opengl --backend glx &
Allerdings würden jetzt ebenfalls die Spiele in Steam diese 32-Bit-Treiber laden, und daran scheitern wenn sie selbst 64-Bit-Programme sind. Genau das war, was anfangs nicht passierte – eventuell wurde CS:GO aktualisiert? Auf jeden Fall muss deshalb der Treiberpfad wieder umgebogen werden. Dafür in der Library auf das Spiel rechtsklicken, Properties auswählen und bei Set Launch Options dies eintragen:
LIBGL_DRIVERS_PATH=/usr/lib/dri %command%
Steam sollte jetzt einwandfrei funktionieren.