Seit dem letzten vollständigen Distrubutionsupdate habe ich ein sehr seltsames Problem:
Ich kann Enderal nur noch einmal starten und spielen. Wenn ich es beende, ist der wineprefix kaputt, d.h. Enderal stürzt sofort ab, wenn ich im Launcher auf Start klicke. Das Fenster mit der Enderal-Konsole öffnet sich, aber es erscheinen keine Logeinträge. Ich muss jeden einzelnen wine-Prozess mit 'kill -9' beenden. Mit normalem 'kill' laufen bzw. hängen die Prozesse weiter.
Beheben kann ich das Problem durch das erzeugen eines komplett neuen Wineprefix und die Neuinstallation von Enderal. Dann kann ich das Spiel wieder ein einziges Mal starten, bevor das Problem wieder auftritt.
Um der Sache auf den Grund zu gehen, habe ich also einen frischen, leeren Wineprefix angelegt und dort .NET, Direct X 9 und Enderal installiert, aber Enderal nie gestartet, damit es nicht "kaputt geht". Diesen kompletten Wineprefix kopiere ich in ein anderes Verzeichnis und starte Enderal dort. Wie gehabt funktoiniert es nur einmal. Danach kann ich aber diesen Wineprefix löschen und den "Frischen" erneut kopieren, und ich kann Enderal wieder einmal starten.
Und nun das, was ich absolut nicht verstehe. Es Ändern sich kaum Dateien, wenn ich Enderal einmal gespielt habe. Relevant scheinen die Änderungen nicht zu sein. Genau genommen sind es die:
- [+]
- SkyrimEnderal/Data/meshes/~AnimationDataSingleFile.txt
nur timestamp
SkyrimEnderal/EnderalLauncher/system/config/conf.sur
nur timestamp
SkyrimEnderal/PapyrusUtilDev.log
einige Zeilen verschwinden
SkyrimEnderal/EnderalLauncher/system/log/Launcher.log
einige Zeilen hinzugekommen
Da das neue Kopieren des ganzen Wineprefix samt .NET, Direct X 9 und Enderal recht lang dauert, wollte ich das mit rsync abkürzen. Das mache ich mit
$ rsync -av --delete <frischer wineprefix> <kaputter wineprefix>
Dann sollte der kaputte Wineprefix dem frischen wineprefix entsprechen und Enderal wieder laufen. Tut es aber nicht.
Lösche ich den kaputten wineprefix und kopiere den frischen wineprefix in ein zweites Verzeichnis, dann läuft Enderal von dort wieder.
Zwischen einem kaputten wineprefix, den ich mit rsync versucht habe zu reparieren (und der trotzdem nicht funktioniert) und der Kopie des frischen Wineprefix bestehen keine Unterschiede. Ich habe in beiden wineprefixes
$ ls -lRa > file.txt
ausgeführt und anschließend die beiden Textfiles verglichen. Sie sind identisch, woraus folgt, dass alle Dateinamen, -Größen, -Besitzer, -Gruppen, -Timestamps und -Berechtigungen identisch sind.
Auch diff über beide Verzeichnisbäume findet keine Unterschiede, woraus folgt, dass alle Dateien inhaltlich identisch sind.
Nun die Frage, auf die ich keine Antwort finde: Warum läuft Enderal, wenn ich die frische Installation samt Wineprefix kopiere, aber nicht, wenn ich mit rsync den kaputten wineprefix auf exakt den Stand der frischen Installation bringe?
Könnte es da Unterschiede geben, die 'ls -lRa' und 'diff' nicht anzeigen und die ein 'rsync -av --delete' nicht angleicht? Kann ich mir nicht vorstellen. Ich verstehe es nicht.
Ich habe das Problem mittlerweile ca. 10 Mal reproduziert und es ist wirklich immer so wie beschrieben.
Da das Problem direkt nach einem Distributionsupdate auftrat, dachte ich zuerst an ein Problem mit der neuen Version von wine-staging (1.9.21). Aber ein Downgrade auf 1.9.20 und auch auf 1.9.19 haben nichts geändert. Mit diesen wine-staging Versionen habe ich Enderal lang spielen können. Muss also an etwas anderem liegen. Ich habe allderings sonst nicht das geringste Problem mit meinem System, alles läuft perfekt.
Gottseidank habe ich Enderal nun fast durch. Die letzten paar Male, die das Spiel starten muss, kann ich auch noch mit der Kopier-Methode bewältigen. Es wurmt mich nur, dass ich das Problem nicht verstehe.