PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : dosemu SIGSEGV error


Berthold
26.03.03, 17:12
Hab dosemu-1.0.2 compiled, ein hdimage erzeugt, da ist jetzt MS-DOS 6.22 drin.
Beim compile werden nicht alle nötigen Treiber erzeugt. Fehlen bspw. cdrom.sys und ems.sys.

Ich hab es mit Hilfe von einem LFS Hint geschafft, die hinzukriegen.
Das geht mit
as86 -s cdrom.sys cdrom.S
as86 -s ems.sys ems.S
Ich bin mir ziemlich sicher, dass ich das richtig hingekriegt habe.

Aber zu laden sind die Treiber nicht.

Hab den cdrom.sys in das hdimage kopiert, nach C:\EMU\CDROM.SYS
und eine config.sys gemacht mit Eintrag
device=c:\emu\cdrom.sys
Aber beim Booten kommt immer die Fehlermeldung
---
general protection at 0xba90: 30
ERROR: SIGSEV, protected insn ... exiting!
---
Und genau so eine, nur mit abweichender Nummer, beim Versuch, ems.sys zu laden.
Spaßeshalber hab ichs dann mal mit DukeNukem3d versucht. Ergebnis
---
general protection at 0x87df: 66
ERROR: SIGSEV, protected insn ... exiting!
---

Es hängt irgendwie mit protected mode zusammen.
Und mit DPMI.
Habe mit Einstellungen in dosemu.conf rumexperimentiert, dpmi off oder so, nix hilft.
Und die enthaltenen docs, HOWTOs etc. sagen dazu nix.

Google gibt mir dafür einfach nix passendes her.
Also
- was ist eigentlich protected mode, allgemein, und beim dosemu?
- was bedeutet SIGSEV, protected insn, und diese komischen Hexa (??) Zahlen?????
- und was hat das mit DPMI auf sich?
- was muss ich ggf. in der dosemu.conf ändern?

Die Suche hier im Forum hat auch nix gebracht, weiß jetzt jemand was?
Ich brauch ja zumindest den ems und cdrom driver.
(Und DukeNukem ... :D )

Gruß
Berthold

Berthold
07.04.03, 08:23
Hallo,
da hat also niemand was gewusst.
Könnten mir ein paar von euch, die den dosemu am laufen haben, mal ne dosemu.conf als datei anhängen, dass ich die mit meiner vergleichen kann?
Vielleicht krieg ich auf die Art raus, was da falsch läuft.

Gruß
Berthold

tenim
07.04.03, 08:48
also was der protected-mode ist kann ich erklären:
der prozessor ist nach dem booten im real-mode, das heisst er kann (ohne tricks) nur das erste megabyte arbeitsspeicher ansprechen weil die maximale segmentgrösse(max. speicherbereich den ein programm am stück anfordern kann) 64kb beträgt. außerdem kann er in diesem modus auch nur einen prozess gleichzeitig ausführen (singletasking:D ) und speicherbereiche können nicht vor unbefugtem zugriff abgeschottet werden (auch sinnlos bei nur einem prozess). der pmode unterstützt das eben aufgeführte dann alles (multitasking,abgeschottete speicherräume,zugriffsprivilegien für einzelne prozesse und natürlich kann man auf den gesamten verfügbaren arbeitsspeicher zugreifen. aber das
programmieren im pmode ist wesentlich komplizierter als im real-mode weswegen die
spieleentwickler eine schnittstelle, den sogenannten dos-extender("dos4gw.exe") entwickelt haben.
jedes programm das diesen benutzt kann im realmode laufen und trotzdem auf den gesamten arbeitsspeicher zugreifen weil es vorher dos-extender -funktionen aufruft und dieser immer kurz in den pmode und zurückschaltet um die funktion auszuführen.
heutzutage läuft jedes os im pmode (außer windows villeicht:p ).
dpmi ist ein [d]os[p]rotected[m]ode[i]interface und ist eine programmierschnittstelle ,aber damit kenne ich micht nicht aus.

p.s. wenn du dos-spiele simulieren willst nimm doch vmware. gibts für linux und windows und das ist nahezu perfekt geeignet. ich benutze es auch und spiele damit alte dos-spiele wie battle isle2 die noch 3mb emm-speicher+cd-rom treiber brauchen und trotdem noch 580.000byte ram haben wollen. war eine saumäßige konfigurationsarbeit aber es geht.
;)

hoffe ein bisschen geholfen zu haben.

Berthold
08.04.03, 10:31
Hi Tenim,

das mit dem protected mode hab ich jetzt kapiert. Danke!
Problem ist allerdings nicht gelöst.
Hab einen Patch für Version 1.0.2 gefunden und damit neu compiled.
Gleicher Fehler.
Hab es mit der unstable Version 1.1.4 versucht, gleicher Fehler.

Da es nun mal rpm-dosemu gibt, und der funktioniert, muss es irgendwo im system oder kernel hängen.
Ich weiß es nicht.

Werde es wohl mit Binary dosemu versuchen, aber die Sache ärgert mich.
Es geht mir übrigens nicht so sehr um die Spielchen, die sind eher zum Testen.
Sondern um ne alte DOS-Datenbank.

Und darum, Software, die rumzickt, zu überlisten ... :D

Thx
Berthold

alex.c.k
24.04.03, 15:42
ich frag dich mal, ob du mir helfen kannst: habe dosemu (suse 7.3) installiert und versuche jetzt, zu starten. alles was kommt ist:

lnx:/ # dosemu

DOSEMU will run on _this_ terminal.
To exit you need to execute 'exitemu' from within DOS,
because <Ctrl>-C and 'exit' won't work!

Hint: if you want $HOME as DOS drive D:, use '-home' option
lnx:/ #


was mach ich falsch?

greets alex
--------------

spunz
24.04.03, 18:24
du stehst in der dos console, tip mal "dir" ein.

Berthold
01.05.03, 21:33
Falls mal jemand sich damit nervt, und das hier gesucht kriegt -
es lag einfach an meinen wunderbar per as selbst compileten Treibern cdrom.sys etc., eben die, die beim Gesamt Compile des dosemu nicht mitcompiled werden.
Wasweißichwarum.
Hab mir nebenbei die binary version installiert, die Treiber von da genommen, und damit läufts auch ...
:confused: