Kürzlich veröffentlichte Steam Steam Play, das die von Steam gehostete Weingabel Proton ( GitHub ) verwendet, um unsere komplette Spielebibliothek unter Linux spielen zu können. Es erstellt Wineprefixes für alle Ihre Spiele, die noch keinen Linux-Port haben, und funktioniert weitaus besser als Wine.
Ich versuche, Supreme Commander - Forged Alliance (Steam App ID: 9420) auszuführen und auf seinem inoffiziellen Multiplayer-Client FAF zu spielen. Das Spiel funktionierte früher mit Wine, hat aber jetzt eine Reihe von Problemen (z. B. funktioniert der Vollbildmodus nicht und es besteht eine hohe Tendenz zum Schwarzbildschirm in Fenstern). Aber es funktioniert mit Proton.
Ich versuche hier, dieses spezielle Steam-Spiel über das Terminal und nicht über die Steam-GUI auszuführen.
Meine Absicht ist es nicht, Steam DRM zu umgehen, was das Ausführen der Spiele über das Terminal wahrscheinlich sowieso nicht erreichen würde, sondern es mit dynamischen Argumenten auszuführen. Dies ermöglicht das Einrichten von Multiplayer-Matches. Dies wird in Zukunft auf andere Spiele angewendet.
Aber ich habe Probleme beim Laufen im Terminal:
cd ~/.local/share/Steam/steamapps/common/Proton*
STEAM_COMPAT_DATA_PATH=/home/t/.local/share/Steam/steamapps/compatdata/9420 ./proton run /home/t/.local/share/Steam/steamapps/common/Supreme\ Commander\ Forged\ Alliance/bin/SupremeCommander.exe
Ich erhalte ein Fehlerfenster: "Anwendungsladefehler P: 0000065615". Wenn ich dieses Fenster schließe, komme ich einfach ohne zusätzliche Ausgabe zum Terminal zurück. Ich habe mit anderen Spielen experimentiert:
Age of Empires 2 HD schlägt fehl, aber mit einem viel ausführlicheren Fehlermeldungsfenster, das angibt, dass Steam ausgeführt werden muss, wurde Steam zu diesem Zeitpunkt ausgeführt (und es würde ausgeführt, wenn ich in Steam auf die Wiedergabetaste geklickt hätte).
Bannerman : Es gibt überhaupt keine Nachricht und noch weniger ausführlich.
Shadow Complex Remastered erhält einen aktuellen Ladebildschirm des Spiels , läuft etwa zwei Sekunden lang und stürzt dann mit einem Fehler ab:
CAppInfoCacheReadFromDiskThread took 3 milliseconds to initialize CApplicationManagerPopulateThread took 7 milliseconds to initialize (will have waited on CAppInfoCacheReadFromDiskThread)
Daher scheint kein Spiel mit dieser Methode erfolgreich zu laufen.
Vielleicht etwas Potenzial hier UPDATE 3/10/2018 :
WINEPREFIX="/home/t/fa-wineprefix/":"/home/t/.local/share/Steam/steamapps/common/Proton 3.7/dist/lib/wine winecfg"
PATH="/home/t/.local/share/Steam/steamapps/common/Proton 3.7/dist/bin/:$PATH"
export WINEDLLPATH="/home/t/.local/share/Steam/steamapps/common/Proton 3.7/dist/lib64/wine:/home/t/.local/share/Steam/steamapps/common/Proton 3.7/dist/lib/wine"
export LD_LIBRARY_PATH="/home/t/.local/share/Steam/steamapps/common/Proton 3.7/dist/lib64:/path/to/steam/steamapps/common/Proton 3.7/dist/lib:/usr/lib/steam:/usr/lib32/steam"
WINEPREFIX="/home/t/fa-wineprefix/" "/home/t/.local/share/Steam/steamapps/common/Proton 3.7/dist/bin/./wine" "/home/t/.local/share/Steam/steamapps/common/Supreme Commander Forged Alliance/bin/SupremeCommander.exe"
Diese Methode schlägt jedoch beim letzten Befehl mit diesem Fehlerfenster fehl:
Anwendungsladefehler P: 0000065434
sowie einige Terminalausgänge:
001f:err:module:load_builtin_dll failed to load .so lib for builtin L"winebus.sys": libudev.so.0: cannot open shared object file: No such file or directory
001f:err:ntoskrnl:ZwLoadDriver failed to create driver L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\WineBus": c0000142
001f:err:winedevice:create_driver failed to create driver L"WineBus": c0000142
0013:err:service:process_send_command service protocol error - failed to write pipe!
000d:fixme:service:scmdatabase_autostart_services Auto-start service L"WineBus" failed to start: 1114
0009:err:module:load_library somehow failed to load steamclient
Jetzt wissen wir mehr über das Problem. es scheint, obwohl Dampf läuft und jede Maßnahme, um ihn wissen zu lassen, wo Dampf ist, findet er keinen Dampf.
Ich habe das gleiche auch aus dem Protonenordner mit dem gleichen Ergebnis versucht.
Einige neue Potenziale hier UPDATE 3/10/2018 :
Der Trick, den er erwähnt, ist das Erstellen eines kleinen Python-Skripts protonRunner.py
:
#!/usr/bin/env python
import os
import sys
home = os.environ["HOME"]
os.environ["STEAM_COMPAT_DATA_PATH"] = home + "/.local/share/Steam/steamapps/compatdata/9420"
run = "run"
exe = "\"" + home + "/.local/share/Steam/steamapps/common/Supreme Commander Forged Alliance/bin/SupremeCommander.exe\""
cmd = "\"" + home + "/.local/share/Steam/steamapps/common/Proton 3.7/proton\" " + run + " " + exe
for arg in sys.argv[1:]:
cmd += " " + arg
os.system(cmd)
supcomFA.desktop
::
[Desktop Entry]
Name=SupremeCommander
Exec=python $HOME/.local/share/Steam/steamapps/common/Proton\ 3.7/protonRunner.py
Icon=/home/t/.local/share/icons/supcom.png
Type=Application
Encoding=UTF-8
Version=1.0
Terminal=true
Dadurch wird die gleiche Fehlermeldung angezeigt:
Anwendungsladefehler P: 0000065434
TL; DR: So führen Sie ein Windows Steam-Spiel (das unter Linux über Proton ausgeführt werden kann) vom Terminal aus aus.
ps faux
. Untersuchen Proton
Sie sorgfältig die Prozesse, die Sie sehen, wie die Dinge beginnen, vielleicht gibt es dort einige nützliche Parameter. Notieren Sie dann die PIDs aller Prozesse. Zum /proc/$PID
und haben einen Blick um die Sachen gibt, vor allem cwd
, environment
usw. Sie wollen versuchen , die Umgebung genau einzurichten als Ventil der Fall ist.
WINEDLLPATH
und nicht exportieren LD_LIBRARY_PATH
würden, hätten sie keine Auswirkungen auf den später ausgeführten Befehl wine. Außerdem sollten Sie im Dateipfad nicht sowohl Anführungszeichen als auch Backslashes verwenden. Bevorzugen Sie nur Anführungszeichen: WINEPREFIX="/home/t/fa-wineprefix/" "/home/t/.local/share/Steam/steamapps/common/Proton 3.7/dist/bin/./wine" "/home/t/.local/share/Steam/steamapps/common/Supreme Commander Forged Alliance/bin/SupremeCommander.exe"
Außerdem scheint die Zeile "Vielleicht ein gewisses Potenzial hier" mit einem Screenshot des Fehlers zu verknüpfen, den Sie zuvor erhalten haben. Haben Sie einen Fehler mit dem Link gemacht?
export
heute Abend experimentieren, wenn ich nach Hause komme.