EVE

Aus Ubuntu-Forum Wiki

Wechseln zu: Navigation, Suche

606.png

Edit l.png Dieser Artikel bedarf einer Aktualisierung. Edit.png

Inhaltsverzeichnis


Erforderliches Wissen

* [1]: Wine
* [2]: ln: Symlinks erstellen
* [3]: Umgebungsvariable

EVE Online ist ein komplexes MMORPG, dass im Gegensatz zur Mehrzahl der Konkurrenzspiele im Weltall spielt. Für die Teilnahme am Spiel muss monatlich Geld bezahlt werden.

1 Installation

Der Client lässt sich problemlos mit Wine [1] installieren. Mit Verson 0.9.33 läuft er gut, Version 0.9.34 verursachte ein Memory-Leak, das jedoch bei neueren Versionen gefixt sein sollte. Bei Problemen bietet es sich also an, eine andere Wineversion zu testen. Der Eintrag in der WineHQ-AppDB kann dabei als Orientierung dienen.

Unter Ubuntu 10.10 und Wine < 1.3.12 gibt es einen Bug der das Game einfrieren lassen kann. Link: http://appdb.winehq.org/objectManager.ph…rsion&iId=22575 unter dem Abschnitt: Game freezes when going in game.

Um diesen zu fixen, deinstalliert Wine 1.2.2 aus dem Orignal-Repository.

ladet euch eine neue Version von Wine unter : http://wine.budgetdedicated.com/archive/binary/ zum Beispiel: wine1.3_1.3.13-0ubuntu1~maverickppa2_i386.deb und installiert diese mit dem Paketmanager.

2 Performancesteigerung

EVE läuft zwar mit Wine, aber die Performance ist ungenügend. Dies stört am Anfang kaum, bei größeren Raumschlachten jedoch sehr. Leider bietet das Grafikmenü zwar einige Einstellungsmöglichkeiten, die jedoch keinerlei Wirkung zeigen, sieht man von den so entstehenden Grafikfehlern einmal ab. Jedoch gibt es einen anderen Weg, um den Performanceverlust wenigstens ansatzweise zu kompensieren: den Cache. EVE arbeitet mit einem cache-ordner, in den z.B einmal geladene Portraitfotos gespeichert werden. Bei großen Raumschlachten liest EVE ständig aus diesem Ordern, also direkt von der Festplatte. Dieser Flaschenhals kann unter Linux recht einfach per Ramdisk beseitigt werden.

2.1 Ramdisk anlegen

Dafür legt man zuerst einmal eine entsprechend große Ramdisk an. Mit

dmesg | grep RAMDISK

kann man sich die jetzige Größe ausgeben lassen. Ist diese unpassend, kann diese per ramdisk_size=x in der kernelzeile der menu.lst angepasst werden. Mit

       mke2fs -m 0 /dev/ram0
       mount /dev/ram0 /media/ramdisk
       chown USER.USER /media/ramdisk
       chmod 0770 /media/ramdisk

wird danach die Ramdisk formatiert, nach /media/ramdisk gemountet (muss ggf angepasst oder erstellt werden) und danach dem User zugesprochen, wobei USER natürlich anzupassen ist. Dies muss jedes mal neu durchgeführt werden, es bietet sich an die rc.local dafür zu nutzen.

2.2 EVE-Cache umlenken

Erstellt man so bei jedem Bootvorgang eine Ramdisk, muss EVE diese nur noch nutzen. Dafür löscht man den Cache-Order im EVE-Verzeichnis und erstellt stattdessen mit ln [2] einen Verweis auf /media/ramdisk. Nun wird der Cache genutzt, fertig ist diese Lösung aber leider noch nicht

2.2.1 Inhalt sichern

Würde man nun nicht weitermachen, hätte man dem Cache seiner Funktion beraubt. Da der Ram sich leert, sobald der PC ausgeschaltet wird, verlöre man jedes mal die mühsam gecachten Dateien. Deswegen muss nach dem Beenden von EVE der Inhalt der Ramdisk gesichert werden. Dies kann man so lösen: Beim Aufruf von EVE startet man jedes mal ein Skript mit, das zuerst den Inhalt eines cache-transfer Ordners in /media/ramdisk verschiebt. Gleichzeitig wird alle fünf Minuten überprüft, ob EVE läuft. Sollte dem nicht so sein, wird der Inhalt der ramdisk wieder zurückgeschoben. Eine verbesserungswürdige Konzeptlösung stellen eve-control-watcher] und eve-watcher] in Verbindung mit [ userramdisk] dar. Will man diese Lösung nutzen, sollte das EVE-Startskript so aussehen und alle drei Skripte im PATH [3] liegen:

      #!/bin/sh
      userramdisk -eve -c
      cd ~/.wine/drive_c/Programme/EVE
      aoss nice -20 wine eve.exe
      echo "eve started"
      eve-control-watcher -start&

Außerdem müsste ein Ordner ~/.ramdisk angelegt werden und darin die Textdatei options. In der Datei options könnte dann mit

EVEPATH=/home/USER/.wine/drive_c/Programme/EVE/cache-transfer

der Ordner angeben werden, in dem der Inhalt des vorherigen Cache-Ordner liegt (der ja jetzt nur noch ein Symlink auf /media/ramdisk ist). Für die rc.local reicht dann ein Befehl aus, um die Ramdisk einzurichten:

userramdisk -m

3 Links & Quellen

* http://www.vanemery.com/Linux/Ramdisk/ramdisk.html
* Eintrag in der WineHQ-AppDB

4 Skripts

4.1 EVE-watcher

#!/bin/sh
<codeTMPLISTE=~/tmp/liste</code>
watchingeve()	{
echo "Watching for eve-shutdown!"        
  #Which time is it (for -status)
  CURTIME=$(uptime | sed 's/up.*//g')
  echo "$CURTIME" > ~/tmp/watchtime
  ps aux > $TMPLISTE
  WATCHTOWER=$(grep EVE $TMPLISTE)
  #Wait and start again, if eve is running
  if [ "$WATCHTOWER" != "" ];then
	#goto sleep for 5 minutes 
	sleep 300
	watchingeve
 else
 		userramdisk -eve -r
		exit	
 fi
 }
 if [ "$1" = "-status" ];then
	curstatus
 else
	watchingeve
 fi

4.2 EVE-control-watcher

  #!/bin/sh
  #Start eve-watcher if not already running
  start()	{
  TMPLISTE=~/tmp/liste2
  ps aux>$TMPLISTE
  RUNNING=$(grep eve-watcher $TMPLISTE)
  if [ "$RUNNING" = "" ];then
 	eve-watcher 
 	exit
  else
	echo "eve-watcher already up and running"
	exit
 fi
 }
  #close eve-watcher
 stop()	{
 killall -9 eve-watcher
  }
  #status of eve-watcher
  curstatus()	{
  ps aux > ~/tmp/status
  CURRENT=$(grep eve-watcher ~/tmp/status)
  if [ "$CURRENT" != "" ];then
	echo "eve-watcher up and running"
 else
	echo "eve-watcher not watching"
 fi
 echo "Last time watched: $(cat ~/tmp/watchtime)"
 }
 #Startabfrage
 if [ $# = 0 ];then
	echo "-start or -stop?"
 else
	if [ "$1" = "-start" ];then
		start
	fi
	if [ "$1" = "-stop" ];then
               stop
 
      fi
	if [ "$1" = "-status" ];then
		curstatus
	fi
 fi

4.3 Userramdisk

 #!/bin/sh
 source ~/.ramdisk/options
 evemode()	{
 BACKUPTIME=$(cat ~/.ramdisk/backuptime)
 if [ "$BACKUPTIME" = 15 ];then
	if [ ! -d ~/.ramdisk/backup ];then
		mkdir ~/.ramdisk/backup
	fi
 
	cp -R $EVEPATH ~/.ramdisk/backup/
	echo "0" > ~/.ramdisk/backuptime
 fi
 if [ "$1" = "-c" ];then
	mv $EVEPATH/* /media/ramdisk/	
	echo "ramdisk filled"
 fi
 if [ "$1" = "-r" ];then
	mv /media/ramdisk/* $EVEPATH/
	echo "ramdisk cleared"
	BACKUPTIME=$[$BACKUPTIME+1]
	echo "$BACKUPTIME" > ~/.ramdisk/backuptime
 fi
 exit
 }
 if [ $# = 0 ];then
	echo "Parameter: 1. -eve (evecache), 2. -c (cache --> ram), r (ram --> cache)"
	exit
 fi
 if [ "$1" = "-eve" ];then
	evemode $2
	echo "evemode on"
 fi
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Forum
Navigation
Internes
Bearbeitungshilfen
Werkzeuge