dosemu - der DOS Emulator

Für Danny...

« zurück (Gesammelte Anleitungen)

Installation und Konfiguration

Dieser Abschnitt wird wohl eher kurz gehalten sein, da ich nicht wirklich viel mit dem alten DOS zu tun gehabt habe. Meine Kenntnisse beschränken sich somit darauf, einen Maustreiber oder CD-ROM zu installieren. Die Maus tut bei dem Emulator aber zum Glück ohne das DOS-Gefrickel.

Benötigte Pakete

Bei debian ist der DOS-Emulator in mehrere Pakete aufgeteilt worden. Diese sind

  • dosemu - Das eigentliche Emulator-Paket
  • dosemu-freedos - Free-DOS, eine freier, beinahe MS-DOS-kompatibler DOS-Kernel. Ohne dieses Paket ist der DOS-Emulator nicht lauffähig!
  • xfonts-dosemu - Die Schriftarten für den dosemu unter X

Die Datei /etc/dosemu/dosemu.conf beinhaltet die globalen Einstellungen. Die meisten Standardwerte können beibehalten werden, man kann höchstens die CPU, eine Keymap für ein internationales Tastaturlayout und die Maus festlegen:

$_cpu = "80486"
$_hdimage = "freedos"
$_layout = "de-latin1"
$_mouse_internal = (on)
$_mouse = "imps2"
$_mouse_dev = "/dev/input/mice"

Normalerweise hat man keine Schreibberechtigung auf das freedos-Dateisystem (angehängte ro-Option). Diese ist aber für die spätere Installation und Ausführung von Spielen unbedingt erforderlich. Die Mausparameter müssen an die jeweiligen Gegebenheiten angepasst werden. Mit den oben genannten Optionen funktioniert eine via USB angeschlossene Maus problemlos (trotz genanntem PS/2 und IMPS).

Ferner gibt es noch die Datei /etc/dosemu/dosemu.users mit der man für die einzelnen Systembenutzer Einschränkungen bei der Benutzung des Emulators treffen kann. Die debian Standardeinstellungen sehen so aus:

default_lib_dir= /usr/lib/dosemu
log_level= 0
root c_all              # root is allowed to do all weird things
all nosuidroot c_all    # disallow suid access by default

Das System-Laufwerk C: des Emulators befindet sich somit unter /usr/lib/dosemu/freedos (Pfad zusammengesetzt aus default_lib_dir und Name des hdimage aus dosemu.conf).

Hinweis: Wichtig bei der Benutzung des DOS-Emulators ist immer im Hinterkopf zu behalten, ob man auf die gerade verwendeten Dateien überhaupt zugreifen darf (lesend oder schreibend), d.h. die UNIX-Dateirechte werden beachtet!

CD-ROM Unterstützung laden

Ja, was war das doch immer für ein Spaß :rolleyes:

  • Laufwerktreiber in config.sys rein
  • In autoexec.bat via mscdex.exe das Laufwerk erkennen
  • Sich ärgern, wenn es nicht funktioniert hat und anderen Treiber ausprobieren

Beim Emulator werden die benötigten Treiber und Dienstprogramme bereits mitgeliefert und somit muss man nur noch die Konfigurationsdateien bearbeiten:

rem config.sys
rem ... andere Optionen innerhalb der Datei ...

devicehigh=c:\dosemu\cdrom.sys
rem autoexec.bat
rem ... andere Optionen innerhalb der Datei ...

shsucdx /d:mscd0001

Wenn sich der DOS-Emulator beim starten mitDamit kann es jetzt endlich losgehen!

SHSUCDX Version 2.1a
(c)John H. McCoy, October 2000, Sam Houston State University
   Jason Hood, October 2003. http://shsucdx.adoxa.cjb.net/

SHSUCDX Installed.
  Drives Assigned
Drive  Driver   Unit
  F:   MSCD0001  0

meldet, sollte alles funktioniert haben und das CD-ROM-Laufwerk mit dem Laufwerksbuchstaben F: ansprechbar sein. Damit kann es nun endlich losgehen!

Installation von alten Spielen (z. B. die Siedler II)

Wozu braucht man denn sonst den DOS-Emulator, wenn nicht dafür? ;-)

Installation von Siedler II als normaler Benutzer

Die alten DOS-Spiele bringen meist funktionierende Installer mit, so auch bei Siedler II von Bluebyte. Will man die Installation als normaler User vornehmen, was sich allein aus Sicherheitsgründen immer anbietet, muss zuvor als root das Verzeichnis angelegt werden, in das das Spiel installiert werden soll. Damit der Benutzer darin auch Schreibrechte besitzt, ändert man die Gruppe und gibt dieser Schreibrechte:

# cd /usr/lib/dosemu/freedos
# mkdir siedler2
# chgrp users siedler2
# chmod 775 siedler2
# ls -ld siedler2
drwxrwxr-x 7 root users 568 2006-08-06 15:46 siedler2
#
Kopieren der Installations-CD

Am besten ist es, die komplette Siedler-CD auf die Festplatte zu kopieren, damit man zum Spielen die CD nicht mehr benötigt.

# mount /media/cdrom
# cd /usr/lib/dosemu/freedos
# cp -r /media/cdrom/* ./s2cd

Der Inhalt der CD ist nun im Verzeichnis C:\S2CD abgelegt worden. Jetzt kann man den DOS-Emulator starten und den Installer starten:

C:\> cd s2cd
C:\S2CD\> install
Absichern des Installationsverzeichnisses

Als Installationsverzeichnis gibt man C:\SIEDLER2 an, das zuvor angelegte Verzeichnis. Nach der erfolgreichen Installation sollte man erstmal das neue Verzeichnis so absichern, dass nicht mehr geschrieben werden kann, wo es nicht mehr nötig ist. Das verhindert z. B., dass man die Installation aus Versehen zerschießt:

# cd /usr/lib/dosemu/freedos
# chown -R root:root siedler2
# chmod -R og-w siedler2
# cd siedler2
# chgrp -R users data drivers
# chmod -R g+w data drivers
# chgrp users setup.ini drivers/*.ini

Hiermit hat die Gruppe users auf die Konfigurationsdateien (*.ini) und die Verzeichnisse data und drivers rekursiv Schreibrechte. Diese sind für die Ausführung leider nötig. :-S

Verzeichnis für Spielstände erzeugen

Ferner muss noch ein Verzeichnis für die Spielstände angelegt werden. Die hier beschriebene Konfiguration erlaubt das Spielen durch mehrere Benutzer, ohne das aus Versehen oder mit Absicht ein Spielstand des anderen Benutzers gelöscht werden kann:

# cd /usr/lib/dosemu/freedos
# mkdir save
# chgrp users save
# chmod 1775 save
# ls -ld save
drwxrwsr-t 2 root users 1024 2006-08-06 15:48 save

Das sogenannte Sticky-Bit sorgt dafür, dass innerhalb eines für mehrere Benutzer gleichzeitig schreibbaren Verzeichnisses nur der jeweilige Besitzer einer Datei diese auch Löschen darf.

Anmerkung am Rande: Das Sticky-Bit wird z. B. auch bei den für alle Benutzer beschreibbaren Temp-Verzeichnissen (/tmp und /var/tmp) benutzt.

Einstellen der Soundkarten

Jetzt muss man noch die Treiber für die Sound und MIDI-Ausgabe auswählen. Normalerweise ist das immer eine Soundblaster 16 oder kompatible. Zu den Einstellungen gelangt man wie folgt:

C:\S2CD\> cd ..
C:\> cd siedler2
C:\SIEDLER2\> setup

In dem Menü kann man nun unter "Soundkarte einstellen" die entsprechende Soundkarten einstellen. Die richtigen Einstellungen für die beiden Sounkarten lauten wie folgt:

  • Select and configure MIDI music driver:
    • General MIDI (Roland MPU-401 interface or 100% compatible)
  • Select and configure digital audio driver:
    • Creative Labs Sound Blaster or 100% compatible

Anschließend kann man das erneute Auswählen der Soundkarten wieder unterbinden, indem man die Schreibrechte für die entsprechenden ini-Dateien wieder entzieht:

# cd /usr/lib/dosemu/freedos/siedler2
# chmod 644 drivers/*.ini
Siedler II spielen
Die Siedler II im DOS-Emulator

Endlich ist es soweit! Das Spiel ist installiert, konfiguriert und kann jetzt gespielt werden. Dazu muss man einfach im gestarteten dosemu-Fenster (X11-Version) in das Verzeichnis siedler2 wechseln und s2.exe ausführen.

Wie das rechte Bild zeigt, war es die ganze Mühe doch wert, oder?

Und noch ein Hinweis mit auf den Weg: Im DOS-Emulator kann mit der Tastenkombination Strg + Alt + F zwischen Vollbildmodus und Fenstermodus gewechselt werden.

Viel Spaß! :-D

« nach oben

Optional: Anpassen der Installation an Linux Standard Base

An den oben beschrieben Schritten ist nichts weiter direkt auszusetzen, es funktioniert.

Bei mir speziell ist jedoch /usr auf einer separaten Partition, die ich read-only einhänge und somit die gesammte System-Partition vom DOS-Emulator (C:\) ebenso keine Schreibrechte besitzt (nicht mal für den Benutzer root!). Laut Konvention soll auch kein Programm oder Skript auf die /usr-Hierarchie schreibend zugreifen, also ist ein Verschieben der Verzeichnisse notwendig, in welchen während der Ausführung schreibend zugegriffen werden muss:

# cd /var/lib/dosemu
# ls -l
lrwxrwxrwx 1 root root   16 2006-08-06 15:46 freedos -> /usr/lib/freedos
# cp -a freedos/siedler2 .
# ls -l
lrwxrwxrwx 1 root root   16 2006-08-06 15:46 freedos -> /usr/lib/freedos
drwxr-xr-x 7 root root  568 2006-06-06 15:46 siedler2
# rm -rf freedos/siedler2
# ln -s /var/lib/dosemu/siedler2 freedos/siedler2
# ls -l /usr/lib/freedos/siedler2
lrwxrwxrwx 1 root root 24 2006-08-06 15:48 /usr/lib/freedos/siedler2 -> /var/lib/dosemu/siedler2
#

Somit wurde das komplette Verzeichnis /usr/lib/freedos/siedler2 nach /var/lib/dosemu/siedler2 umgezogen und durch eine symbolische Verknüpfung ersetzt.

Damit ist gewährleistet, dass Siedler II auch bei read-only eingehängtem /usr-Verzeichnis problemlos funktioniert.

« nach oben