Node:DOSEmu, Next:, Previous:WindowsNT, Up:Requirements

3.4 Can it run under Linux?

Q: You say it works on Linux, but I seem to be unable to run the compiler from within Make....

Q: I can run DJGPP on Linux, but Make crashes with SIGFPE on even the simplest Makefiles!

Q: When I run bash on Linux/DOSEmu, echoing of what I type is very slow.

A: Versions of Linux which were released before 13 March 1996 need a patch to be able to reliably run nested DJGPP programs. That patch was posted to the DJGPP mailing list and can be found by using the search capabilities of the DJGPP mail archives.

If you prefer to download that patch via ftp, you can find it on the DJGPP ftp server.

In general, upgrading to DOSEmu version 0.97.10 or later is recommended, at least with versions of Linux kernel earlier than 2.1; in particular, some users report that DJGPP programs sometimes crash on version 0.66.7 under Linux 2.0.35.

You might also need to edit the RAM section of the /etc/dosemu.conf file to make it comfortable for DJGPP. I suggest setting dpmi and xms to 16MB and ems to 4MB. For example, I'm told that building the Allegro library with the -O3 optimization switch fails in DOSEmu unless you allocate at least 16MB of DPMI memory to DOSEmu sessions, and building GCC needs 18MB.

If DJGPP programs crash with an error message like this4:

 DPMI: Unhandled Execption 0d - Terminating Client
 It is likely that dosemu is unstable now and should be rebooted

then you should add a line saying secure off to your /etc/dosemu.conf file.

Some users reported that Make, and possibly other programs which use floating point computations, crash in DOSEmu environment on systems without an FPU, even if you set the 387 and EMU387 environment variables correctly (as explained in Setting up the FP emulator, below). The only known work-around is to not use floating point or to upgrade your machine hardware. DJGPP v2.03 corrected a few subtle bugs in the emulator code, so upgrading your DJGPP software might help. It is possible that newer versions of Linux might solve this problem too, so try upgrading your Linux software.

If your only problem is to run GNU Make, get the latest DJGPP port of Make, since ports of Make 3.75 or later can be configured to not issue FP instructions at all.

If you have problems running recursive Make's, or deeply nested DJGPP programs, edit src/dosext/dpmi/dpmi.h to enlarge the value of DPMI_MAX_CLIENTS (the default is 8) and then rebuild DOSEmu.

If DJGPP programs respond too slow to keyboard input, you might need to tune the HogThreshold parameter in the dosemu.conf file. Set it to zero and see if this helps; if so, further tune it until you get reasonable response time, but still leave Linux with enough cycles for the other programs that run.

Several users reported that DJGPP programs cannot get input from the keyboard if Caldera's DR-DOS is booted under DOSEmu. I'm told that adding rawkeyboard to dosemu.conf might solve this.

Some people complain that RHIDE crashes on DOSEmu whenever the mouse is moved. I'm told that using the -M switch when invoking RHIDE solves this problem. Alternatively, you could try giving DOSEmu access to the serial port to which the mouse is connected, and then using your DOS mouse driver. To this end, add the following to your dosemu.conf5:

 serial { mouse com 2 device /dev/mouse }
 mouse {mousesystems device /dev/mouse emulate3buttons }

and then load a DOS mouse driver in the DOSEmu AUTOEXEC.BAT. Note that the example above assumes that the mouse is connected to the COM2 port; your mileage may vary.

If you have problems with mounting FAT32 partitions, upgrade the Linux kernel to version 2.0.34 or later.

I'm told that the problem with selectors being lost in nested DJGPP programs (see no DPMI selectors) exists in DOSEmu as well.