Archivo de la etiqueta: dosemu

He instalado dosemu en mi Knoppix y no puedo acceder al CD-ROM

Eso es por culpa de los permisos. Vamos, que has creado un usuario (aparte de knoppix) con el que no tienes suficientes permisos para acceder al CD-ROM.

La solución más sencilla es que te añadas al grupo cdrom. Teclea el comando:

[lacofi@claudia lacofi]$ groups
lacofi users

Esos son los grupos a los que perteneces. Vale. Pues edita /etc/group como root y cambia la linea:

cdrom:x:24:knoppix

por

cdrom:x:24:knoppix,lacofi,maria

o el login que utilices. Ahora rebota. Ya está.

En DosEmu, dBase se cuelga siempre que lo ejecuto

Probablemente no tengas memoria DPMI suficiente. dBase es muy sensible al tipo de memoria. No le vale la XMS ni la EMS. Necesita memoria protegida. Tienes que modificar adecuadamente tu fichero de configuración de DosEmu (/etc/dosemu/dosemu.conf), concretamente los parámetros $_XMS, $_EMS y $_DPMI.

Configuración «rápida» de un genuino MS-DOS con DosEmu

Si procedes de la «vieja escuela», como yo, seguramente has empezado con un ordenador 8086 o 80286 (¿te acuerdas?) con MS-DOS. Puede que tengas multitud de antiguos programas y datos procedentes de ese sistema. Casi todos ellos pueden ser convertidos, de algún modo, a un formato manejable con Linux. Pero quizás prefieras usar los documentos tal y como fueron creados. Y al fin y al cabo, MS-DOS tenía también su encanto, ¿no?. :-)

Puedes usar VMWare, pero es un programa comercial y cuesta dinero. Otra opción gratuita y de similar calidad sería VirtualBox. Cualquiera de las dos podría servirte pues son magníficos emuladores. Pero quizás quieras probar DosEmu, que es mucho más ligero y rápido de arrancar.

Lo primero de todo es instalar DosEmu, claro. Así que haz un apt-get o un emerge, o lo que sea.

Bien. Pero ahora hay que configurarlo, ¿qué te creías?. Y puede llegar a ser bastante complicado. Aquí te voy a poner la configuración que yo usaba en Debian y como ponerla en marcha. Si quieres usar otra diferente, tendrás que usar google.

Vale, lo primero es prescindir de FreeDOS. Lo siento, se que es políticamente incorrecto y que es software libre y todas esas cosas, pero FreeDOS es malo. Si no quieres pagar por un DOS, úsalo. Pero el DOS de Microsoft es mucho mejor.

Yo aún conservo mi antiguo MS-DOS 6.22, así que…

[lacofi@claudia lacofi]$ su
password:
[root@claudia lacofi]# cd /var/lib/dosemu
[root@claudia lacofi]# mkdir msdos622
[root@claudia lacofi]# chown lacofi.personal msdos622
[root@claudia lacofi]# chmod ug+rwx msdos622
[root@claudia lacofi]# mkdir prgdos
[root@claudia lacofi]# chown lacofi.personal prgdos
[root@claudia lacofi]# chmod ug+rwx prgdos

Vale. El directorio «msdos622» se comportará como unidad «C:» y contendrá el sistema operativo. Todos sus subdirectorios serán directorios de «C:» en cuanto arranquemos DosEmu. El directorio «prgdos» se comportará como unidad «D:» y contendrá todos los programas y datos. Ambos directorios pertenecen al usuario lacofi y grupo personal. Los dos usuarios de mi ordenador (maría y yo) pertenecemos a ese grupo, con lo que los dos tendríamos permiso para leer y escribir en ambas unidades de DosEmu (C: y D:).

Ahora necesito mi viejo disquette de arranque de DOS. Ojo, aquí necesito las copias de seguridad, es decir con todos los ficheros copiados directamente desde el disco duro, no la versión sin instalar. Si solo dispones de la versión «virgen» de MS-DOS, tendrás que arreglartelas para instalarla en alguna partición, y luego copiar todos los archivos a disquette. Cuando digo todos, digo TODOS, incluidos los ocultos (IO.SYS y MSDOS.SYS).

Bueno, si quieres que sea sincero, también se puede instalar directamente en DosEmu, claro, pero es más complicado y no voy a detallarlo aquí ahora. Quizás otro día. ;-)

Muy bien, pues ahora metemos el disquette de arranque en la disquetera:

[root@claudia dosemu]# exit
[lacofi@claudia lacofi]$ cd /var/lib/dosemu/msdos622
[lacofi@claudia msdos622]$ mcopy a:io.sys .
[lacofi@claudia msdos622]$ mcopy a:msdos.sys .
[lacofi@claudia msdos622]$ mcopy a:command.com .
[lacofi@claudia msdos622]$ mcopy a:autoexec.bat .
[lacofi@claudia msdos622]$ mcopy a:config.sys .
[lacofi@claudia msdos622]$ mkdir utils
[lacofi@claudia msdos622]$ mkdir dos
[lacofi@claudia msdos622]$ cd dos
[lacofi@claudia dos]$ mcopy a:dos\* .

Ahora vamos metiendo todos los disquettes de nuestro MS-DOS y copiandolo todo al directorio /var/lib/dosemu/msdos622/dos. El directorio /var/lib/dosemu/msdos622/utils, de momento, quedará vacío. A continuación:

[lacofi@claudia dos]$ cd ..
[lacofi@claudia msdos622]$ chown -R lacofi.personal *
[lacofi@claudia msdos622]$ chmod -R ug+rw *
[lacofi@claudia msdos622]$ chmod ug+x dos
[lacofi@claudia msdos622]$ chmod ug+x utils

Observad que me he salido de root en cuanto he dejado de necesitarlo. Nunca useis root para nada más que lo imprescindible. Os ahorrará muchos disgustos.

Observad también que he usado las «mtools» para acceder a la disquetera bajo linux. Si no las teneis instaladas, podeis usar mount y copiar los ficheros con cp. Da igual cómo, la cuestión es copiarlo todo al directorio /var/lib/dosemu/msdos622 y reconstruir ahí toda la estructura de subdirectorios.

Ya hemos creado la infraestructura. Ahora tenemos que configurar DosEmu. Primero editamos /etc/dosemu/dosemu.users y añadimos una línea que ponga: «all nosuidroot c_all». Esto permite que sea ejecutado por otros usuarios sin necesitar privilegios de root.

Ahora editamos el fichero /etc/dosemu/dosemu.conf y ponemos los valores adecuados. Es un fichero muy largo, pero no todo nos interesa. Está bien comentado, así que a continuación pongo solo los cambios más relevantes:

$_cpu = «80586» #emulará un procesador pentium
$_xms = (5120) #usará 5Mb de memoria expandida XMS
$_ems = (5120) #usará 5Mb de memoria extendida EMS
$_dpmi = (4096) #usará 4Mb de memoria protegida DPMI
$_dosmem = (640) #memoria convencional de 640Kb
$_term_char_set = «latin1» #hablas castellano, ¿verdad? ;-)
$_layout = «es-latin1» #¿verdad? :-D
$_X_font = «vga» #fuente VGA, la mejor y la que asume
#pero leete este truco
$_video = «vga» #imita una VGA para los gráficos
$_chipset = «S3» #si tu tarjeta es, realmente, una S3
#mira mas opciones en fichero original
$_hdimage = «msdos622 prgdos» #ahí está la madre del cordero.
#si son subdirs de /var/lib/dosemu
#el primero será unidad C:
#y el segundo unidad D:
#Si ficheros, serán unidades virtuales
# (esa es otra historia)
#Y si son dispositivos (/dev/hda1)
#es un DOS real en otra partición
$_sound = (on) #¿Sonido?
$_sb_base = (0x220) #Pues hala, parámetros SoundBlaster:
$_sb_irq = (5)
$_sb_dma = (1)
$_sb_dsp = «/dev/dsp» #Dispositivo linux para el sonido.
$_sb_mixer = «/dev/mixer» #Dispositivo mezclador.

Y te dirás que con esto ya puede ir. ¿O no?.

Pues no. Ahora tienes que arrancar tu nuevo emulador de DOS con los comandos «dos» o «dosemu» si estás en consola, o bien «xdos» o «xdosemu» si estás en xwindow. Observarás que las cosas, ahí, empiezan a fallar un poco. DOS arranca, pero sale una retahila de errores. Y es que ahora tienes que configurar los ficheros «autoexec.bat» y «config.sys»:

C:\> edit config.sys

Por ejemplo, para la configuración propuesta serviría un config.sys tal que así:

device=c:\utils\ems.sys
buffers=30
files=60
dos=high,umb
lastdrive=z
devicehigh=c:\dos\ansi.sys
devicehigh=c:\utils\cdrom.sys /d:mscd0001
country=034,437,c:\dos\country.sys

Observa que cargamos un driver «c:\utils\cdrom.sys» de un directorio que no contiene nada… Bien, ese driver no está incluido en MS-DOS. Es un driver para una conocida marca de CD, que es compatible con la emulación que hace DosEmu. Tendrás que descargarte ese driver de algún sitio (consulta las FAQ de DosEmu) y ponerlo en el directorio «c:\utils» (o lo que es lo mismo, /var/lib/dosemu/msdos622/utils, que es como lo vería Linux).

Vaaale, vaaaale. Es un driver de libre distribución, así que no busques maaaaas. Aquí lo tienes. En cuanto a esa misteriosa referencia a c:\utils\ems.sys, que tampoco existe, no seas impaciente. Llegaremos a eso enseguida. De momento, tu mételo tal cual.

Ahora es el turno de «autoexec.bat». Por ejemplo:

@echo off
echo --------------------------
echo ¡Bienvenido a  dosemu 1.0!
echo  ¡Esto es DOS bajo Linux!
echo --------------------------
set path=.;C:\;C:\dos;c:\utils;D:\PRG;D:\BAT
lh mscdex.exe /d:mscd0001 /l:e

¿Que queda?. Solo una cosa… ¿cómo salir de DosEmu?. No con «exit». Tendrías que salir a lo bruto, matando el programa. Pero hay una solución mejor, claro. Instalaste FreeDOS, ¿recuerdas?.

Bueno, pues vete al directorio «/usr/lib/freedos/dosemu» y verás un montón de comandos propios de FreeDOS pero especialmente diseñados para DosEmu. Cópialos todos a «/var/lib/dosemu/msdos622/utils» (¿ves por qué te recomendaba crearlo?). Entre todos esos comandos, verás uno que se llama «exitemu». Ejecútalo en tu sesión DosEmu y ésta se cerrará limpiamente. También entre esos comandos está el fichero ems.sys al que hacíamos referencia antes.

Ahí lo tienes funcionando. :-)

La fuente de DOSEMU es demasiado pequeña

Es cierto. No tiene demasiada importancia en resoluciones de 800×600, pero sí la tiene si usas 1024×768 o superior. Para eso las letras de la fuente vga son un pelín demasiado pequeñas.

Solo teneis que descargar la fuente vga11x19.tar.gz, descomprimir el fichero e instalar la fuente como en el anterior truco, metiéndola en el mismo directorio donde esté vuestro fichero vga.pcf.gz. Bien, la letra «ñ» no sale muy católica, pero el resto se ve bastante bien. Así es como se vería, a tamaño natural.

Símbolos raros en las pantallas de DOSEMU

Curioso, ¿verdad?. Se supone que al instalar DOSEMU, deberías tenerlo todo listo para ser usado. Bueno, pues no. No siempre ni en todas las distribuciones Linux, al menos. No voy a entrar en la configuración de DOSEMU en si misma, pero sí en un pequeño detalle: DOSEMU necesita una fuente determinada para poder mostrar el aspecto correcto en pantalla, sobre todo si manejais la segunda parte de la tabla de códigos ASCII (como nosotros, los que hablamos español ;-).

Esa fuente no es otra que vga.pcf.gz. Sin ella, los caracteres gráficos salen equivocados. Y da igual lo mal o bien que configureis el dosemu, hace falta la fuente o no hay tutía. Pero lo realmente curioso es que en algunas distribuciones (por ejemplo algunas versiones de Debian), el paquete en el que viene dosemu no la instala, hay que hacerlo aparte. Bueno, pues se descarga la fuente de aquí y la instalamos:

[lacofi@claudia lacofi]$ su
password:
[root@claudia lacofi]# cp vga.pcf.gz /usr/X11R6/lib/X11/spans/misc/.
[root@claudia lacofi]# cd /usr/X11R6/lib/X11/spans/misc
[root@claudia misc]# mkspandir
[root@claudia misc]# xset fp rehash

Teóricamente ya está. En la práctica, a mí siempre me ha hecho falta rebotar la máquina.

[root@claudia misc]# /sbin/reboot

Sin embargo, hay otras distribuciones, como mi Gentoo, que llevan la fuente incorporada sin necesidad de hacer nada, así que compruebalo antes de meterte en camisas de once varas:

[lacofi@jeanette lacofi]$ locate vga.pcf.gz
/usr/share/dosemu/Xfonts/vga.pcf.gz