Correr programas DOS en Molinux con Dosemu
Aunque parezca mentira, no pocas empresas u oficinas tienen algún programa DOS hecho a medida que las hacen depender de MS-DOS, y por tanto de MS Windows. Esto puede ser un gran problema a la hora de una posible migración a GNU/Linux. Con esta receta aprenderemos cómo ejecutar estos programas en una Molinux Sancho gracias al emulador dosemu.
Instalación de dosemu
Dosemu es un emulador de DOS para GNU/Linux, licenciado bajo la GPL, que permite correr un DOS (MS-DOS, FreeDOS...) y aplicaciones DOS. Utilizaremos además FreeDOS. FreeDOS es un proyecto que aspira a crear un sistema operativo libre que sea totalmente compatible con las aplicaciones y los controladores de MS-DOS. Ni dosemu ni FreeDOS están en los repositorios de Molinux Sancho, así que añadire unos repositorios de Ubuntu Breezy (no olvides que Sancho es en realidad una Breezy). Para ello debes editar el fichero /etc/apt/sources.list y añadir la siguiente línea:deb http://archive.ubuntu.com/ubuntu breezy main multiversey ejecutar posteriormente aptitude update como de costumbre. A continuación instala los paquetes:
- dosemu
- dosemu-freedos
- xfonts-dosemu
Ajustes post-instalación
El paquete es casi perfecto, sólo necesita un par de ajustes para tener dosemu completamente operativo y funcional.Violación de segmento al ejecutar dosemu
Si al ejecutar Dosemu te da una violación de segmento con el siguiente error:ERROR: cpu exception in dosemu code outside of VM86()! trapno: 0x0e errorcode: 0x00000004 cr2: 0x468a5b2d eip: 0x468a5b2d esp: 0xbf8fffc5 eflags: 0x00210286 cs: 0x0073 ds: 0x007b es: 0x007b ss: 0x007b Page fault: read instruction to linear address: 0x468a5b2d CPU was in user mode Exception was caused by non-available page /usr/bin/dosemu: line 218: 16058 Violación de segmento $SUDO $BINARY $XFLAG "$@"es un problema con versiones del kernel Linux posteriores a la 2.6.12. Es debido a cambios en la ¿generación de direcciones virtuales? (virtual address randomization) del kernel. La solución es ejecutar
Cuando ejecuto xdosemu no encuentra la fuente vga, y muchos carácteres están mal
Si miras el contenido del paquete xfonts-dosemu:[00:11:47][david@minipimer]:~$ dpkg -c /var/cache/apt/archives/xfonts-dosemu_1.2.1-3_all.deb drwxr-xr-x root/root 0 2004-10-06 16:23:25 ./ drwxr-xr-x root/root 0 2004-10-06 16:23:24 ./etc/ drwxr-xr-x root/root 0 2004-10-06 16:23:24 ./etc/X11/ drwxr-xr-x root/root 0 2004-10-06 16:23:24 ./etc/X11/fonts/ drwxr-xr-x root/root 0 2004-10-06 16:23:24 ./etc/X11/fonts/misc/ -rw-r--r-- root/root 425 2003-06-23 02:02:07 ./etc/X11/fonts/misc/xfonts-dosemu.alias drwxr-xr-x root/root 0 2004-10-06 16:23:24 ./usr/ drwxr-xr-x root/root 0 2004-10-06 16:23:24 ./usr/X11R6/ drwxr-xr-x root/root 0 2004-10-06 16:23:24 ./usr/X11R6/lib/ drwxr-xr-x root/root 0 2004-10-06 16:23:24 ./usr/X11R6/lib/X11/ drwxr-xr-x root/root 0 2004-10-06 16:23:24 ./usr/X11R6/lib/X11/fonts/ drwxr-xr-x root/root 0 2004-10-06 16:23:24 ./usr/X11R6/lib/X11/fonts/misc/ -rw-r--r-- root/root 4626 2004-10-06 16:23:24 ./usr/X11R6/lib/X11/fonts/misc/vga.pcf.gz -rw-r--r-- root/root 5648 2004-10-06 16:23:24 ./usr/X11R6/lib/X11/fonts/misc/dosemu-vga11x19.pcf.gz -rw-r--r-- root/root 4783 2004-10-06 16:23:24 ./usr/X11R6/lib/X11/fonts/misc/vga-cp866.pcf.gz -rw-r--r-- root/root 5255 2004-10-06 16:23:24 ./usr/X11R6/lib/X11/fonts/misc/vga10x20-cp866.pcf.gz drwxr-xr-x root/root 0 2004-10-06 16:23:24 ./usr/share/ drwxr-xr-x root/root 0 2004-10-06 16:23:24 ./usr/share/doc/ drwxr-xr-x root/root 0 2004-10-06 16:23:25 ./usr/share/doc/xfonts-dosemu/ -rw-r--r-- root/root 3740 2004-10-06 16:22:27 ./usr/share/doc/xfonts-dosemu/copyright -rw-r--r-- root/root 93715 2004-03-06 15:03:08 ./usr/share/doc/xfonts-dosemu/changelog.gz -rw-r--r-- root/root 6490 2004-10-06 16:22:27 ./usr/share/doc/xfonts-dosemu/changelog.Debian.gzobservarás que el fichero de la fuente vga lo guarda en el directorio /usr/X11R6/lib/X11/fonts/misc/. Por defecto Molinux no busca fuentes ahí:
FontPath "/usr/X11R6/lib/X11/fonts/misc/"justo después de la línea que nos salió anteriormente. Reinia el servidor X posteriormente.
Invocación
Si ejecutamos dosemu desde una emulación del terminal tendremos bastantes menos problemas que si lo hiciésemos desde un terminal normal y corriente. Además, dependiendo del programa, será posible que necesitemos derechos de superusuario para acceder a determinados puertos y tal. Para programas DOS normales, la mejor solución sin duda será usar xdosemu:Referencias
[ show comments ]
blog comments powered by Disqus