Copyright
Copyright © José
Luis Lara Carrascal 2007-2018
Sumario
Introducción
Preliminares
Instalación
Configuración
Impresión con DOSEMU
Solucionar problemas de ejecución de DOSEMU
Crear scripts de ejecución de aplicaciones de MSDOS
Iniciamos DOSEMU
Enlaces
Introducción
DOSEMU es un emulador para MSDOS y Windows 3.1
que nos permite ejecutar las aplicaciones diseñadas para correr
en estos dos sistemas. Muchos usuarios se preguntarán si DOSEMU es igual que DOSBox, pues no, DOSBox está especialmente optimizado para la emulación de juegos, así que si queremos jugar a juegos de MSDOS deberemos de usar siempre DOSBox para un mejor rendimiento de los mismos, lo cual no significa que no podamos ejecutarlos con DOSEMU. Con la instalación de DOSEMU se incluye una copia del sistema operativo Freedos (se descarga aparte), en el caso de que tengamos cualquiera de las versiones de MSDOS podremos sustituir el uso de este sistema por el MSDOS original en sus diferentes versiones.
Desde el 4 de julio de 2018, se sustituye la instalación de la
versión original del programa, por un derivado denominado Dosemu2, que añade más características al mismo. Las más destacables son el soporte de aceleración KVM
del kernel Linux en sistemas de 64 bits para la emulación de la
CPU, soporte de sonido nativo MIDI de las tarjeta de sonido
Roland CM32L y MT-32, a través de la librería
proporcionada por el emulador Munt,
Soporte de SDL2 como alternativa a SDL1 (se compilan los dos al mismo
tiempo) y, por último, una mejora del soporte de Red, con la
dependencia opcional de VDE,
cuya versión parcheada se incluye en el manual para su
instalación. Lo que no incluyo por razones de tiempo,
(sencillamente no lo he probado) es la información relativa a
cómo configurar la Red con DOSEMU y VDE.
Preliminares
1) Comprobar que la ruta de instalación de los binarios del programa la tenemos en nuestro PATH
Abrimos una ventana de terminal y ejecutamos el siguiente comando:
[jose@Fedora-18 ~]$ echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/jose/bin
|
Si no aparece entre las rutas mostradas el directorio /usr/local/bin, abrimos un editor de texto y añadimos lo siguiente:
#!/bin/sh
export PATH=/usr/local/bin:$PATH |
Lo guardamos con el nombre variables.sh, y lo instalamos en /etc/profile.d.
$ su -c "install -m755 variables.sh /etc/profile.d" |
Tenemos que cerrar el emulador de terminal y volverlo a abrir para que
la variable de entorno aplicada sea efectiva. Es conveniente guardar
una copia de este script para posteriores
instalaciones de nuestro sistema, teniendo en cuenta que es el que se
va a utilizar a partir de ahora en todos los manuales de esta web, para
establecer variables de entorno globales, excepto en aquellas que
sólo afectan al usuario, en las que se utilizará el
archivo de configuración personal, ~/.bashrc.
La ventaja de utilizar el directorio /etc/profile.d es que es común a todas las distribuciones y nos evita tener que editar otros archivos del sistema como por ejemplo, /etc/profile.
2) Comprobar que la variable de entorno 'XDG_DATA_DIRS' incluye el directorio /usr/local/share
Esta variable se aplica para que los archivos desktop
ubicados en un directorio específico del sistema puedan ser
leídos por los menús de entornos gráficos
como XFce 4, o
paneles como LXPanel o Fbpanel.
Este aspecto es bastante delicado porque cada distribución es un
mundo y lo mejor que podemos hacer es establecer una variable de
entorno global que incluya todos los directorios predefinidos del
sistema que incluyen archivos desktop, siempre y cuando el directorio /usr/local/share
no esté incluido por defecto en la distribución de turno.
Para saberlo basta abrir el menú de aplicaciones en cualquiera
de los programas antes comentados y comprobar que aparece la entrada
correspondiente a la aplicación tratada en este manual. Si no es
así, en el mismo archivo /etc/profile.d/variables.sh, añadimos lo que está en rojo:
#!/bin/sh
export PATH=/usr/local/bin:$PATH
export XDG_DATA_DIRS=/usr/share:/usr/local/share:$XDG_DATA_DIRS |
3) Desinstalar versiones anteriores del programa ubicadas en el directorio /usr
Aún en el caso de que la versión a compilar la vayamos a
instalar en el mismo directorio que la que proporciona la
distribución, siempre se debe desinstalar previamente la versión antigua, para evitar conflictos innecesarios.
Instalación
Dependencias
Herramientas de Compilación
Entre paréntesis la
versión con la que se ha compilado DOSEMU
para la elaboración de este documento.
* GCC - (8.1.0)
* Gawk - (4.2.1)
* M4 - (1.4.18)
* Make - (4.2.1)
* Automake - (1.16.1)
* Bison - (3.0.5)
* Autoconf - (2.69)
* Flex - (2.6.4)
* Pkg-config - (0.29.2)
Librerías
de Desarrollo
*
Xorg - (7.7 / xorg-server 1.20.0)
LibICE - (1.0.9)
LibX11 - (1.6.5)
LibXext - (1.3.3)
LibXxf86vm - (1.1.4)
* ALSA - (1.1.6)
* FluidSynth - (1.1.11)
* Gpm - (1.20.7)
* LADSPA - (1.13)
* Libao - (1.2.0)
* Munt - (2.3.0)
* SDL - (1.2.15 | 2.0.8)
* S-Lang - (2.3.2)
* SVGAlib - (1.9.25)
* VDE - (2.3.2)
Aplicaciones
* Wget - (1.19.5) [1]
[1] Requerido para poder descargarnos los iconos del archivo desktop desde internet.
Descarga
dosemu2-2.0pre8-git-25062018.tar.xz | dosemu-freedos-1.1-bin.tgz | vde2-2.3.2.tar.xz
Firma Digital
dosemu2-2.0pre8-git-25062018.tar.xz.asc | vde2-2.3.2.tar.xz.asc
Verificar la firma digital de los paquetes
$ gpg --import manualinux.asc
$ gpg --verify dosemu2-2.0pre8-git-25062018.tar.xz.asc dosemu2-2.0pre8-git-25062018.tar.xz
$ gpg --verify vde2-2.3.2.tar.xz.asc vde2-2.3.2.tar.xz |
Optimizaciones
$ export
{C,CXX}FLAGS='-O3 -march=amdfam10 -mtune=amdfam10'
|
Donde pone amdfam10
se indica el procesador respectivo de cada sistema
seleccionándolo de la siguiente tabla: |
* La opción '-march=' establece el procesador mínimo con el que funcionará el programa compilado, la opción '-mtune=' el procesador específico para el que será optimizado.
* Los valores separados por comas, son equivalentes, es decir, que lo mismo da poner '-march=k8' que '-march=athlon64'.
* En versiones de GCC 3.2 e inferiores se utiliza la opción '-mcpu=' en lugar de '-mtune='.
|
Valores |
CPU |
Genéricos |
generic |
Produce un código
binario optimizado para la mayor parte de procesadores existentes.
Utilizar este valor si no sabemos el nombre del procesador que
tenemos en nuestro equipo. Este valor sólo es aplicable en
la opción '-mtune=', si utilizamos GCC. Esta opción está disponible a
partir de GCC 4.2. |
native |
Produce un código
binario optimizado para el procesador que tengamos en nuestro sistema,
siendo éste detectado utilizando la instrucción cpuid.
Procesadores antiguos pueden no ser detectados utilizando este valor.
Esta opción está disponible a
partir de GCC 4.2. |
x86-64 |
Procesador genérico con extensiones 64-bit. Esta opción está disponible a
partir de GCC 8. |
Intel |
atom |
Intel Atom
con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y
extensiones 64-bit. Esta opción está disponible
desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición bonnell. |
bonnell |
Intel Bonnell con soporte de instrucciones
MOVBE, MMX, SSE, SSE2, SSE3, SSSE3 y extensiones 64-bit. Esta opción está disponible a partir
de GCC 4.9. |
broadwell |
Intel Broadwell con soporte de instrucciones
MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT,
AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2,
F16C, RDSEED, ADCX, PREFETCHW y extensiones 64-bit. Esta opción está disponible a partir
de GCC 4.9. |
cannonlake |
Intel Cannonlake Server con soporte de instrucciones MOVBE, MMX, SSE,
SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL,
FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW,
CLFLUSHOPT, XSAVEC, XSAVES, AVX512F, AVX512VL, AVX512BW, AVX512DQ,
AVX512CD, AVX512VBMI, AVX512IFMA, SHA, UMIP y extensiones 64-bit. Esta opción está disponible a
partir de GCC 8. |
core2 |
Intel Core2
con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y
extensiones 64-bit. Esta opción está disponible a partir
de GCC 4.3. |
core-avx2 |
Intel Core (Haswell). Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición haswell. |
core-avx-i |
Intel Core (ivyBridge)
con soporte de instrucciones MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, SSE4.2, AVX, AES, PCLMUL, FSGSBASE, RDRND, F16C y
extensiones 64-bit. Esta opción está disponible
desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición ivybridge. |
corei7 |
Intel Core i7 con soporte de instrucciones MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1 y SSE4.2 y extensiones 64-bit. Soporta también los procesadores Intel
Core i3 e i5. Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición nehalem. |
corei7-avx |
Intel Core i7 con soporte de instrucciones MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, SSE4.2, AVX, AES y PCLMUL y
extensiones 64-bit. Soporta también los
procesadores Intel Core i3 e i5. Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición sandybridge. |
haswell |
Intel Haswell con soporte de instrucciones
MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT,
AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2,
F16C y extensiones 64-bit. Esta opción está disponible a partir
de GCC 4.9. |
i386 |
Intel i386.
|
i486 |
Intel i486. |
i586, pentium |
Intel Pentium sin soporte de instrucciones MMX. |
i686 |
Produce un código binario optimizado para la mayor parte de
procesadores compatibles con la serie 80686 de Intel. Todos los actuales lo son. |
icelake-client |
Intel Icelake Client con soporte de instrucciones MOVBE, MMX, SSE,
SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL,
FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW,
CLFLUSHOPT, XSAVEC, XSAVES, AVX512F, AVX512VL, AVX512BW, AVX512DQ,
AVX512CD, AVX512VBMI, AVX512IFMA, SHA, CLWB, UMIP, RDPID, GFNI,
AVX512VBMI2, AVX512VPOPCNTDQ, AVX512BITALG, AVX512VNNI, VPCLMULQDQ,
VAES y extensiones 64-bit. Esta opción está disponible a
partir de GCC 8. |
icelake-server |
Intel Icelake Server con soporte de instrucciones MOVBE, MMX, SSE,
SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL,
FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW,
CLFLUSHOPT, XSAVEC, XSAVES, AVX512F, AVX512VL, AVX512BW, AVX512DQ,
AVX512CD, AVX512VBMI, AVX512IFMA, SHA, CLWB, UMIP, RDPID, GFNI,
AVX512VBMI2, AVX512VPOPCNTDQ, AVX512BITALG, AVX512VNNI, VPCLMULQDQ,
VAES, PCONFIG, WBNOINVD y extensiones 64-bit. Esta opción está disponible a
partir de GCC 8. |
intel |
Intel Haswell y Silvermont. Este valor sólo es aplicable en
la opción '-mtune='. Esta opción está disponible a partir
de GCC 4.9. |
ivybridge |
Intel Ivy Bridge con soporte de instrucciones
MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX,
AES, PCLMUL, FSGSBASE, RDRND, F16C y extensiones 64-bit. Esta opción está disponible a partir
de GCC 4.9. |
knl |
Intel Knights Landing con soporte de instrucciones
MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2,
AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX,
PREFETCHW, AVX512F, AVX512PF, AVX512ER y extensiones 64-bit. Esta opción está disponible a partir
de GCC 5. |
knm |
Intel Knights Mill con soporte de instrucciones MOVBE, MMX, SSE, SSE2,
SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE,
RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, AVX512F,
AVX512PF, AVX512ER, AVX512CD, AVX5124VNNIW, AVX5124FMAPS,
AVX512VPOPCNTDQ y extensiones 64-bit. Esta opción está disponible a
partir de GCC 8. |
lakemont |
Intel Quark Lakemont MCU, basado en el procesador Intel Pentium. Esta opción está disponible a partir
de GCC 6. |
nehalem |
Intel Nehalem con soporte de instrucciones MMX,
SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT y extensiones
64-bit. Esta opción está disponible a partir
de GCC 4.9. |
nocona |
Versión mejorada de Intel Pentium4 con soporte de instrucciones MMX, SSE, SSE2, SSE3 y extensiones 64-bit. |
pentiumpro |
Intel PentiumPro. |
pentium2 |
Intel Pentium2 basado en PentiumPro con soporte de instrucciones MMX. |
pentium3, pentium3m |
Intel Pentium3 basado en PentiumPro con soporte de instrucciones MMX y SSE. |
pentium4, pentium4m |
Intel Pentium4 con soporte de instrucciones MMX, SSE y SSE2. |
pentium-m |
Versión de bajo
consumo de Intel Pentium3 con soporte de instrucciones MMX, SSE y SSE2.
Utilizado por los portátiles Centrino. |
pentium-mmx |
Intel PentiumMMX basado en Pentium con soporte de instrucciones MMX. |
prescott |
Versión mejorada de Intel Pentium4 con soporte de instrucciones MMX, SSE, SSE2 y SSE3. |
sandybridge |
Intel Sandy Bridge con soporte de instrucciones
MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX,
AES, PCLMUL y extensiones 64-bit. Esta opción está disponible a partir
de GCC 4.9. |
silvermont |
Intel Silvermont con soporte de instrucciones
MOVBE, MMX, SSE, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AES, PCLMU, RDRND y extensiones 64-bit. Esta opción está disponible a partir
de GCC 4.9. |
skylake |
Intel Skylake con soporte de instrucciones MOVBE, MMX, SSE, SSE2,
SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE,
RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT,
XSAVEC, XSAVES y extensiones 64-bit. Esta opción está disponible a partir
de GCC 6. |
skylake-avx512 |
Intel Skylake Server
con soporte de instrucciones MOVBE, MMX, SSE, SSE2,
SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE,
RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT,
XSAVEC, XSAVES, AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD y
extensiones 64-bit. Esta opción está disponible a partir
de GCC 6. |
westmere |
Intel Westmere con soporte de instrucciones
MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES,
PCLMUL y extensiones 64-bit. Esta opción está disponible a partir
de GCC 4.9. |
AMD |
amdfam10, barcelona |
Procesadores basados en
AMD Family 10h core con soporte de instrucciones x86-64 (MMX, SSE,
SSE2, SSE3, SSE4A, 3DNow!, enhanced 3DNow!, ABM y extensiones
64-bit). Esta opción está disponible a partir de GCC 4.3. |
athlon, athlon-tbird |
AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y SSE prefetch. |
athlon4, athlon-xp, athlon-mp |
Versiones mejoradas de AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y full SSE. |
bdver1 |
Procesadores basados en
AMD Family 15h core con soporte de instrucciones x86-64 (FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE,
SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones
64-bit). Esta opción está disponible a partir
de GCC 4.7. |
bdver2 |
Procesadores basados en
AMD Family 15h core con soporte de instrucciones x86-64 (BMI, TBM, F16C, FMA, LWP, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE,
SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones
64-bit). Esta opción está disponible a partir
de GCC 4.7. |
bdver3 |
Procesadores basados en
AMD Family 15h core con soporte de instrucciones x86-64 (FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE,
SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones
64-bit). Esta opción está disponible a partir
de GCC 4.8. |
bdver4 |
Procesadores basados en AMD Family 15h core con soporte de instrucciones x86-64
(BMI, BMI2, TBM, F16C, FMA, FMA4, FSGSBASE, AVX, AVX2, XOP,
LWP, AES, PCL_MUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A,
SSSE3, SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción está
disponible a partir de GCC 4.9. |
btver1 |
Procesadores basados en
AMD Family 14h core con soporte de instrucciones x86-64 (MMX, SSE,
SSE2, SSE3, SSE4A, CX16, ABM y extensiones 64-bit). Esta opción está disponible a partir
de GCC 4.6. |
btver2 |
Procesadores basados en
AMD Family 16h core con soporte de instrucciones x86-64 (MOVBE, F16C,
BMI, AVX, PCL_MUL, AES, SSE4.2, SSE4.1, CX16, ABM, SSE4A, SSSE3, SSE3,
SSE2, SSE, MMX y extensiones 64-bit). Esta opción
está disponible a partir
de GCC 4.8. |
geode |
AMD integrado con soporte de instrucciones MMX y 3DNow!. Esta opción está disponible a partir de GCC 4.3. |
k6 |
AMD K6 con soporte de instrucciones MMX. |
k6-2, k6-3 |
Versiones mejoradas de AMD K6 con soporte de instrucciones MMX y 3DNow!. |
k8, opteron, athlon64, athlon-fx |
Procesadores basados en
AMD K8 core con soporte de instrucciones x86-64 (MMX, SSE, SSE2,
3DNow!, enhanced 3DNow! y extensiones 64-bit). |
k8-sse3, opteron-sse3, athlon64-sse3 |
Versiones mejoradas de
AMD K8 core con soporte de instrucciones SSE3. Esta opción
está disponible a partir de GCC 4.3. |
znver1 |
Procesadores basados en
AMD Family 17h core con soporte de instrucciones x86-64 (BMI, BMI2,
F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA, CLZERO, AES,
PCL_MUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1,
SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT y extensiones
64-bit). Esta opción está disponible a partir de GCC 6. |
VIA |
c3 |
VIA C3 con soporte de instrucciones MMX y 3DNow! (no se implementa planificación para este chip). |
c3-2 |
VIA C3-2 (Nehemiah/C5XL) con soporte de instrucciones MMX y SSE (no se implementa planificación para este chip). |
c7 |
VIA C7 (Esther) con
soporte de instrucciones MMX, SSE, SSE2 y SSE (no se implementa
planificación para este chip). Esta opción
está disponible a partir de GCC 7. |
eden-x2 |
VIA Eden X2 con soporte de
instrucciones x86-64, MMX, SSE, SSE2 y SSE3 (no se implementa
planificación para este chip). Esta opción
está disponible a partir de GCC 7. |
eden-x4 |
VIA Eden X4 con soporte de
instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2
(no se implementa planificación para este chip). Esta
opción está disponible a partir de GCC 7. |
esther |
VIA Eden Esther con
soporte de instrucciones MMX, SSE, SSE2 y SSE3 (no se implementa
planificación para este chip). Esta opción
está disponible a partir de GCC 7. |
nano |
VIA Nano genérico
con soporte de instrucciones x86-64, MMX, SSE, SSE2, SSE3 y SSSE3 (no
se implementa planificación para este chip). Esta
opción está disponible a partir de GCC 7. |
nano-1000 |
VIA Nano 1xxx con
soporte de instrucciones x86-64, MMX, SSE, SSE2, SSE3 y SSSE3 (no se
implementa planificación para este chip). Esta
opción está disponible a partir de GCC 7. |
nano-2000 |
VIA Nano 2xxx con
soporte de instrucciones x86-64, MMX, SSE, SSE2, SSE3 y SSSE3 (no se
implementa planificación para este chip). Esta
opción está disponible a partir de GCC 7. |
nano-3000 |
VIA Nano 3xxx con
soporte de instrucciones x86-64, MMX, SSE, SSE2, SSE3, SSSE3 y SSE4.1
(no se implementa planificación para este chip). Esta
opción está disponible a partir de GCC 7. |
nano-x2 |
VIA Nano Dual
Core con soporte de instrucciones x86-64, MMX, SSE, SSE2, SSE3 y
SSSE3 (no se implementa planificación para este chip). Esta
opción está disponible a partir de GCC 7. |
nano-x4 |
VIA Nano Quad
Core con soporte de instrucciones x86-64, MMX, SSE, SSE2, SSE3 y
SSSE3 (no se implementa planificación para este chip). Esta
opción está disponible a partir de GCC 7. |
IDT |
winchip2 |
IDT Winchip2, que equivale a un i486 con soporte de instrucciones MMX y 3DNow!. |
winchip-c6 |
IDT Winchip C6, que equivale a un i486 con soporte de instrucciones MMX. |
Optimizaciones adicionales
Optimizaciones adicionales |
Graphite
|
$ export {C,CXX}FLAGS+=' -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block'
|
Parámetros adicionales
Parámetro requerido en sistemas de 64 bits multiarquitectura |
$ export {C,CXX}FLAGS+=' -fPIC' |
Establecer la ruta de búsqueda de directorios de librerías en sistemas de 64 bits multiarquitectura |
$ export
LDFLAGS+=" -L/usr/lib64 -L/usr/local/lib64" |
Extracción y Configuración de VDE
$ tar Jxvf vde2-2.3.2.tar.xz
$ cd vde2-2.3.2
$ ./configure --disable-dependency-tracking --prefix=/usr --disable-static \
--sysconfdir=/etc --libdir=/usr/lib64 --libexecdir=/usr/lib64/vde2 |
Explicación de los
comandos
--prefix=/usr : Instala la librería en el directorio principal, /usr.
--disable-dependency-tracking : Acelera
el tiempo de compilación.
--disable-static
: Desactiva la compilación de las librerías
estáticas, al no ser necesarias para la ejecución del
programa.
--sysconfdir=/etc : Instala los archivos de configuración del sistema de VDE en /etc/vde2 en lugar de /usr/etc/vde2.
--libdir=/usr/lib64 : Instala las librerías en /usr/lib64, en sistemas de 64 bits multiarquitectura.
--libexecdir=/usr/lib64/vde2 : Instala la librería de ejecución en /usr/lib64/vde2, en sistemas de 64 bits multiarquitectura.
Compilación
Instalación
como root
$ su
# make install-strip
# ldconfig -v
|
Estadísticas de Compilación e Instalación de VDE
Estadísticas de Compilación e Instalación de VDE |
CPU |
AMD Phenom(tm) II X4 965 Processor |
MHz |
3415.709 |
RAM |
4096 MB |
Sistema de archivos |
XFS |
Versión del Kernel |
4.17.4-ck1 SMP PREEMPT x86_64 |
Modo de frecuencia de la CPU |
ondemand |
Versión de Glibc |
2.27 |
Enlazador dinámico |
GNU gold (Binutils 2.30) 1.15 |
Compilador |
GCC 8.1.0 + Ccache 3.4.2 |
Parámetros de optimización |
-03 -march=amdfam10
-mtune=amdfam10 -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block |
Tiempo de compilación |
43" |
Archivos instalados |
62 |
|
Enlaces simbólicos creados |
14 |
|
Ocupación de espacio en disco |
816 KB |
Desinstalación
como root
1)
MODO TRADICIONAL
En el directorio de compilación
ejecutamos el siguiente comando:
2)
MODO MANUALINUX
El principal inconveniente del comando anterior es
que
tenemos que tener el directorio de compilación en nuestro
sistema para poder desinstalar el programa. En algunos casos esto
supone muchos megas de espacio en disco. Con el paquete de scripts que
pongo a continuación logramos evitar
el único inconveniente que tiene la compilación
de
programas, y es el tema de la desinstalación de los mismos
sin
la necesidad de tener obligatoriamente una copia de las fuentes
compiladas.
vde2-2.3.2-scripts.tar.gz
$ su
# tar zxvf vde2-2.3.2-scripts.tar.gz
# cd vde2-2.3.2-scripts
# ./Desinstalar_vde2-2.3.2 |
Copia de Seguridad
como root
Con este otro script creamos una copia de seguridad de los binarios
compilados, recreando la estructura de directorios de los mismos en un
directorio de copias de seguridad (copibin)
que se crea en el directorio /var. Cuando se haya creado el paquete comprimido de
los binarios podemos copiarlo como usuario a nuestro home
y borrar el que ha creado el script de respaldo, teniendo en cuenta que si queremos
volver a restaurar la copia, tendremos que volver a copiarlo al lugar
donde se ha creado.
$ su
# tar zxvf vde2-2.3.2-scripts.tar.gz
# cd vde2-2.3.2-scripts
# ./Respaldar_vde2-2.3.2 |
Restaurar la Copia de
Seguridad
como root
Y con este otro script (que se copia de forma automática
cuando
creamos la copia de respaldo del programa) restauramos la copia de
seguridad como root cuando resulte necesario.
$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_vde2-2.3.2
|
Extracción y
Configuración de DOSEMU
$ tar Jxvf dosemu2-2.0pre8-git-25062018.tar.xz
$ cd dosemu2-2.0pre8-git-25062018
$ ./default-configure --with-fdtarball=../dosemu-freedos-1.1-bin.tgz \
--enable-plugins+=svgalib,vde --libdir=/usr/local/lib64 |
Explicación de los
comandos
--with-fdtarball=../dosemu-freedos-1.1-bin.tgz : Le indicamos la ruta al paquete binario de FreeDOS que nos hemos bajado junto con el de DOSEMU. Este paquete fue creado en el año 2012 por Mike Swanson, y actualiza la versión disponible en la web de DOSEMU, a la versión 1.1. El enlace original del paquete lo podemos encontrar en este enlace, junto a otros paquetes creados por otros usuarios, que yo no he probado.
--enable-plugins+=svgalib,vde : Activa la compilación de
aquellos plugins que el script de configuración no activa por
defecto. En este caso, SVGAlib y VDE. Si no tenemos estas dependencia
instaladas, no añadir este parámetro.
--libdir=/usr/local/lib64 : Instala el directorio de plugins en /usr/local/lib64, en sistemas de 64 bits multiarquitectura.
Compilación
Parámetros de compilación opcionales
-j2
: Si tenemos un procesador de doble núcleo (dual-core), y el kernel
está optimizado para el mismo y es SMP, con este parámetro
aumentaremos el número de procesos de compilación
simultáneos a un nivel de 2 y aceleraremos el tiempo de compilación del programa de forma considerable.
-j4
: Lo mismo que arriba pero con procesadores de 4 núcleos (quad-core).
Instalación
como root
$ su
# make install
# for i in /usr/local/share/icons/hicolor ; do \
install -dm755 $i/{16x16,24x24,32x32,48x48,64x64,128x128,256x256}/apps ; \
wget -c http://files.softicons.com/download/system-icons/pleasant-icons-by-harwen-zhang/\
png/256/MS-DOS-Application.png -O $i/256x256/apps/dosemu.png ; \
wget -c http://files.softicons.com/download/system-icons/pleasant-icons-by-harwen-zhang/\
png/128/MS-DOS-Application.png -O $i/128x128/apps/dosemu.png ; \
wget -c http://files.softicons.com/download/system-icons/pleasant-icons-by-harwen-zhang/\
png/64/MS-DOS-Application.png -O $i/64x64/apps/dosemu.png ; \
wget -c http://files.softicons.com/download/system-icons/pleasant-icons-by-harwen-zhang/\
png/48/MS-DOS-Application.png -O $i/48x48/apps/dosemu.png ; \
wget -c http://files.softicons.com/download/system-icons/pleasant-icons-by-harwen-zhang/\
png/32/MS-DOS-Application.png -O $i/32x32/apps/dosemu.png ; \
wget -c http://files.softicons.com/download/system-icons/pleasant-icons-by-harwen-zhang/\
png/24/MS-DOS-Application.png -O $i/24x24/apps/dosemu.png ; \
wget -c http://files.softicons.com/download/system-icons/pleasant-icons-by-harwen-zhang/\
png/16/MS-DOS-Application.png -O $i/16x16/apps/dosemu.png ; \
gtk-update-icon-cache -tf $i &> /dev/null ; \
done
|
Explicación de los
comandos
for i in /usr/local/share/icons/hicolor.....
: Descarga e instala los iconos del programa, en sus diferentes
medidas compatibles con el estándar de tamaño de icono de
freedesktop.org.
Instalación
del archivo de configuración personal en nuestro home
$ cp /etc/dosemu/dosemu.conf ~/.dosemurc |
Creación del archivo dosemu.desktop
Para que DOSEMU sea detectado por los menús de entornos gráficos
como XFce 4 o
paneles como LXPanel o Fbpanel, abrimos un editor de texto y añadimos lo siguiente:
[Desktop Entry]
Name=DOSEMU
GenericName=Emulador
Comment=Un emulador de MSDOS
Exec=xdosemu
Icon=dosemu
Categories=Application;System;Emulator
Type=Application |
Lo guardamos con la codificación de caracteres UTF-8, y con el nombre dosemu.desktop. Luego lo instalamos como root en /usr/local/share/applications.
La desinstalación y respaldo de este archivo viene incluida en
los scripts correspondientes proporcionados en este manual.
$ su
# install -dm755 /usr/local/share/applications
# install -m644 dosemu.desktop /usr/local/share/applications
|
Estadísticas de Compilación e Instalación de DOSEMU
Estadísticas de Compilación e Instalación de DOSEMU |
CPU |
AMD Phenom(tm) II X4 965 Processor |
MHz |
3415.709 |
RAM |
4096 MB |
Sistema de archivos |
XFS |
Versión del Kernel |
4.17.4-ck1 SMP PREEMPT x86_64 |
Modo de frecuencia de la CPU |
ondemand |
Versión de Glibc |
2.27 |
Enlazador dinámico |
GNU gold (Binutils 2.30) 1.15 |
Compilador |
GCC 8.1.0 + Ccache 3.4.2 |
Parámetros de optimización |
-03 -march=amdfam10
-mtune=amdfam10 -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block |
Parámetros de compilación |
-j4 |
Tiempo de compilación |
1' 24" |
Archivos instalados |
561 |
|
Enlaces simbólicos creados |
21 |
|
Ocupación de espacio en disco |
10,9 MB |
Consumo inicial de CPU y RAM de DOSEMU
Consumo inicial de CPU y RAM de DOSEMU |
Proceso
|
CPU |
Memoria física |
dosemu.bin |
2 % |
74,6 MB |
Directorio de
configuración personal
~/.dosemu |
Es el
directorio de configuración personal de DOSEMU
en nuestro home |
~/.dosemu/drive_c |
Al igual que en Wine el directorio donde podemos instalar o copiar los programas de MSDOS es ~/.dosemu/drive_c. También podemos crear enlaces desde las particiones windows que tengamos montadas en /mnt a ~/.dosemu/drives
siguiendo la correlación en el nombre de los dispositivos,
e,f,g,h, etc.
|
~/.dosemu/roms |
Es el directorio que
tenemos que crear para ubicar las roms que, mediante el soporte de la
librería proporcionada por el emulador Munt,
proporcionan emulación de sonido nativo MIDI de las tarjetas de sonido Roland CM32L y
MT-32. Las roms las podemos encontrar en múltiples sitios de
internet. En este enlace de la web Abandonsocios
vienen incluidas dentro del paquete de instalación de la
versión de desarrollo de DOSBox para Windows. El paquete
comprimido que contiene las roms se llama Roland.7z, ubicado en la carpeta /DOSBOX/ROMS. El enlace directo al mismo es éste. |
Archivo de
configuración personal
~/.dosemurc |
Es el archivo de configuración personal de DOSEMU
en nuestro home |
Desinstalación
como root
1)
MODO TRADICIONAL
Este programa no tiene soporte para desinstalación con el comando 'make uninstall'
2)
MODO MANUALINUX
dosemu2-2.0pre8-git-25062018-scripts.tar.gz
$ su
# tar zxvf dosemu2-2.0pre8-git-25062018-scripts.tar.gz
# cd dosemu2-2.0pre8-git-25062018-scripts
# ./Desinstalar_dosemu2-2.0pre8-git-25062018 |
Copia de Seguridad
como root
$ su
# tar zxvf dosemu2-2.0pre8-git-25062018-scripts.tar.gz
# cd dosemu2-2.0pre8-git-25062018-scripts
# ./Respaldar_dosemu2-2.0pre8-git-25062018 |
Restaurar la Copia de Seguridad
como root
$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_dosemu2-2.0pre8-git-25062018
|
Configuración de DOSEMU
Éste es un ejemplo del archivo de configuración del programa con los comentarios
traducidos al español.
1) Opciones de CPU: define las características de la CPU para DOSEMU
2) Opciones de disco y sistema de archivos
3) Opciones de memoria
4) Opciones de depuración
5) Modificaciones específicas de Dosemu
6) Opciones relacionadas con la terminal
7) Opciones relacionadas con el teclado
8) Opciones del ratón
9) Configuración del mando de juego
10) Opciones del puerto serie
11) Opciones del puerto paralelo y la impresora
12) Opciones de altavoz y sonido
13) Opciones de red
14) Opciones específicas para el sistema X Window (xdosemu, dosemu -X)
15) Acceso directo al hardware
16) Consola de vídeo
##############################################################################
# Este archivo es el dosemu.conf del sistema o el archivo de usuario ~/.dosemurc,
# incluido con global.conf o dosemu.bin.
#
# ./doc/README.txt (capítulo 2.) contiene una descripción de la sintaxis
# y el uso de dosemu.conf y .dosemurc.
#
# Los valores comentados aquí son los predefinidos, sólo a efectos de documentación
# Las opciones marcadas [priv] no pueden ser cambiadas en ~/.dosemurc.
#
# (opcional) los derechos de acceso se definen en
#
# /etc/dosemu/dosemu.users o /etc/dosemu.users
#
##############################################################################
# Notas para la edición de este archivo:
#
# En $_xxx = (n) n es un valor numérico o booleano
#
= =
# En $_zzz = "s" s es una cadena
#
# ¡Por favor, tenga en cuenta que todas las opciones están comentadas por defecto!
# Suprimir # antes de $ para cambiar una opción.
##############################################################################
## Opciones de CPU: define las características de la CPU para DOSEMU.
# CPU mostrada para DOS, valores válidos: "80[23456]86"
# Predefinido: 80586
$_cpu = "80686"
# Uso de emulación de cpu: "off" ( on por defecto en x86),
# Sólo "vm86" (on por defecto en x86-64) o "full" (vm86 y DPMI, ¡experimental!).
# Usar "vm86sim" o "fullsim" para usar simulación en lugar de generación de código JIT.
# $_cpu_emu = "off"
# si es posible usar contador de ciclos de Pentium para medir el tiempo. Predefinido: off
# Seleccione el modo de virtualización de la cpu.
# "vm86" - usa el modo v86 mediante la llamada al sistema vm86(). Sólo disponible en x86-32.
# "kvm" - usa KVM, máquina virtual en el kernel asistida por hardware.
# "emulated" - usa emulador de CPU.
# "auto" - selecciona lo que funcione
# $_cpu_vm = "auto"
# Seleccione el modo de virtualización de CPU para DPMI.
# "native" - usa LDT nativo mediante la llamada al sistema modify_ldt().
# "kvm" - usa KVM, máquina virtual en el kernel asistida por hardware.
# "emulated" - usa emulador de CPU.
# "auto" - selecciona lo que funcione
# $_cpu_vm_dpmi = "auto"
# $_rdtsc = (off)
# Velocidad de la CPU, usado en combinación con el TSC
# Por defecto 0 = calibrado por dosemu, de forma dada (ej.166.666)
# $_cpuspeed = (0)
# FPU emulada, (off) o (on), por defecto = (on)
# $_mathco = (on)
# 0 = todo la potencia de la CPU para DOSEMU; por defecto = 1 = mejor, cuanto más alto, más potencia de CPU
# $_hogthreshold = (1)
##############################################################################
## Opciones de disco y sistema de archivos
# Lista de hdimages o directorios de inicio dentro de
# ~/.dosemu, el directorio de configuración del sistema (/etc/dosemu por defecto), o
# syshdimagedir (/var/lib/dosemu por defecto) asignado en este orden
# tal como "hdimage_c directory_d hdimage_e"
# También se permiten las rutas de nombres absolutas.
# Si el nombre empieza con '/dev/', entonces el disco entero o partición de acceso es
# aceptado en lugar de la imagen_hdi vitual tal como "/dev/hda", "/dev/hda1" o
# "/dev/hda1:ro" para sólo lectura
#
# Para versiones anteriores de MS-DOS y PC-DOS es posible que desee limitar el tamaño de
# cualquier disco virtual en modo directorio que se presenta como si fuera demasiado grande
# o tiene una geometría no estándar, el sistema operativo puede no reconocerlos.
# Esta opción es útil para forzar FAT12 o FAT16 en comparación con Dosemu
# formato FAT16B normal.
# /path/to/dir:hdtype1 - creates 10mb IBM type1 disk with C/H/S of 306/4/17
# /path/to/dir:hdtype2 - creates 21mb IBM type2 disk with C/H/S of 615/4/17
# /path/to/dir:hdtype9 - creates 117mb IBM type9 disk with C/H/S of 900/15/17
#
# Los dispositivos montados actualmente y la swap son rechazados. Hdimages y los dispositivos pueden
# ser mezclados como "hdimage_c /dev/hda1 /dev/hda3:ro". Predefinido: "drives/*"
# $_hdimage = "drives/*"
# Disqueteras.
# Puede configurarse en el directorio o en el nodo del dispositivo /dev/fdX.
# Opcionalmente, se puede añadir el tipo de dispositivo, como
# "/dev/fd0:threeinch".
# Un directorio puede usarse como un disquete virtual de solo lectura: "floppy_dir:threeinch",
# en cuyo caso $ HOME/.dosemu/floppy_dir se usará como una imagen de disquete.
# Predefinido: "/dev/fd0:threeinch" para A:, "" para B:
# $_floppy_a = "/dev/fd0:threeinch"
# $_floppy_b = ""
# seleccione la unidad de arranque
# Predefinido: "" (lo que significa automático, encuentra la primera unidad de arranque)
# $_bootdrive = ""
# swap controla la forma en que la unidad de arranque se convierte en C
# Necesario para DOSes que no pueden arrancar desde otra cosa que no sea la unidad C.
# Predefinido: off
# $_swap_bootdrive = (off)
# Lista de dispositivos CDROM. Hasta 4 están soportados. Usted puede especificar
# archivos de imagen. Usted necesita cargar cdrom.sys y mscdex/nwcdex/shsucdx.exe.
# Predefinido: "/dev/cdrom"
$_cdrom = "/dev/hdb"
# lista de dispositivos genéricos SCSI que estén disponibles para el driver aspi interno
# (el formato de una entrada es 'device:type:mappedtarget' tal como
# "sg2:WORM sg3:Sequential-Access:6 sg4:CD-ROM" o
# "sg2:4 sg3:1:6 sg4:5" (que es igual). Predefinido: ""
# $_aspi = ""
# si hay que bloquear el archivo completo en las unidades lredired en las peticiones de bloqueo de archivo
# o solamente hay que bloquear un byte
# $_full_file_locks = (off)
# activa/desactiva el soporte de nombres de archivo largos para las unidades lredired;
# por defecto: on
# $_lfn_support = (on)
# config.sys -> config.XXX; predefinido="" o 3 car.,
# $_emusys = ""
##############################################################################
## Opciones de memoria
# tamaño de memoria convencional de DOS, en Kbytes, <= 768.
# Predefinido: 640
# $_dosmem = (640)
# Tamaño de la memoria extendida. Esta memoria es accesible vía int15h y puede ser
# usada por himem.sys y el driver interno XMS.
# Predefinido: 8192
# $_xms = (8192)
# Activa UMB de 64K a 0a0000.
# Aquí reside la memoria de gráficos VGA, lo que habilita este UMB
# lo dejará con modo de texto solamente.
# Predefinido: automático (habilitado solo si dosemu se ejecuta en modo texto)
# $_umb_a0 = (auto)
# Activa UMB de 32K a 0b0000.
# Aquí es donde solía residir la memoria de texto MDA, por lo que algunos programas
# escriben en esa área sin dudarlo. Por lo tanto, es bastante arriesgado
# habilitar este UMB: ¡tenga cuidado incluso de ansi.sys!
# Predefinido: off
# $_umb_b0 = (off)
# Activa UMB de 16K a 0f0000.
# Aquí es donde normalmente reside una BIOS de solo lectura, pero el BIOS de DOSEMU no
# no lo necesita. Algunos (muy pocos) programas confían en que esta memoria sea de solo lectura
# (Prehistórico 2)
# Predefinido: on
# $_umb_f0 = (on)
# Tamaño de EMS (memoria expandida) en Kbytes;
# Aviso: No se recomienda la desactivación de EMS (off). Si se desactiva
# le asignará un espacio UMB adicional de 64K, pero con el efecto lateral
# de que será desactivado el traductor de API de modo de DOS protegido,
# provocando que algunas aplicaciones en modo protegido dejen de funcionar.
# Predefinido: 8192
# $_ems = (8192)
# Segmento de DOS dónde el marco de SME es ubicado.
# Default: 0xe000
# $_ems_frame = (0xe000)
# la cantidad de páginas asignables al EMS en UMA.
# Valores posibles: 0 a 12
# Predefinido: 4
# $_ems_uma_pages = (4)
# la cantidad de páginas asignables al EMS en la memoria convencional.
# Valores posibles: 0 a 24
# Predefinido: 24
# $_ems_conv_pages = (24)
# Tamaño de memoria DPMI en Kbytes; por defecto: 0x5000
# $_dpmi = (0x20000)
# Reserva espacio de direcciones lineales para DPMI.
# Esto es más necesario para que el extensor HX pueda cargar
# binarios win32 no reubicables.
# Especifique la dirección relativa a DOS aquí o auto para reservar
# adyacente a la memoria del DOS.
# Predefinido: auto
# $_dpmi_lin_rsv_base = (auto)
# Tamaño del espacio de direcciones lineales reservado para DPMI.
# Predefinido: 0x8000 (reserva 32Mb)
# $_dpmi_lin_rsv_size = (0x8000)
# Algunos programas compilados DJGPP tienen errores de referencia NULA.
# Pueden funcionar en Windows o QDPMI, ya que lamentablemente no funciona
# prevenir ese tipo de errores.
# Si desea que dosemu actúe correctamente y evite el acceso al puntero NULO,
# desactive esta opción de compatibilidad.
# Predefinido: on
# $_ignore_djgpp_null_derefs = (on)
##############################################################################
## Opciones de depuración
# conmutadores de depuración; el mismo formato que la
opción de línea de comandos -D, Predefinido: ""="-a+cw".
# (pero sin el -D delante), normalmente se escriben en ~/.dosemu/boot.log
# $_debug = "-a+cw"
# qué puertos i/o serán rastreados (sólo se mostrarán si usted usa también -D+T)
# vea $_ports más abajo para la sintaxis
# $_trace_ports = ""
##############################################################################
## Modificaciones específicas de Dosemu
# seleccione la procedencia de la hora del sistema para la emulación RTC. Valores posibles:
# "pit", "bios" y "linux". La procedencia de la hora, "linux", seguirá los cambios de
# tiempo del sistema, pero no permitirá establecer la hora desde DOS.
# La procedencia "bios" es monótona (no seguirá los cambios de tiempo del sistema),
# pero permitirá establecer la hora del sistema desde DOS.
# $_timemode = "bios"
# establezca esto en algún valor positivo (ejemplo. Predefinido: 10)
# si usted va a jugar a Doom o Duke3D con sonido.
# $_cli_timeout = (10)
##############################################################################
## Opciones relacionadas con la terminal
# Codificación de caracteres usada externamente por dosemu
# Predefinido: "" == usa la codificación de caracteres establecida desde las locales o en su lugar:
# "cp437", "cp737", "cp773", "cp775", "cp850", "cp852", "cp857", "cp860",
# "cp861", "cp862", "cp863", "cp864", "cp865", "cp866", "cp869", "cp874",
# "cp1125", "cp1251"
# "iso8859-1", "iso8859-2", "iso8859-3", "iso8859-4", "iso8859-5", "iso8859-6",
# "iso8859-7", "iso8859-8", "iso8859_9", "iso8859-14", "iso8859-15", "koi8-r"
# "koi8-u", "koi8-ru", "utf8"
# $_external_char_set = ""
# Codificación de caracteres usada por los programas de dos
# Predefinido: "" == usa "cp437" o en su lugar:
# "cp437", "cp737", "cp773", "cp775", "cp850", "cp852", "cp857", "cp860",
# "cp861", "cp862", "cp863", "cp864", "cp865", "cp866", "cp869", "cp874",
# "cp895", "cp1125", "cp1251", "bg-mik"
# $_internal_char_set = ""
# terminal con soporte de color. Predefinido: (on)
# $_term_color = (on)
# xterm, títulos de ventana compatibles. Predefinido: %s - DOSEMU
# donde %s es el nombre del programa de DOS. Usar "" para no cambiar el título
# $_xterm_title = "%s - DOSEMU"
# Esquema de adaptador de vídeo usado: uno de: vga, ega, mda, mga, cga, none
# Predefinido: "vga"; none=modo de terminal muda.
# $_video = "vga"
##############################################################################
## Opciones relacionadas con el teclado
# Esquema de teclado: Predefinido: 'auto' (se intentará generá la tabla desde las opciones
# de consola del sistema Linux)
# o uno de: finnish(-latin1), de(-latin1), be, it, us, uk, dk(-latin1),
# keyb-no, no-latin1, dvorak, pl, po, sg(-latin1), fr(-latin1), sf(-latin1),
# es(-latin1), sw, hu(-latin2), hu-cwi, keyb-user, hr-cp852, hr-latin2,
# cz-qwerty, cz-qwertz, ru, tr.
# $_layout = "auto"
# desviación normal de entrada del teclado en la consola Linux, quizá peligroso.
# Predefinido: (auto), usar sólo con -s o -k, o (0): off, usar -k, o (1): on.
# $_rawkeyboard = (auto)
# 30 == Ctrl-^ (Ctrl-6 en teclados US), prefijo de secuencia especial para las terminales
# usar Ctrl-^ h para la ayuda
# $_escchar = (30)
##############################################################################
## Opciones del ratón
# Usar el driver de ratón interno. Por defecto = (on).
# $_mouse_internal = (on)
# Protocolo del ratón: uno de (microsoft, mousesystems, logitech, mmseries,
# mouseman, hitachi, busmouse, ps2, imps2).
# Predefinido: "ps2"
# $_mouse = "ps2"
# Si tiene la intención de utilizar un ratón de puerto serie dedicado a dosemu,
# configúrelo como "comX" en lugar de "/dev/ttySx" porque el puerto serie necesita un
# módulo especial de ratón.
# "" significa: no lea el dispositivo del ratón directamente (sin ratón)
# console "$ _graphics = (1)" modo, pero GPM aún se puede usar en otros modos).
# Predefinido: "/dev/input/mice"
# $_mouse_dev = ""
# Predefinido: "" o uno o más de: "emulate3buttons cleardtr"
# $_mouse_flags = ""
# velocidad en baudios, Predefinido: 0 == no ajustar
# $_mouse_baud = (0)
##############################################################################
## Configuración del mando de juego
# Dispositivos joystick 1 y 2
# ejemplo. "/dev/js0" o Predefinido: "/dev/js0 /dev/js1"
# (o "" si usted no desea soporte de joystick)
# $_joy_device = "/dev/js0 /dev/js1"
# rango para la lectura de los ejes del joystick, debe ser > 0, Predefinido: 1
# $_joy_dos_min = (1)
# evitar las opciones de máximo a > 250, Predefinido: 150
# $_joy_dos_max = (150)
# el más alto, el menos sensible - útil si usted tiene un joystick tambaleante.
# default: 1
# $_joy_granularity = (1)
# el retardo entre las lecturas no bloqueantes del joystick linux incremente el rendimiento si >0
# y el procesador>=Pentium recomendado: 1-50ms o 0 si no está seguro. Predefinido: 1
# $_joy_latency = (1)
##############################################################################
## Opciones del puerto serie
# Nota: todos los "/dev/ttyXX" pueden ir precedidos del sufijo con el IRQ
# utilizado (en lugar del valor predefinido), como "/dev/ttyS2 irq 5"
# o "/dev/ttyS3 irq 9". Predefinido: ""
#
# La palabra clave "low_latency" se puede usar para cambiar el uart a modo low_latency.
# Esto puede ser necesario para que el control de flujo de software (XOFF) funcione correctamente.
# No es compatible con la mayoría de los controladores de uart y ralentiza la transferencia.
#
# La palabra clave "pseudo" se puede usar para forzar el modo pseudo-TTY.
# Una forma incorrecta pero rápida de eludir el control de flujo de hardware.
#
# La palabra clave "rtscts" se puede usar como una forma incorrecta pero rápida de aplicar
# el control de flujo de hardware.
#
# La palabra clave "virtual" se puede utilizar para redirigir el puerto COM a la terminal.
# Una forma incorrecta pero rápida para que el sysop juegue sus juegos de puertas BBS localmente.
#
# La palabra clave "mouse" habilita la emulación de ratón de puerto serie en el puerto especificado.
# A continuación, puede utilizar un controlador de ratón nativo, como mouse.com. Esto usualmente
# no es lo que desea: mejor suerte con la opción $ _mouse_dev anterior.
#
# La palabra clave "vmodem" habilita la emulación de módem en el puerto especificado.
# A continuación, puede marcar las direcciones IP, que establecerán la conexión telnet.
#
# $_com1 = ""
# $_com2 = ""
# $_com3 = ""
# $_com4 = ""
# $_com5 = ""
# $_com6 = ""
# $_com7 = ""
# $_com8 = ""
# $_com9 = ""
# $_com10 = ""
# $_com11 = ""
# $_com12 = ""
# $_com13 = ""
# $_com14 = ""
# $_com15 = ""
# $_com16 = ""
# directorio de bloqueo de tty. Una cadena vacía "" significa sin bloqueos de tty.
# Predefinido: "/var/lock"
# $_ttylocks = "/var/lock"
##############################################################################
## Opciones del puerto paralelo y la impresora
# Comandos de impresión a utilizar para LPT1, LPT2 y LPT3.
# Predefinido: "lpr -l", "lpr -l -P lpt2", y "" (desactivado)
# Que significa: utilizar la cola de impresión predefinida para LPT1, "lpt2" cola para LPT2.
# "-l" significa modo de impresión crudo (sin preprocesado).
# $_lpt1 = "lpr -l"
# $_lpt2 = "lpr -P cups-pdf"
# $_lpt3 = ""
# $_lpt4 = ""
# $_lpt5 = ""
# $_lpt6 = ""
# $_lpt7 = ""
# $_lpt8 = ""
# $_lpt9 = ""
# tiempo de retardo en segundos antes de la salida de impresión. Predefinido: (20)
# $_printer_timeout = (20)
##############################################################################
## Opciones de altavoz y sonido
# altavoz: Predefinido: "emulated", o "native" (sólo consola) o "" (off)
# $_speaker = "emulated"
# soporte de sonido
# $_sound = (on)
# (¡emulado!) Sound Blaster base puerto i/o, Predefinido: (0x220)
# $_sb_base = (0x220)
# Opciones de IRQ de Sound Blaster, por defecto: (5)
# $_sb_irq = (5)
# Opciones de canal DMA de 8 bits de Sound Blaster, por defecto: (1)
# $_sb_dma = (1)
# Opciones de canal DMA de 16 bits de Sound Blaster, por defecto: (5)
# $_sb_hdma = (5)
# Dispositivo de sonido, por defecto: "/dev/dsp"
# $_sb_dsp = "/dev/dsp"
# Dispositivo mezclador de sonido, por defecto: ""; usar "/dev/mixer" si usted le permite a dosemu
# los cambios de volumen
# $_sb_mixer = ""
# Puerto i/o de base MPU-401
# $_mpu_base = (0x330)
# Modo de sintetizador MIDI
# Valores soportados: "gm", "mt32"
# Predefinido: "gm"
# $ _midi_synth = "gm"
# MPU-401 irq para el modo de sintetizador GM
# Predefinido: auto (que es igual a $ _sb_irq)
# $ _mpu_irq = (auto)
# MPU-401 irq para el modo de sintetizador mt32
# Predefinido: 2
# $ _mpu_irq_mt32 = (2)
# Controlador de salida de sonido.
# Controladores admitidos: ao, sdl (si está compilado)
# Predefinido: "" (que significa automático)
# $ _sound_driver = ""
# Controladores de salida MIDI.
# Lista de controladores MIDI separados por comas para activar.
# Controladores soportados:
# fluid, timidity, munt, alsa_midi, oss_midi, pipe_midi
# Predefinido: "" (que significa automático)
# Nota: si usa la opción $ _wav_file para grabar el sonido y desea
# el midi renderizado también se grabará allí, debe seleccionar
# ya sea "fluid" o "timidity" aquí. Desafortunadamente, la mayoría de
# versiones de fluidsynth y timidity son incompatibles con dosemu.
# $ _midi_driver = ""
# Ruta ROM de munt.
# Ruta para crear archivos ROM.
# Predefinido: "roms" (que significa ~/.dosemu/roms)
# $ _munt_roms = "roms"
##############################################################################
## Opciones de red
# Activa el controlador de paquetes interno. Predefinido: on
# $_pktdriver = (on)
# Tipo de red virtual. "eth" para acceso exclusivo a NIC, "tap" para
# usar el dispositivo virtual TAP, o "vde" si desea usar VDE
# como modulo para redes DOSemu (esto le proporcionará un
# acceso a internet que funciona fuera de caja, suponiendo que tiene slirp
# instalado en su sistema).
# NOTA: los métodos "eth" y "tap" requieren privilegios de root.
# El método "eth" está en desuso.
# Predefinido: "" (automático)
# $_vnet = ""
# Dispositivo de red para el controlador de paquetes en modo "eth".
# Predefinido: "eth1"
# $_ethdev = "eth1"
# Dispositivo de red para el controlador de paquetes en modo "tap".
# Predefinido: "" (asignación dinámica de TAP)
# $ _tapdev = ""
# vdeswitch nombre del socket para el controlador de paquetes en modo "vde".
# Si se especifica una cadena vacía, dosemu intentará configurar el interruptor VDE
# automáticamente
# Predefinido: ""
# $ _vdeswitch = ""
# argumentos adicionales para slirpvde. Consulte "man slirpvde" para más detalles.
# Predefinido: "--dhcp"
# $ _slirpargs = "--dhcp"
# usar modificación Novell 802.3. Predefinido: off
# $_novell_hack = (off)
# NOTA: IPX requiere de privilegios de root a menos que usted haya ajustado /proc/net/ipx_route
# de antemano.
# Predefinido: (off)
# $_ipxsupport = (off)
# Dirección de red IPX a utilizar. Una de las que estén listadas en /proc/net/ipx/interface.
# Dirección 0 significa usar la red de interfaz primaria, si existe, a la que estará vinculada.
# Predefinido: 0
# $_ipx_network = (0)
##############################################################################
## Configuración para X Window System (xdosemu, dosemu -X)
## Algunos se aplican al controlador SDL (dosemu -S) también.
# Título en la barra superior de la ventana. Predefinido = "DOSEMU2"
# $ _X_title = "DOSEMU2"
# Mostrar el nombre de la aplicación que está corriendo
en el título de la barra de la ventana. Predefinido: on
# $_X_title_show_appname = (on)
# Texto para el icono, cuando esté minimizado. Por defecto = "xdosemu"
# $_X_icon_name = "xdosemu"
# Iniciar DOSEMU en modo de pantalla completa. Por defecto = "off"
# $_X_fullscreen = (off)
# on==traduce el teclado mediante el uso del mapa del teclado de dosemu, o 'off' o 'auto'. Predefinido:auto
# $_X_keycode = (auto)
# velocidad del parpadeo del cursor
# $_X_blinkrate = (12)
# nombre de la fuente X para ser utilizada (ejemplo. "vga") por defecto = "" (fuentes de mapa de bits)
# $_X_font = ""
# Usar extensiones de memoria compartida. Muy rápido, pero problemático con X remoto.
# Predefinido: on
# $_X_mitshm = (on)
# compartir el mapa de color con otras aplicaciones. Predefinido: off
# $_X_sharecmap = (off)
# Establecer un aspecto fijo para el redimensionado de los gráficos de la ventana. Predefinido: on
# $_X_fixed_aspect = (on)
# Utilizar siempre una razón de aspecto de 4:3 para los gráficos. Predefinido: off
# $_X_aspect_43 = (off)
# Utilizar un filtrado lineal para la interpolación >15 bpp. Predefinido: off
# $_X_lin_filt = (off)
# Utilizar un filtrado bilineal para la interpolación >15 bpp. Predefinido: off
$_X_bilin_filt = (off)
# factor de tamaño inicial para el modo de vídeo 0x13 (320x200)
# $_X_mode13fact = (2)
# "x,y" o tamaño inicial de las ventanas (defaults to ""=flotante)
# $_X_winsize = ""
# corrección de gamma. Predefinido: 1.0
$_X_gamma = (1.5)
# tamaño (en Kbytes) del frame buffer para la emulación vga. Predefinido: 4096
# $_X_vgaemu_memsize = (4096)
# usar un frame buffer lineal en los modos VESA. Predefinido: on
# $_X_lfb = (on)
# usar interfaz de modo protegido para los modos VESA. Default: on
# $_X_pm_interface = (on)
# Nombre KeySym para activar la captura del ratón, ""=off. Predefinido: "Home" (ctrl+alt+inicio)
# $_X_mgrab_key = "Home"
# Lista de los modos vesa para añadir. La lista tieene que contener ESPACIOS separados-
# "xres,yres" en parejas, como los siguientes: "xres,yres ... xres,yres". Predefinido: ""
# $_X_vesamode = ""
# pausar xdosemu si pierde el enfoque
# $_X_background_pause = (off)
## Configuración específica para el controlador de video SDL (dosemu -S)
# Usar renderizado asistido por GPU.
# Predefinido: apagado (todavía tenemos problemas con la aceleración HW)
# $ _SDL_hwrend = (apagado)
##############################################################################
## Acceso directo al hardware
# NOTA:las opciones siguientes marcadas con [priv] sólo son válidas en el archivo
# dosemu.conf del sistema y no pueden ser cambiadas con ~/.dosemurc.
# Para que estas opciones tengan efecto, DOSEMU tiene que ejecutarse con privilegios de root;
# ya sea corriendo como root, vía sudo o suid con modificación en el archivo dosemu.users,
# y usando el conmutador -s.
# [priv] lista de números de puertos como "0x1ce 0x1cf 0x238" o
# "0x1ce range 0x280,0x29f 310" o "range 0x1a0,(0x1a0+15)". Predefinido: ""
# $_ports = "device /dev/null fast 0x200"
# $_ports = $_ports, " device /dev/lp0 range 0x378 0x37a"
# El espacio en blanco es importante
# "device" significa: si el puerto está registrado, abre este dispositivo para bloquear el
# acceso. La apertura tiene que haberse realizado o el acceso a los puertos será denegado.
# Si usted sabe lo que está haciendo, utilice /dev/null para simular un dispositivo a bloquear.
# $_ports = ""
# [priv] lista de números de IRQ (2-15) a pasarle a DOS como "3 8 10".Predefinido: ""
# Esto no funciona en x86-64.
# $_irqpassing = ""
# [priv] memoria de DOS a mapear de forma directa: lista de segmentos de valores/rangos como
# "0xc8000 range 0xcc000,0xcffff". Predefinido: ""
# $_hardware_ram = ""
# [priv] (on): dar acceso al espacio de configuración PCI.
# (auto): restrictivo, el acceso principalmente emulado si la tarjeta de vídeo lo requiere.
# Predefinido: (auto)
# $_pci = (auto)
##############################################################################
## Consola de vídeo
# Las opciones siguientes se aplican directamente en la consola de vídeo (no en X)
# Muchas son privilegiadas, y requieren de suid/sudo/root y el conmutador -s.
# usar video de 'consola' (acceso directo a ram de video). Predefinido:
# (automático): úselo solo si KMS no está activo
# $ _console = (auto)
# usar el BIOS de las tarjetas para establecer los gráficos y permitir el acceso directo al puerto de E/S.
# Predefinido: (automático): úselo solo si KMS no está activo
# $ _graphics = (auto)
# [priv] ejecutar el BIOS de la tarjeta VGA de rutina de inicialización (muchas tarjetas no
# necesitan esto). Predefinido: (0)
# $_vbios_post = (0)
# [priv] ajustar la dirección de su VBIOS (ejemplo. 0xc000, 0xe000).
# Predefinido: (0)=autodetectar.
# $_vbios_seg = (0)
# [priv] ajustar el tamaño de su BIOS (ejemplo. 0x10000, 0x8000).
# Predefinido: (0)=autodetectar.
# $_vbios_size = (0)
# [priv] cantidad en K de RAM (real) de video para guardar/restaurar
# cuando se conmute entre las consolas virtuales. (auto) significa toda la RAM de vídeo,
# que puede tornarse *muy* largo si usted tiene mucha memoria de vídeo.
# (off) significa que no se guardará ninguna RAM de vídeo.
# Predefinido: 4096
# $_vmemsize = (4096)
# [priv] chipset real: uno de: plainvga, svgalib o vesa.
# svgalib sólo está disponible si ha sido compilado
# "vesa"probablemente funcione, si no, pruebe "plainvga". Predefinido: "vesa"
# $_chipset = "vesa"
# [priv] si usted tiene más de un monitor (2 monitores)
# $_dualmon = (0)
|
Impresión con DOSEMU
Añado esta información adicional sobre el uso de la tarea de imprimir con DOSEMU,
porque la explicación del archivo de configuración es
poco clara. Abrimos una ventana de terminal y ejecutamos el siguiente
comando:
[jose@localhost ~]$ lpstat -p
la impresora HP_Deskjet_F4200_series_USB_CN8862F1R305C3_HPLIP
está inactiva. activada desde lun 04 oct 2010 21:56:33 CEST
|
Una vez que tenemos el nombre de la impresora, lo añadimos (lo
que está en rojo) en la sección correspondiente del
archivo de configuración de DOSEMU.
##############################################################################
## Opciones del puerto paralelo y la impresora
# Comandos de impresión a utilizar para LPT1, LPT2 y LPT3.
# Predefinido: "lpr -l", "lpr -l -P lpt2", y "" (desactivado)
# Que significa: utilizar la cola de impresión predefinida para LPT1, "lpt2" cola para LPT2.
# "-l" significa modo de impresión crudo (sin preprocesado).
$_lpt1 = "lpr -P HP_Deskjet_F4200_series_USB_CN8862F1R305C3_HPLIP"
# $_lpt2 = "lpr -l -P lpt2"
# $_lpt3 = ""
# tiempo de retardo en segundos antes de la salida de impresión. Predefinido: (20)
# $_printer_timeout = (20)
############################################################################## |
Y ya podremos imprimir desde cualquier programa de MSDOS que vayamos a utilizar con DOSEMU.
Solucionar problemas de ejecución de DOSEMU
1)
LOWRAM mmap: Argumento inválido
Si al ejecutar el comando xdosemu, el programa no se inicia y se muestra este mensaje en la terminal (en el caso de que lo hagamos desde una terminal):
[jose@localhost ~]$ xdosemu
LOWRAM mmap: Argumento inválido
Violación de segmento
|
Tendremos que ejecutar el siguiente comando antes de ejecutar el programa:
$ su -c "echo 0 > /proc/sys/vm/mmap_min_addr" |
Para hacer esto permanente y evitar el engorro de tener que hacerlo cada vez que iniciemos DOSEMU, abrimos como root, el archivo /etc/sysctl.conf con un editor de texto y añadimos al final del mismo el parámetro que está en color rojo. Un ejemplo:
# Kernel sysctl configuration file for Mandriva Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.
# Disables IP dynaddr
net.ipv4.ip_dynaddr = 0
# Disable ECN
net.ipv4.tcp_ecn = 0
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Controls the System Request debugging functionality of the kernel
#kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
# If you set this variable to 1 then cd tray will close automatically when the
# cd drive is being accessed. Setting this to 1 is not advised as it has been
# known to cause problems when supermount is enabled.
dev.cdrom.autoclose=0
# removed to fix some digital extraction problems
# dev.cdrom.check_media=1
# to be able to eject via the device eject button (magicdev)
dev.cdrom.lock=0
net.ipv4.icmp_ignore_bogus_error_responses=0
net.ipv4.conf.all.rp_filter=0
net.ipv4.icmp_echo_ignore_broadcasts=0
net.ipv4.icmp_echo_ignore_all=0
net.ipv4.conf.all.log_martians=0
kernel.sysrq=1
vm.mmap_min_addr = 0
|
Crear scripts de ejecución de aplicaciones de MSDOS
Para integrar de la manera más natural posible en nuestro sistema, las aplicaciones de MSDOS que ejecutemos con DOSEMU,
lo mejor es crear scripts de ejecución que nos permitan acceder
de forma directa a estas aplicaciones sin pasar por la ventana del
emulador, y así poder tener acceso de forma directa en los
menús de aplicaciones de los entornos gráficos o iconos
de escritorio, barras de iconos, etc. Es conveniente que los scripts
los ubiquemos en el directorio bin de nuestro home, si no existe lo crearemos, además de editar el archivo de configuración personal, ~/.bashrc, para añadir la nueva ruta de binarios a nuestro PATH.
1) Comprobar que el directorio /home/usuario/bin lo tenemos en nuestro PATH
Abrimos una ventana de terminal y ejecutamos el siguiente comando:
[jose@Fedora-18 ~]$ echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/jose/bin
|
Si no aparece entre las rutas mostradas el directorio /home/usuario/bin, editamos el archivo de configuración personal, ~/.bashrc, si no existe lo creamos, y añadimos lo siguiente al final del mismo:
export
PATH:$HOME/bin:$PATH
|
2) Comprobar que la variable de entorno 'XDG_DATA_DIRS' incluye el
directorio /home/usuario/.local/share
Esta variable se aplica para que los archivos desktop
ubicados en un directorio específico del sistema puedan ser
leídos por los menús de entornos
gráficos
como XFce 4, o
paneles como LXPanel o Fbpanel.
Para saberlo basta abrir el menú de aplicaciones en
cualquiera
de los programas antes comentados y comprobar que aparece la entrada
correspondiente a la aplicación tratada en este manual. En el mismo archivo, ~/.bashrc,
añadimos lo que está en rojo:
export
PATH:$HOME/bin:$PATH
export
XDG_DATA_DIRS=/usr/share:/usr/local/share:$HOME/.local/share:$XDG_DATA_DIRS |
3) Crear un script de ejecución de ejemplo del visor de imágenes PictView
Un ejemplo de script con el programa PictView que nos sirve para cualquier aplicación. Abrimos un editor de
texto y añadimos lo siguiente, por ejemplo:
#!/bin/sh
dosemu "/home/jose/msdos/pictview/PICTVIEW.EXE"
|
Lo guardamos con el nombre pictview en /home/usuario/bin, y posteriormente le damos permisos de ejecución.
$ chmod 755 ~/bin/pictview
|
4) Crear un archivo desktop de ejemplo del visor de imágenes PictView
Para que PictView
sea detectado por los menús de entornos gráficos
como XFce 4 o
paneles como LXPanel o Fbpanel, abrimos un editor de texto y añadimos lo siguiente
[Desktop Entry]
Name=PictView
GenericName=PictView
Comment=Un visor de imágenes para MSDOS
Exec=pictview
Icon=dosemu
Categories=Graphics;Viewer;
Type=Application
|
Lo guardamos con la codificación de caracteres UTF-8, y con el nombre pictview.desktop. Luego lo copiamos como usuario a ~/.local/share/applications.
$ mkdir -p ~/.local/share/applications
$ cp pictview.desktop ~/.local/share/applications
|
Y así podemos hacer con cualquier aplicación de MSDOS para integrarla de forma individual en la correspondiente categoría de submenú cuyo esquema Categories=, que es lo único que cambia entre aplicación, podemos encontrar en este enlace.
Iniciamos DOSEMU
Sólo
nos
queda teclear en una terminal
o en un lanzador el comando dosemu,
y el emulador aparecerá en la pantalla:
Si lo ejecutamos con la opción -S utilizaremos SDL para el renderizado gráfico:
Enlaces
http://dosemu.sourcerforge.net >> La web de DOSEMU.
http://stsp.github.io/dosemu2 >> La web de Dosemu2.
Descarga de aplicaciones y juegos freeware y shareware de MSDOS
http://www.resoo.org/docs/dos/free_software/softlib1.htm
http://www.dosgames.com
http://www.hitsquad.com/smm/freeware/dos
http://dennisbareis.com/freedos.htm
http://www.opus.co.tt/dave
|