DOS-Emulator Konfigurationstipps
Von Christian Nass (<noseman AT writeme.com> / Christian Nass @ 2:2480/92.29
Ich beziehe mich hier auf dosemu-0.98.1.0, welcher in einem Slink-Update von Debian dabei war (dürfte jetzt wohl auch in Debian 2.1 enthalten sein). Diese Version scheint gegenüber dosemu 0.66 u.a. ein etwas verändertes Config-File zu haben, aber ich habe an den Konfigurationen eh nie viel verändert.
Es läuft auf meinem System, wie gesagt, dosemu-0.98.1.0 unter Kernel 2.2.1. Bei mir sind an sich auch keine großen Probleme aufgetreten, wenn ich das mitgelieferte Config-File verwendet habe. Nur folgendes möchte ich noch als Tips zur Konfiguration anmerken:
Tastatur
$_rawkeyboard = (0) # oder 1 $_term_char_set = "ibm" # ggf. $_layout = "de-latin1" $_keyint = (on)
Mit diesen Einstellungen funktionieren endlich alle Tasten (oder zumindest vermisse ich gerade keine), einschließlich der "<>|"-Taste neben dem 'y' und auch Alt-Kombinationen u.a. klappen; dies war bei vorherigen Versionen nicht der Fall!
Grafik Dann habe ich noch, damit DOS wirklich wie DOS aussieht und auch im Grafikmodus funktioniert, folgendes konfiguriert:
$_video = "vga" $_console = (0) $_graphics = (1) $_videoportaccess = (1) $_vbios_seg = (0xc000) $_vbios_size = (0x10000) $_vmemsize = (1024) $_chipset = "matrox"
Ich weiß jetzt nicht, ob alles nötig ist, aber so funktioniert es mit meiner Matrox Mystique 220. Wenn dosemu aufgerufen wird, meldet sich das Grafikkarten-BIOS, danach startet DOS normal.
Maus Meine Maus funktioniert zur Zeit in xdos, aber nicht im dos auf der Konsole. Die Einstellung ist:
$_com1 = "/dev/ttyS0" # Hier hängt das Modem $_com2 = "/dev/mouse" # Hier hängt die Maus $_mouse = "mousesystems" # Ist eine Genius-Maus im Mouse-Systems-Mode $_mouse_dev = "com2" $_mouse_flags = "" $_mouse_baud = (0)
Zur Organisation der Laufwerke in DOS:
Ich habe mir als Bootkonzept für mein Linux-DOS überlegt, es soll zuerst noch vom hdimage booten, welches auf der Linux-Partition liegt. Hier wird eine eigene CONFIG.SYS abgearbeitet und in der AUTOEXEC.BAT wird dann eine Datei LINUXRUN.BAT gestartet, die zuerst auch noch vom hdimage abgearbeitet wird und, nachdem per lredir die DOS-Partition als Laufwerk C: eingebaut wird, dann von der DOS-Partition weiter abgearbeitet wird. Auf diese Weise ist es möglich, für das eigentliche DOS (sofern es per Boot-Manager auch so gebootet wird) und für das Linux-DOS verschiedene Konfigurationen zu haben. Zu meinen DOS-Config-Files gleich noch.
Die Einstellung in der dosemu-Config-Datei zu Laufwerken sieht so aus:
$_vbootfloppy = "" $_floppy_a = "threeinch" $_floppy_b = "fiveinch" # Ja, ich hab' noch eines! $_hdimage = "hdimage.first" # Daran hab ich nichts geändert
DOS-Konfigurationsdateien
CONFIG.SYS auf dem hdimage:
device=c:\emufs.sys / device=c:\ems.sys dos=high,umb files=50 lastdrive=z shell=c:\command.com c:\ /e:512 /p devicehigh=c:\ansi.sys
AUTOEXEC.BAT auf dem hdimage:
@echo off linuxrun
LINUXRUN.BAT auf dem hdimage:
@echo off rem ** Hier geht die Linux-DOSEMU-Bootroutine weiter.. subst m: c:\ d:\dos\linux\lredir l: linux\fs/ d:\dos\linux\lredir c: linux\fs/dos rem ** Ab hier auf Platte...
Hierzu ein paar Anmerkungen:
Ich habe eine Partition, auf der DOS installiert ist. Diese Partition ist in den Linux-Dateisystem-Baum unter /dos eingehängt. Nach /dos/linux habe ich den kompletten Inhalt des hdimage-Files kopiert.
Mit den obigen Anweisungen wird nun das 'echte' hdimage als Laufwerk M: substituiert (also den subst-Befehl auf hdimage kopieren!), damit es nachher noch erreichbar ist (was aber nicht wirklich nötig ist).
Laufwerk D: ist standardmäßig der komplette Linux-Dateisystem-Baum, daher die Aufrufe nach D:\DOS\LINUX. Mit dem ersten lredir-Befehl wird der Linux-Baum als Laufwerk L: (wie Linux) eingebaut, mit dem zweiten wird die DOS-Partition als neues Laufwerk C: eingebaut. Es soll ja nachher so aussehen, wie im 'echten' DOS. Nachdem aber jetzt Laufwerk C: nicht mehr das hdimage ist, muß die LINUXRUN.BAT nun vom 'neuen' Laufwerk C: gelesen werden, deshalb habe ich sie hier einfach enden lassen. Anmerkung: DOS merkt sich nur byteweise, an welcher Stelle es in einer Batch-Datei war, nicht zeilenweise! Die Datei muß also auf dem hdimage und der Partition bis zur 'Übergabestelle' gleich sein! So, aber nun weiter:
LINUXRUN.BAT auf DOS-Partition:
@echo off rem ** Hier geht die Linux-DOSEMU-Bootroutine weiter.. subst m: c:\ d:\win\linux\lredir l: linux\fs/ d:\win\linux\lredir c: linux\fs/win rem ** Ab hier auf Platte... path c:\;c:\linux echo off lredir del d: lredir d: linux\fs/dat_d lredir e: linux\fs/dat_e lredir f: linux\fs/dat_f PATH C:\;C:\LINUX;C:\DOS;E:\UTI;E:\PACK;E:\VC VERIFY ON BREAK ON SET DIRCMD=/OGEN SET TEMP=C:\TEMP SET TMP=C:\TEMP SET XP=D:\XP SET CS=D:\XP\CS SET SOUND=E:\SB SET BLASTER=A220 I5 D1 H5 P330 E620 T6 SET MIDI=SYNTH:1 MAP:E MODE:0 LH C:\DOS\DOSKEY LH E:\Uti\ADF\ADF COM1 3F8 4 57600 4096 4096 14
Einige Befehle sind, wie ich gerade feststelle, vielleicht überflüssig, aber es läuft so. Die lredir-Befehle löschen zuerst Laufwerk D:, den Linux-Baum, den ich ja vorher nach L: verlinkt habe, und legen dann meine Laufwerke D: bis F: an. Der Rest dürfte von DOS her bekannt sein. Die letzte Zeile mit dem ADF-Treiber ist ein FOSSIL-Treiber, der nachher bei 'XP in DosEmu' relevant wird.
Ich hoffe, daß ich hiermit helfen konnte. Im Übrigen danke ich allen Leuten aus dem FIDO-Echo LINUX.GER, durch die ich die meisten meiner Probleme bei der Konfiguration von dosemu lösen konnte!
CrossPoint im DOSEmu
Von Christian Nass (<noseman AT writeme.com> / Christian Nass @ 2:2480/92.29
Nachdem ich zum einen CrossPoint schon eine Weile verwende, länger als Linux, habe ich mich ziemlich an das Programm gewöhnt, es auch registrieren lassen und möchte es eigentlich nicht mehr missen. Deshalb will ich es auch unter Linux weiterhin benutzen, halt im dosemu. Nur stellten sich mir ein paar Probleme, nämlich wollte mein Modem nicht so ganz funktionieren, bzw. es lieferte unendlich viele Übertragungs- & CRC-Fehler.
Bei meiner Konfiguration handelt es sich um dosemu-0.98.1.0, Kernel 2.2.1 und CrossPoint v3.11 R ;-). Die Hardware ist folgende: Telejet 28800V-Modem an einem recht langen Kabel an einer 16550A-Schnittstelle (COM1). setserial ist Version 2.14 und wird mit folgendem Aufruf gestartet:
# setserial -bg /dev/ttyS? /dev/ttyS?? 2>/dev/null
Dieser Aufruf scheint wohl beim Einspielen des neuen setserial-Debian-Pakets an das Ende von /etc/rc.boot/0setserial gestellt worden zu sein ;-).
Um mein Problem -- die im Vergleich zu OS/2 und DOS unerträgliche Übertragungsqualität -- zu lösen, habe ich folgende Tips bekommen:
- XP mittels "xp /w" starten, gibt angeblich Rechenzeit frei (hier bin ich mir nicht sicher, ob das was bringt).
Einen FOSSIL-Treiber verwenden. Mir wurde ADF empfohlen (F'request: Magic "ADF" bei der Eifelbox von R. Maeding, 2:2452/273 (ISDN & Modem)). Das Paket enthält auch Beispiele, wie man ihn konfiguriert. Seit ich diesen Treiber verwende, hat sich die Übertragungsqualität sehr verbessert und kommt ziemlich an die Werte unter OS/2 heran. Wie ich ihn konfiguriert habe, steht in obigem Beispiel für eine dosemu-Konfiguration.
Ich hoffe, es klappt auch bei Euch!
Danke nochmal an alle LINUX.GER'ler, v.a. an Reinhard Maeding für den Tip mit ADF!