A full featured Dosemu needs to be suid root, e.g to access ports. Most dos programs don't need this however so when running under X you usually do not need to run dosemu as root. Dosemu runs as suid "root" only at the initialization stage, and drops this right thereafter, except in a forked "port server" (where necessary). But with DPMI, the Dos client program can access the whole user space, hence also can modify the dosemu code itself. This cannot lead to privilege elevation but may crash DOSEMU. There are several other important security considerations discussed in the Security section of README.txt.
This will happen if your program uses DPMI and you do not have DPMI enabled. Try changing the line:
$_dpmi = (off)
in dosemu.conf to:
$_dpmi = (nnnn)
where nnnn is the number of kilobytes of memory you wish to give to the DOS program (e.g. Doom requires about 4000 kilobytes).
Another likely cause is that your program uses VCPI (see EMUfailure.txt for more details) or some other means of switching to protected mode (other than DPMI), in which case it will never work under dosemu.
If none of these is the case, see Section 1.14.
Dosemu relies that the Dos-Version on the hdimage and the Drive you map to contain command.com are the same. If not, dosemu will crash sooner or later. With the dual boot option Win95 offers when pressing the F4, F5 and F8 keys with the "Starting Win95" text, versions on the Win95 drive may swap. Take special care for command.com. Let your shell variable in config.emu point to the correct static version of command.com, e.g.: shell=c:\win95\command.com c:\ /P /E:1024 (97/02/28)
Switch to another console and type dosdebug, then type kill (it may take a while but will work eventually).
<email@example.com> reported (95/4/8) that:
If you have no terminal or network access that you can use to log in, you may have to press the reset button. If you can still get a usable shell somehow, run kbd_mode -a to switch the keyboard out of raw mode, and/or stty sane on the console so that you can see what you're typing.
A useful thing to do is to use a script to run dosemu, and run kbd_mode -a automatically right after dosemu. When dosemu crashes, the script usually will resume running, and execute kbd_mode -a.
Alternatively, if the magic SysRq key is enabled in the Linux kernel, you can use Alt-SysRq-r to switch to xlate mode, and use Alt-Fn to switch to any other console (including X, if your screen display is thoroughly broken).
<firstname.lastname@example.org> reported (94/7/11):
Don't forget to load the provided ems.sys from
(94/8/11) Grab and install klogd. Try:
<email@example.com> reported (94/7/8):
You should disable your video and/or BIOS caching.
I experienced exactly the same problem before. I figured out all the
video shadow in my AMI BIOS must be disabled. Now dosemu runs fine on
In some cases it is useful to play with the value of the HogThreshold variable in your dosemu.conf file.
HogThreshold should now be set to approximately half of the BogoMips
value that the system reports on boot.
<firstname.lastname@example.org> reported (95/4/8):
As of dosemu 0.60, debugging output is redirected to a file specified
on the command line. Use dosemu -D+a -o /tmp/debug to log all
debug output to /tmp/debug. There should no longer be any
need to redirect stderr.
<email@example.com> reported (94/2/22)
After running dos after playing with some stty settings, I was getting doubled key presses. I can now reveal what the reason is!
It only happens when dos is run on the console with `istrip' set. This is (I think) because the raw scancodes are mutilated by the `istrip', so that key release events look like key press events.
So, the input processing needs to be turned off when using the scan codes on a console (it wouldn't be a good idea to do it for tty lines).
For those graphics cards not fully supported in dosemu, with allowed
console graphics a dosemu crash may leave your console in a scrambles and
nearly unusable way. To prepare for that situation, Spudgun
<firstname.lastname@example.org> posted the following solution. First save your
registers when running on the console
~> cat /usr/bin/savetextmode
~> restoretextmode -w /etc/textregs
~> restorefont -w /etc/fontdata
Then, when a crash happened, run following script:
restoretextmode -r /etc/textregs
restorefont -r /etc/fontdata
If it doesn't fix it nothing will! I also found having an X server running sometimes put my Vid card's registers into a strange state where this script made things worse I think since changing X servers and/or running savetextmode on a vt while X was running helped. (97/04/08)
FoxPro 2.6 doesn't run on network drives. Alexey Naidyonov
<email@example.com> states on that problem:
And I guess your FoxPro files are on lredir'ed disk, yeah? The matter is that
FoxPro doesn't run on such disk, but when I said $_hdimage="/dev/hda? ..." in
dosemu.conf, it runs.