
Der Folgende Text habe ich von Claude zusammenfassen lassen, wie das Problem mit SteamVR auf Linux gelöst wurde. Anfang des Jahres dachte ich, dass SteamVR auf Linux nicht funktioniert und meinte nur ok, wird wohl nicht supportet. Die SteamVR Anwendung war gestartet aber kein Spiel ließ den Betrieb mit der Steam Index zu.
Diese Woche dachte ich, ich versuche mit Claude Opus ein VR Spiel generieren, dass ich direkt mit der Steam Index betreibenben kann. Für die Machbarkeit stieß ich mit hilfe von Claude, dass ich die Einstellung für OpenXR festlegen sollte für die Steam Index und dies ginge nur über SteamVR in den Einstellungen. Und so folgt eins zum anderen.
Ausgangspunkt
Für mein VR-Projekt TerraIncognitaVR, das ich mit der Godot Engine entwickle, wollte ich meine Valve Index unter Linux in Betrieb nehmen. Ich nutze Pop!_OS 24.04 LTS mit der neuen COSMIC-Oberfläche. Unter Windows lief die Index bei mir problemlos, unter Linux startete SteamVR zwar, aber das gewohnte SteamVR-Fenster mit dem Status von Brille, Controllern und Base Stations erschien nicht. Ohne dieses Fenster fand ich auch die Einstellung nicht, mit der man SteamVR als OpenXR-Runtime festlegt. Godot braucht genau diese Runtime, um mit der Brille zu sprechen.
Dazu kam, dass auf meinem Rechner zwei Steam-Installationen lagen: die normale Version aus dem Paketsystem und eine Snap-Version. In beiden war SteamVR installiert. Es war also nicht einmal klar, welche Installation beim Start überhaupt verwendet wurde.
Prüfen
Zuerst habe ich herausgefunden, welche Steam-Programme installiert sind:
Das Ergebnis waren /usr/games/steam (die normale
Version) und /snap/bin/steam (die Snap-Version). Die
Snap-Version läuft in einer Sandbox und macht bei VR häufig Probleme, deshalb
habe ich mich für die normale Installation entschieden. Wo SteamVR genau
liegt, zeigte die Suche nach dem Startskript:
SteamVR fand sich in beiden Installationen. Die normale lag nicht unter
~/.local/share/Steam, wie man es oft liest, sondern unter
~/.steam/debian-installation/.
Dann habe ich alle Steam-Instanzen beendet, nur die normale Version gestartet und SteamVR in einem zweiten Terminal direkt aufgerufen:
So kam die entscheidende Fehlermeldung zum Vorschein, die beim Start aus Steam heraus unsichtbar bleibt:
Die Ursache: COSMIC setzt die Umgebungsvariable
QT_QPA_PLATFORM auf wayland;xcb.
Das heißt “erst Wayland versuchen, sonst X11”. Die Qt-Bibliothek, die SteamVR
mitbringt, kennt aber nur xcb und kann mit dieser
Angabe nichts anfangen. Das SteamVR-Fenster stürzte deshalb sofort beim Start
ab.
Lösung
Der Test aus dem Terminal mit der passenden Variable brachte das SteamVR-Fenster sofort zum Vorschein:
Damit es auch beim normalen Start aus Steam funktioniert, habe ich die Variable dauerhaft eingetragen. In der Steam-Bibliothek mit Rechtsklick auf SteamVR → Eigenschaften → Allgemein steht jetzt bei den Startoptionen:
Seitdem startet SteamVR über den normalen Startknopf. Brille, Controller und Base Stations werden grün angezeigt. Im SteamVR-Fenster unter den Einstellungen (nach dem Einblenden der erweiterten Einstellungen) habe ich SteamVR als OpenXR-Runtime festgelegt. Ob das geklappt hat, zeigt dieser Befehl:
Er muss auf die Datei steamxr_linux64.json in der
normalen SteamVR-Installation zeigen, nicht in den Snap-Ordner.
Zum Schluss habe ich ein kleines Godot-Testprojekt gestartet, das den OpenXR-Status direkt in der Brille anzeigt. Der Boden erscheint, Kopf- und Handbewegungen werden genau übertragen, und jeder Tastendruck an den Controllern kommt an. Damit ist klar: Die Valve Index läuft unter Pop!_OS 24.04 mit SteamVR und Godot. Der Weg zum eigentlichen Prototyp ist frei.
Keine Kommentare:
Kommentar veröffentlichen