VM Linux

Aus Vetus-Mundus-Wiki
Wechseln zu: Navigation, Suche

Diese Anleitung beschreibt, wie Du Ultima Online z.B. auf dem Freeshard Vetus Mundus unter Linux spielen kannst. Der Classic Client funktioniert gemeinsam mit Razor und EasyUO ausgezeichnet unter Wine, sofern die hier beschriebenen Besonderheiten beachtet werden.

Diese Anleitung ist unter Ubuntu 14.04 getestet und orientiert sich an der Ubuntu-Installation und dem Unity-Desktop. Auf anderen Distributionen dürfte die Installation sehr ähnlich möglich sein.


Getestet wurde dieses Vorgehen unter:

  • Ubuntu 14.04
  • Wine-1.7.33
  • Razor 1.0.14.6
  • Client 7.0.38.2
  • EasyUO 1.5.1.281


Kurzbeschreibung des Verfahrens: Der Ultima Online 2D-Client und die Zusatzprogramme Razor und EasyUO lassen sich mit Hilfe von Wine hervorragend starten und benutzen. Hierfür wird in Wine ein 32-bit-Wineprefix erstellt und die Anwendungen der Reihe nach in dieses Prefix installiert. Vor der Installation von Razor muss .NET 2.0 mittels Winetricks in das entsprechende Wineprefix installiert werden.


Achtung: Die Option "Show Images with Counters" im Reiter "Display/Counters" in Razor führt permanent zum Client-Absturz, falls sie aktiviert ist. Sie sollte deaktiviert werden.


Hierfür folgt nun die detaillierte Schritt-für-Schritt Anleitung. Alle Befehle werden - sofern nicht anders angegeben - aus Deinem Home-Verzeichnis mit normalen User-Rechten (kein root, kein Admin!) gestartet. In Wahrheit ist die Installation recht simpel, allerdings habe ich mir große Mühe gegeben, sie sehr ausführlich zu beschreiben, so dass auch wenig Linux-erfahrene Nutzer hier zurecht kommen sollten.


Wine installieren

Wine ist ein Windows-Emulator. Das heisst, er "übersetzt" die Befehle, die ein Computerprogramm macht, so, dass Linux es ausführen kann. Somit kann man Windows-Programme unter Linux benutzen. Vergewissere Dich, dass Wine installiert und aktuell ist. Dazu öffnest Du ein Terminal, indem Du Steuerung+Alt+T dückst. Dann eingeben:

wine --version

Sofern "Befehl nicht gefunden" ausgegeben wird, muss wine installiert werden. Eine Anleitung, wie man die aktuelle Wine-Version auf dem Rechner installiert, findet sich auf der Projekt-Seite von Wine (www.winehq.org). Folge den dort genannten Schritten, um Wine zu installieren.

Stelle sicher, dass Wine richtig installiert wurde. Der Befehl

wine --version

sollte etwas wie z.B. "wine-1.7.33" ausgeben. Sobald Wine erfolgreich installiert wurde, kannst Du unter "Einen 32-Bit-Wineprefix erstellen" mit der eigentlichen Einrichtung der Programme beginnen.


Einen 32-Bit-Wineprefix erstellen

Wine kann mehrere "Windows-Installationen" vortäuschen, in denen dann die installierten Programme "glauben", sie wären nebeneinander installiert. Soetwas nennt man einen "Wineprefix". Damit kann man für ein Programm oder eine Gruppe von Programmen Windows ganz speziell konfigurieren.

Für den Classic Client und die Programme Razor und EasyUO müssen wir Wine ausserdem sagen, dass er so tun soll, als wären wir ein 32-Bit Rechner. (Der Grund hierfür ist, das .NET 2.0, das wir später für Razor installieren müssen, mit einem 64-Bit-System nicht umgehen kann.)

Alle nun folgenden Schritte solltest Du NICHT als "Administrator" oder "root" durchführen, denn Installationen von Windows-Programmen unter Wine als Administrator sind aus diversen Gründen eine sehr schlechte Idee. Falls links vom Prompt "root@..." steht, gebe ein:

exit

Nun sollte dort dein normaler Username stehen, also z.B. "tarjan@Rechnername". Wenn nun das Terminal weg ist, warst Du doch kein "root". Öffne einfach ein neues Terminal, indem Du Steuerung-ALT-T drückst. Nun erstellen wir den Wineprefix. Wir nennen ihn mal "uo". Der Wineprefix wird im Verzeichnis ".wine/uo" seinen Ort haben.

Wichtig: das Verzeichnis ".wine/uo" darf nicht existieren und auch nicht vorher angelegt worden sein! Um das zu prüfen, gib ein:

ls .wine/uo

Du musst jetzt eine Fehlermeldung "ls: Zugriff auf .wine/uo nicht möglich: Datei oder Verzeichnis nicht gefunden" bekommen. Dann ist alles in Ordnung. Wenn es das Verzeichniss gibt (also der Inhalt angezeigt wird), wähle einen anderen Namen. Jetzt erstellen wir den Wine-32-Bit-Prefix mit dem Namen "uo", wobei Du "DeinUserName" mit deinem Usernamen unter Ubuntu ersetzen musst (z.b. also "/home/tarjan/.wine/uo winecfg"):

WINEARCH=win32 WINEPREFIX=/home/DeinUserName/.wine/uo winecfg

Nach einer kurzen Zeit öffnet sich ein "Windows"-Fenster, das "Wine-Konfiguration" heisst. Die reichlichen Fehlermeldungen in der Konsole kannst Du ignorieren. Wenn das Fenster kommt, ist alles gut. Als "Windows-Version" sollte "Windows XP" stehen. Das ist auch gut so. Hier ist jetzt nichts zu tun und Du verlässt das Programm, indem Du "Ok" drückst. Jetzt bist Du wieder im Terminal.

Der 32-Bit-Wineprefix ist damit erfolgreich erstellt.


Den Ultima Online Classic Client installieren

Von der Vetus Mundus Homepage den Client laden. Er befindet sich unter "Bibliothek / Downloads / Classic Client". Falls gewünscht, besorge Dir ebenfalls die aktuellen Versionen von Razor und EasyUO aus dem Netz. Du entpackst nun den Client und eventuell die anderen Programme mit dem File-Manager (z.B. nautilus) in das Verzeichnis ".wine/uo/drive_c/Program Files". Achtung: Du arbeitest im Verzeichnis ".wine/uo/drive_c", NICHT mit ".wine/drive_c" verwechseln, das gibt es auch, aber das ist falsch. Das "uo" ist sehr wichtig, denn nur so installieren sich die Programme wirklich im richtigen Wineprefix.


Client:

  • mit dem Icon links (Unity-Desktop) in der Startleiste den Filemanager starten,
  • die runtergeladenen Client suchen,
  • rechts-klick und "mit Archivverwaltung öffnen" wählen,
  • "Entpacken" wählen,
  • in das Verzeichnis ".wine/uo/drive_c"/Program Files" gehen,
  • den Client hier entpacken


Razor installieren

Der Client benutzt in der genannten Version eine sogenannte "Client encryption". Wenn Du den Client einfach so startest, wirst Du nicht über den Login-Screen hinaus kommen. Um auf einem Freeshard wie Vetus Mundus spielen zu können, brauchst Du ein Tool wie z.B. Razor, das diese "Client encryption" patched. Daher solltest Du Razor installieren. Falls Du das nicht möchtest, geht es mit 5) weiter.

Wir müssen zunächst .NET 2.0 installieren. Eine höhere .NET-Version ist nicht nötig. Dazu gibst Du ein (hier wieder "DeinUserName" mit deinem Usernamen unter Ubuntu ersetzen):

WINEPREFIX="/home/DeinUserName/.wine/uo" winetricks

Nun öffnet sich ein Fenster, das mit "Winetricks" betitelt ist. Auch wenn es nicht angegeben ist, wir arbeiten in unserem "uo" Wine-Prefix. Wähle "Select the default wineprefix" aus und drücke "Ok". Wähle "dotnet20" und drücke "Ok". Nun wird .NET 2.0 installiert. Es sieht fast so aus wie unter Windows. Falls Warnungen über fehlende Installationen o. ähn. kommen ignorieren bzw. "Ok" drücken. .NET 2.0 sollte Dir eine erfolgreiche Installation im Fenster melden. Mehrmals "Abbrechen" in Winetricks drücken, um Winetricks zu beenden. Du bist wieder im Terminal.

Falls noch nicht geschehen, die neueste Razor-Version besorgen. Dann Razor in unserem Wineprefix installieren (ersetze ggf. "Downloads" durch den Ort, wo die Razor-Installationsdatei liegt):

WINEPREFIX=/home/DeinUserName/.wine/uo wine Downloads/Razor_Latest.exe

Razor sollte Dir eine erfolgreiche Installation melden. Nun kannst Du testen, ob Razor erfolgreich installiert wurde.

Zunächst Razor starten:

WINEPREFIX="/home/DeinUserName/.wine/uo" wine ".wine/uo/drive_c/Program Files/Razor/Razor.Exe"

Sobald Razor gestartet ist, gilt es noch ein paar Dinge zu erledigen.

  • Du gibst die Adresse des Shards und den Port ein (shard.vetus-mundus.de,2594).
  • per Hand unter "Client Options" (Browse Button) den Pfad zum installierten Client manuell wählen (der Pfad sollte so oder so ähnlich lauten: ".wine/uo/drive_c/Program Files/Electronic Arts/Classic Client/client.exe"),
  • per Hand unter "UO Data Directory" ebenfalls den Pfad zum installierten Client manuell wählen,
  • "Make These Settings Default" anklicken, damit diese Einstellungen auch für den nächsten Start gespeichert werden.

Jetzt kannst Du Razor starten.

WICHTIG: im Reiter "Display/Counters" die Option "Show Images with Counters" vor dem Einloggen unbedingt deaktivieren. In der angegebenen Konfiguration bringt diese Option aktiviert leider den Client permanent und reproduzierbar zum Absturz.

Falls Du früher mal einen Client installiert hattest, kann es sein, dass in Deinem Home-Verzeichnis ein Ordner namens "EA Games" erstellt wurde. In diesem Ordner wird z.B. Dein Bildschirmlayout (Icons etc.) gespeichert. Es kann sein, dass die dort enthaltenen Daten inkompatibel mit dem aktuellen Client sind und ebenfalls zum Absturz des Clients führen können. Wenn der Client nicht richtig startet, sollte dieser Ordner umbenannt werden; der Client legt ihn dann neu an.
Der Client sollte nun problemlos starten.
Falls Du EasyUO installieren möchtest, beende den Client und folge dieser Anleitung weiter.
Ansonsten lese bitte die Hinweise am Ende dieses Textes unter

  • Die installierten Programme starten
  • Icon-Erstellung im Unity-Launcher
  • Troubleshooting und wenige Besonderheiten


EasyUO installieren

EasyUO kommt als .exe Datei und benötigt keine Installation. Lade die gepackte Datei herunter, erstelle mittels File-Manager das Verzeichnis ".wine/uo/drive_c/Program Files/EasyUO" und entpacke die Datei EasyUO.exe dort hinein. Mehr ist für die Installation von EasyUO nicht erforderlich. Du bist fertig.


Die installierten Programme starten

Der Client sollte aufgrund der "Client Encryption" immer über Razor gestartet werden:

WINEPREFIX=/home/DeinUserName/.wine/uo wine ".wine/uo/drive_c/Program Files/Razor/Razor.exe"

Für EasyUO:

WINEPREFIX=/home/DeinUserName/.wine/uo wine ".wine/uo/drive_c/Program Files/EasyUO/EasyUO.exe"

Komfortabler ist, sich die Mühe zu machen, Icons hierfür im Unity-Launcher zu erstellen.


Icon-Erstellung im Unity-Launcher

Selbstredend kannst Du mit etwas Bastelei schöne Start-Icons im Unity-Desktop erstellen, so dass ein Start über das Terminal überflüssig wird. Dabei empfehle ich, ein Start-Icon für Razor und eines für EasyUO zu erstellen. Eine kurze und hervorragende Anleitung hierzu findet sich z.B. unter:

www.thetechrepo.com/main-articles/570-make-a-wine-program-like-photoshop-use-its-own-icon-on-unity-launcher-in-ubuntu.html


Troubleshooting und wenige Besonderheiten

Falls etwas nicht funktioniert, überprüfe nochmals:

  • dass wirklich alle Programme im Unterverzeichnis des Wineprefix liegen (also ".wine/uo/drive_c/Program Files/Razor/Razor.exe", wichtig ist hier das "uo" !),
  • dass beim Starten immer der Wineprefix mit angegeben wird (also Programmstart mittels WINEPREFIX=/home/DeinUserName/.wine/uo wine ".wine/uo/drive_c/Program Files/Razor/Razor.exe"),
  • in Razor der Pfad zum Client und das "UO Data Directory" manuell gewählt wurde und nicht "automatisch" gesucht wird,
  • für Razor .NET 2.0 über Winetricks (nicht natives Downloadpaket z.B. von der Razor-Homepage o.ä. benutzen) erfolgreich installiert wurde.
  • dass in Razor unter "Display/Counters" die Option "Show Images with Counters" abgeschaltet ist.
  • Falls der Hinweis auf eine Fehlende "clickloc" Datei erscheint: dies kann behoben werden, indem in Razor das "UO Data Directory" korrekt gewählt wird. Es handelt sich dabei um das Verzeichnis, in dem der Client liegt.


Ultima Online 2D Classic Client:
Aufgrund der "Client Encryption" sollte der Client immer über Razor gestartet werden.

Die Einstellungen des Clients, also auch z.B. das Bildschirmlayout der einzelnen Chars, werden praktischerweise direkt in Deinem Linux-Home-Verzeichnis unter "EA Games" abgelegt. Der Client erstellt das Verzeichnis automatisch, wenn es nicht exisiert. Falls Du gerade von Windows aus umziehst, kannst Du aus dem Windows-Verzeichnis "Eigene Dateien/EA Games" den Inhalt hierhin kopieren. Damit ersparst Du Dir das neue Aufsetzen aller Icons etc. ingame.

EasyUO:
Die Option, Skripte auf mehreren Clients laufen zu lassen, funktioniert - auch wenn man im Internet häufig Gegenteiliges liest. Nach dem Start von EasyUO siehst Du normalerweise rechts ein Fenster, in dem diverse Variablen dargestellt werden. Unter dem Kapitel "Status Bar" kannst Du auch den Charnamen sehen, auf dem das aktuelle Skript läuft bzw. laufen würde, sofern im Client-Fenster die Status-Bar sichtbar ist. Mit "CLI Swap" wechselst Du zum nächsten Client, sofern mehrere laufen. Das ist bisher nichts Neues im Vergleich zur Windows-Welt. Allerdings - und das ist das Besondere! - aktualisiert sich diese Darstellung in EasyUO nicht immer zuverlässig beim Client-Wechsel mittels "CLI Swap". Mache diese Kategorie ("Status Bar") einfach zu und wieder auf, und Du siehst den richtigen Char-Namen. Dieser Darstellungsfehler ist vermutlich dafür verantwortlich, dass beim "Ersten Blick" vielfach behauptet wurde, dieses Feature läuft unter Linux bzw. Wine generell nicht.
Bei mir laufen selbst komplexeste Skripte einwandfrei. Gelegentlich erscheinen Fenstergrößen falsch beim Start - in diesem Fall hilft ein Neustart des Skripts.

Aufgrund der Client-Encryption muss für einen Freeshard wie Vetus Mundus der Client über Razor (und nicht über die Option "CLI New") gestartet werden, damit er funktioniert.

Razor:
Die Option "Show Images with Counters" im Reiter "Display/Counters" führt permanent zum Client-Absturz, falls sie aktiviert ist. Sonstige Besonderheiten und andererorts im Netz früher beschriebene Fehler konnte ich nicht nachvollziehen - ausser dem "PayPal"-Icon, das in der Tat falsch dargestellt wird.