Copyright
Copyright © José
Luis Lara Carrascal 2011-2024
Sumario
Introducción
Módulo VHBA
LibMirage
Traducción al español de Libmirage
CDEmu daemon
Traducción al español de CDEmu daemon
CDEmu client
Traducción al español de CDEmu client
Ejemplos de uso de CDEmu client
gCDEmu
Traducción al español de gCDEmu
Configurar el inicio de gCDEmu
Iniciamos gCDEmu
Enlaces
Introducción
CDEmu es una
suite de software diseñada para emular una unidad óptica
y el disco (incluyendo CD-ROM y DVD-ROM) en el sistema operativo GNU/Linux. Para los usuarios provenientes de Windows, es el equivalente a las famosas DAEMON Tools,
que permiten crear unidades de CD virtuales y montar todo tipo de
imágenes de disco, evitando tener que grabarlas, con el ahorro
que supone para el usuario, en la compra de discos de CD o DVD. Junto
al manual se incluyen las traducciones al español de CDEmu client y gCDEmu.
Módulo VHBA
Es el encargado de proveer un adaptador de bus anfitrión virtual
(SCSI), que es el vínculo entre el demonio del espacio de
usuario y el kernel.
Instalación
Dependencias
Herramientas
de Compilación
Entre paréntesis la
versión con la que se ha compilado VHBA
para la elaboración de este documento.
* GCC - (14.2.0) o Clang - (19.1.0)
* Make - (4.4.1)
Librerías
de Desarrollo
* Código fuente del kernel - (6.11.0-ml)
Descarga
vhba-module-20240917.tar.xz
Extracción y Configuración
$ tar Jxvf vhba-module-20240917.tar.xz
$ cd vhba-module-20240917
$ sed -i 's:-Werror::' Makefile
|
Explicación
de los comandos
sed -i 's:-Werror::' Makefile : Evita que los avisos sean tratados como errores en el proceso de compilación.
Compilación
Instalación como root
$ su
# make install
# modprobe vhba; lsmod | grep vhba |
Configuración del
inicio del módulo VHBA
1) OpenMandriva, Mageia y PCLinuxOS
Abrimos una ventana de terminal y ejecutamos lo siguiente:
$ su -c "echo vhba > /etc/modprobe.preload.d/vhba" |
2) Fedora
Abrimos un editor de texto y añadimos lo siguiente:
#!/bin/sh
echo -n "Cargando módulo VHBA..."
if /sbin/modprobe vhba
then
echo "OK"
else
echo "FALLÓ"
fi |
Lo guardamos con el nombre vhba.modules, y lo instalamos como root en /etc/sysconfig/modules.
$ su -c "install -m755 vhba.modules /etc/sysconfig/modules"
|
3) Slackware y derivados
Abrimos con un editor de texto, como root, el archivo /etc/rc.d/rc.local, y añadimos lo que está en rojo:
#!/bin/sh
#
# /etc/rc.d/rc.local: Local system initialization script.
#
# Put any local startup commands in here. Also, if you have
# anything that needs to be run at shutdown time you can
# make an /etc/rc.d/rc.local_shutdown script and put those
# commands in there.
# Ufw
if [ -x /etc/init.d/ufw ]; then
/etc/init.d/ufw start
fi
# VHBA
/sbin/modprobe vhba
|
4) Debian y derivados
Abrimos con un editor de texto, como root, el archivo /etc/modules, y añadimos lo que está en rojo:
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
vhba |
5) OpenSUSE
Abrimos una ventana de terminal y ejecutamos lo siguiente:
$ su -c "echo vhba > /etc/modules-load.d/vhba.conf" |
6) Crear
una regla para Udev para establecer correctamente los permisos de
lectura y escritura para los usuarios del grupo "cdrom" en /dev/vhba_ctl
Abrimos un editor de texto, como root y añadimos lo siguiente:
KERNEL=="vhba_ctl", MODE="0660", OWNER="root", GROUP="cdrom" |
Lo guardamos con el nombre 60-vhba.rules, y lo instalamos como root en /etc/udev/rules.d. Tendremos que reiniciar el sistema para que estas reglas sean efectivas.
$ su
# mkdir -p /etc/udev/rules.d
# install -m644 60-vhba.rules /etc/udev/rules.d |
Comprobamos también que nuestro nombre de usuario, está incluido en el grupo "cdrom".
[root@localhost ~]# groupmems -g cdrom -l
jose
|
Si no es así, ejecutamos el siguiente comando:
# groupmems -g cdrom -a jose
|
Donde pone jose, poner el nombre de usuario de cada uno.
LibMirage
Librería de acceso a imágenes de CD-ROM, con soporte de los siguientes formatos de imagen: B6T, C2D, CCD, CDI, CIF, CUE, DAA, ISO, MDS, NRG y TOC.
Instalación
Dependencias
Herramientas
de Compilación
Entre paréntesis la
versión con la que se ha compilado LibMirage
para la elaboración de este documento.
* GCC - (14.2.0)
* CMake - (3.30.3)
* Make - (4.4.1)
* Intltool - (0.51.0)
* Gettext - (0.22.5)
* Pkg-config - (0.29.2)
* GTK-Doc - (1.33.2)
* GObject Introspection - (1.74.0)
* Vala - (0.56.17)
Librerías
de Desarrollo
* GLib - (2.74.7)
* Libbzip2 - (1.0.8)
* Libsamplerate - (0.2.2)
* Libsndfile - (1.2.2)
* XZ Utils - (5.6.2)
* Zlib - (1.3.1)
Descarga
libmirage-3.2.9.tar.xz
Optimizaciones
$ export {C,CXX}FLAGS='-O3 -march=znver3 -mtune=znver3'
|
Donde pone znver3 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. |
x86-64-v2 |
Procesador genérico con con soporte de instrucciones X86-64 (MMX, SSE, SSE2, LAHFSAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3) y extensiones 64-bit. Esta opción está disponible a partir de GCC 11. |
x86-64-v3 |
Procesador genérico con con soporte de instrucciones X86-64 (MMX, SSE, SSE2, LAHFSAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3, AVX, AVX2, F16C, FMA, LZCNT, MOVBE, XSAVE, XSAVEC, FMA4) y extensiones 64-bit. Esta opción está disponible a partir de GCC 11. |
x86-64-v4 |
Procesador genérico con con soporte de instrucciones X86-64 (MMX, SSE, SSE2, LAHFSAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3, AVX, AVX2, F16C, FMA, LZCNT, MOVBE, XSAVE, XSAVEC, AVX512*, FMA4) y extensiones 64-bit. Esta opción está disponible a partir de GCC 11. |
Intel |
alderlake |
Intel Alderlake con soporte de instrucciones x86-64 (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, CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VNNI, AVX512BF16, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT, ENQCMD, CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK, UINTR, AMX-BF16, AMX-TILE, AMX-INT8, AVX-VNNI) y extensiones 64-bit. Esta opción está disponible a partir de GCC 11. |
arrowlake |
Intel Arrow Lake con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI, MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI, UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD y extensiones 64-bit. Esta opción está disponible a partir de GCC 14. |
arrowlake-s |
Intel Arrow Lake S con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI, MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI, UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512, SM3, SM4 y extensiones 64-bit. Esta opción está disponible a partir de GCC 14. |
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 opció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. |
cascadelake |
Intel Cascadelake 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, CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VNNI y extensiones 64-bit. Esta opción está disponible a partir de GCC 9. |
clearwaterforest |
Intel Clearwater Forest con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI, MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI, ENQCMD, UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512, SM3, SM4, USER_MSR, PREFETCHI y extensiones 64-bit. Esta opción está disponible a partir de GCC 14. |
cooperlake |
Intel Cooperlake 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, CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VNNI, AVX512BF16 y extensiones 64-bit. Esta opción está disponible a partir de GCC 10. |
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 opci´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 opci´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 opci´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 opci´n sandybridge. |
emeraldrapids |
Intel Emerald Rapids. Esta opción está disponible a partir de GCC 13 y es equivalente a la opción sapphirerapids. |
goldmont |
Intel Goldmont con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE y extensiones 64-bit. Esta opción está disponible a partir de GCC 9. |
goldmont-plus |
Intel Goldmont Plus con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, UMIP y extensiones 64-bit. Esta opción está disponible a partir de GCC 9. |
grandridge |
Intel Grand Ridge con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI, MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, RAOINT y extensiones 64-bit. Esta opción está disponible a partir de GCC 13. |
graniterapids |
Intel Grand Ridge con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE, RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW, AES, CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, PKU, AVX512VBMI, AVX512IFMA, SHA, AVX512VNNI, GFNI, VAES, AVX512VBMI2, VPCLMULQDQ, AVX512BITALG, RDPID, AVX512VPOPCNTDQ, PCONFIG, WBNOINVD, CLWB, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT, ENQCMD, CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK, UINTR, AMX-BF16, AMX-TILE, AMX-INT8, AVX-VNNI, AVX512-FP16, AVX512BF16, AMX-FP16, PREFETCHI y extensiones 64-bit. Esta opción está disponible a partir de GCC 13. |
graniterapids-d |
Intel Granite Rapids D con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE, RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW, AES, CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, PKU, AVX512VBMI, AVX512IFMA, SHA, AVX512VNNI, GFNI, VAES, AVX512VBMI2, VPCLMULQDQ, AVX512BITALG, RDPID, AVX512VPOPCNTDQ, PCONFIG, WBNOINVD, CLWB, MOVDIRI, MOVDIR64B, ENQCMD, CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK, UINTR, AMX-BF16, AMX-TILE, AMX-INT8, AVX-VNNI, AVX512FP16, AVX512BF16, AMX-FP16, PREFETCHI, AMX-COMPLEX y extensiones 64-bit. Esta opción está disponible a partir de GCC 14. |
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. |
lunarlake |
Intel Lunar Lake. Esta opción está disponible a partir de GCC 14 y es equivalente a la opción arrowlake-s. |
meteorlake |
Intel Meteor Lake. Esta opción está disponible a partir de GCC 13. |
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. |
pantherlake |
Intel Panther Lake con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI, MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI, UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512, SM3, SM4, PREFETCHI y extensiones 64-bit. Esta opción está disponible a partir de GCC 14. |
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. |
raptorlake |
Intel Raptor Lake. Esta opción está disponible a partir de GCC 13. |
rocketlake |
Intel Rocket Lake con soporte de instrucciones x86-64 (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 11. |
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. |
sapphirerapids |
Intel Sapphire Rapids con soporte de instrucciones x86-64 (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, CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VNNI, AVX512BF16, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT, ENQCMD, CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK, UINTR, AMX-BF16, AMX-TILE, AMX-INT8, AVX-VNNI) y extensiones 64-bit. Esta opción está disponible a partir de GCC 11. |
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. |
sierraforest |
Intel Sierra Forest con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI, MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD y extensiones 64-bit. Esta opción está disponible a partir de GCC 13. |
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. |
tigerlake |
Intel Tigerlake 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, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT y extensiones 64-bit. Esta opción está disponible a partir de GCC 10. |
tremont |
Intel Tremont con soporte
de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, UMIP, GFNI-SSE, CLWB, ENCLV y extensiones 64-bit. Esta opción está disponible a partir de GCC 9. |
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. |
znver2 |
Procesadores basados en
AMD Family 17h core con soporte de instrucciones x86-64 (BMI, BMI2, CLWB, 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 9. |
znver3 |
Procesadores basados en AMD Family 19h core con soporte de instrucciones x86-64 (BMI, BMI2, CLWB, F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA, CLZERO, AES, PCLMUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, RDPID, WBNOINVD, PKU, VPCLMULQDQ, VAES) y extensiones 64-bit. Esta opción está disponible a partir de GCC 11. |
znver4 |
Procesadores basados en AMD Family 19h core con soporte de instrucciones x86-64 (BMI, BMI2, CLWB, F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA, CLZERO, AES, PCLMUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, RDPID, WBNOINVD, PKU, VPCLMULQDQ, VAES, AVX512F, AVX512DQ, AVX512IFMA, AVX512CD, AVX512BW, AVX512VL, AVX512BF16, AVX512VBMI, AVX512VBMI2, AVX512VNNI, AVX512BITALG, AVX512VPOPCNTDQ, GFNI) y extensiones 64-bit. Esta opción está disponible a partir de GCC 12.3. |
znver5 |
Procesadores basados en AMD Family 1ah core con soporte de instrucciones x86-64 (BMI, BMI2, CLWB, F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA, CLZERO, AES, PCLMUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, RDPID, WBNOINVD, PKU, VPCLMULQDQ, VAES, AVX512F, AVX512DQ, AVX512IFMA, AVX512CD, AVX512BW, AVX512VL, AVX512BF16, AVX512VBMI, AVX512VBMI2, AVX512VNNI, AVX512BITALG, AVX512VPOPCNTDQ, GFNI, AVXVNNI, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT, PREFETCHI) y extensiones 64-bit. Esta opción está disponible a partir de GCC 14. |
Optimizaciones adicionales
Optimizaciones adicionales |
Graphite
|
$ export {C,CXX}FLAGS+=' -ftree-loop-linear -floop-strip-mine -floop-block'
|
IPA
|
$ export {C,CXX}FLAGS+=' -fipa-pta'
|
LTO |
$ export {C,CXX}FLAGS+=' -fuse-linker-plugin -flto=auto' |
En versiones inferiores a GCC
10, sustituir auto
por el número de núcleos que tenga nuestro
procesador. Si sólo tiene uno, utilizar el parámetro -flto
|
Parámetros adicionales
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 -L/opt/gcc14/lib64" |
Cada usuario tendrá
que establecer la ruta de búsqueda de directorios, en
función de la distribución que utilice. |
Establecer el uso de enlazador dinámico para Mold |
$ export LDFLAGS+=' -fuse-ld=mold' |
Extracción y Configuración
$ tar Jxvf libmirage-3.2.9.tar.xz
$ cd libmirage-3.2.9
$ cmake -S. -B build -DCMAKE_INSTALL_PREFIX=/usr -DPOST_INSTALL_HOOKS=OFF |
Explicación
de los comandos
-S . -B build : Establece el directorio del código fuente y crea de forma automática el directorio de compilación.
-DCMAKE_INSTALL_PREFIX=/usr :
Instala la librería en el directorio principal /usr.
-DPOST_INSTALL_HOOKS=OFF :
Impide que el proceso de instalación, actualice los tipos MIME del sistema, cada vez que se instala un archivo nuevo en el directorio /usr/share/mime,
ralentizando de forma considerable dicho proceso. La
actualización la haremos de forma manual, una vez se instale el
paquete.
Compilación
Parámetros de compilación opcionales
VERBOSE=1 : Muestra más información en el proceso de compilación.
-j$(nproc) :
Establece el número de procesos de compilación en
paralelo, en función del número de
núcleos e hilos que tenga nuestro procesador, tomando como
referencia la información mostrada por el sistema con el comando
correspondiente. Si nuestro procesador es mononúcleo de un solo
hilo, no añadir esta opción.
Instalación como root
$ su
# make -C build install/strip
# ldconfig -v
# update-mime-database /usr/share/mime &> /dev/null
|
Borrar las locales adicionales instaladas con la utilidad BleachBit
$ su -c "bleachbit -c system.localizations"
|
Estadísticas de Compilación e Instalación de Libmirage
Estadísticas de Compilación e Instalación de Libmirage |
CPU |
AMD Ryzen 5 5500 |
MHz |
3600 (BoostMax=4457) |
RAM |
32 GB |
Sistema de archivos |
XFS |
Versión del Kernel |
6.11.0-ml SMP PREEMPT_DYNAMIC x86_64 |
Modo de frecuencia de la CPU |
powersave (balance performance) |
Planificador de CPU |
BMQ |
Versión de Glibc |
2.40 |
Enlazador dinámico |
Mold 2.33.0 |
Compilador |
GCC 14.2.0 |
Parámetros de optimización |
-03 -march=znver3
-mtune=znver3 -ftree-loop-linear
-floop-strip-mine -floop-block -fipa-pta -fuse-linker-plugin -flto=auto |
Parámetros de compilación |
VERBOSE=1 -j12 |
Tiempo de compilación |
6" |
Archivos instalados |
100 |
|
Enlaces simbólicos creados |
2 |
|
Ocupación de espacio en disco |
3,0 MB |
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.
libmirage-3.2.9-scripts.tar.gz
$ su
# tar zxvf libmirage-3.2.9-scripts.tar.gz
# cd libmirage-3.2.9-scripts
# ./Desinstalar_libmirage-3.2.9 |
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 libmirage-3.2.9-scripts.tar.gz
# cd libmirage-3.2.9-scripts
# ./Respaldar_libmirage-3.2.9 |
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_libmirage-3.2.9
|
Traducción al español de Libmirage
Descarga
Libmirage_es-ML0.run
Firma Digital
Libmirage_es-ML0.run.asc
Verificar la firma digital del paquete
$ gpg --import manualinux.asc
$ gpg --verify Libmirage_es-ML0.run.asc Libmirage_es-ML0.run |
Instalación
como root
$ su -c "sh Libmirage_es-ML0.run" |
CDEmu daemon
Es el demonio que se ejecuta en el espacio de usuario, controlándose vía D-BUS.
Instalación
Dependencias
Herramientas
de Compilación
Entre paréntesis la
versión con la que se ha compilado CDEmu daemon
para la elaboración de este documento.
* GCC - (14.1.0)
* CMake - (3.30.0)
* Make - (4.4.1)
* Intltool - (0.51.0)
* Gettext - (0.22.5)
* Pkg-config - (0.29.2)
Librerías
de Desarrollo
* D-Bus - (1.14.10)
* GLib - (2.74.7)
* Libao - (1.2.0)
* Libmirage - (3.2.8)
Descarga
cdemu-daemon-3.2.7.tar.xz
Optimizaciones
Optimizaciones adicionales
Optimizaciones adicionales |
Graphite
|
$ export {C,CXX}FLAGS+=' -ftree-loop-linear -floop-strip-mine -floop-block'
|
IPA
|
$ export {C,CXX}FLAGS+=' -fipa-pta'
|
LTO |
$ export {C,CXX}FLAGS+=' -fuse-linker-plugin -flto=auto'
|
En versiones inferiores a GCC
10, sustituir auto
por el número de núcleos que tenga nuestro
procesador. Si sólo tiene uno, utilizar el parámetro -flto
|
Parámetros adicionales
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 -L/opt/gcc14/lib64" |
Cada usuario tendrá
que establecer la ruta de búsqueda de directorios, en
función de la distribución que utilice. |
Establecer el uso de enlazador dinámico para Mold |
$ export LDFLAGS+=' -fuse-ld=mold' |
Extracción y Configuración
$ tar Jxvf cdemu-daemon-3.2.7.tar.xz
$ cd cdemu-daemon-3.2.7
$ cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/usr |
Explicación
de los comandos
-S . -B build : Establece el directorio del código fuente y crea de forma automática el directorio de compilación.
-DCMAKE_INSTALL_PREFIX=/usr :
Instala el programa en el directorio principal /usr.
Compilación
Parámetros de compilación opcionales
Instalación como root
$ su -c "make -C build install/strip" |
Instalar los siguientes
archivos en sistemas que no utilicen Systemd (también son
válidos para los que lo utilicen)
Estos archivos han sido retirados del paquete en las últimas
versiones, dando por hecho, que todo el mundo utiliza Systemd (este
último requiere de la instalación de archivos adicionales
que podemos encontrar en el directorio service-example. Sin la
instalación de estos archivos, CDEmu se vuelve totalmente
inoperativo en sistemas que no utilicen Systemd. El respaldo de estos
archivos se incluye en los scripts proporcionados por este manual.
cdemu-daemon-session.sh | net.sf.cdemu.CDEmuDaemon.service
$ su
# install -dm755 /usr/libexec
# install -m755 cdemu-daemon-session.sh /usr/libexec
# install -m644 net.sf.cdemu.CDEmuDaemon.service /usr/share/dbus-1/services
|
Crear el archivo de configuración personal
El archivo de configuración personal, hay que crearlo de forma manual para poder modificar el número de
unidades virtuales a crear, o el controlador de audio a utilizar por Libao. Los
valores predefinidos son 2 unidades virtuales y PulseAudio, como controlador de audio predefinido de Libao. Abrimos un editor de texto y añadimos lo siguiente:
# Default settings
NUM_DEVICES=2
AUDIO_DRIVER=pulse
LOG_FILE=~/.cdemu-daemon.log |
Lo guardamos con el nombre .cdemu-daemon en nuestro home.
Definición de los elementos del archivo de configuración de CDEmu daemon |
NUM_DEVICES= |
Define el número de
unidades virtuales que se crearán de forma automática en
el inicio del demonio. El número predefinido está en 2. Podemos poner tantas como creamos conveniente. |
AUDIO_DRIVER= |
Define el controlador de audio a utilizar por Libao. Podemos elegir entre alsa, oss, pulse o null. El predefinido es pulse. |
LOG_FILE= |
Define la ruta al archivo de registro de sucesos del demonio. Por defecto, ~/.cdemu-daemon.log |
El archivo de configuración de ejemplo, que utilizaré para el manual es el siguiente:
# Default settings
NUM_DEVICES=4
AUDIO_DRIVER=alsa
LOG_FILE=~/.cdemu-daemon.log |
Crear los puntos de montaje y editar /etc/fstab
Creamos los puntos de montaje necesarios para ubicar las unidades virtuales. En el ejemplo se crean 4 directorios en /media, también se puede utilizar el tradicional /mnt.
$ su -c "mkdir -p /media/{vcd0,vcd1,vcd2,vcd3}"
|
Editamos como root el archivo de configuración /etc/fstab,
y añadimos las correspondientes entradas de los puntos de
montaje creados, configuradas para que apunten a su correspondiente
dispositivo virtual.
none /proc proc defaults 0 0
none /proc/bus/usb usbfs defaults 0 0
none /sys sysfs defaults 0 0
none /tmp tmpfs defaults 0 0
/dev/hda5 swap swap defaults 0 0
/dev/scd1 /media/vcd0 auto user,noauto,ro,noexec 0 0
/dev/scd2 /media/vcd1 auto user,noauto,ro,noexec 0 0
/dev/scd3 /media/vcd2 auto user,noauto,ro,noexec 0 0
/dev/scd4 /media/vcd3 auto user,noauto,ro,noexec 0 0
|
Dejar siempre una línea vacía después de la última entrada añadida en /etc/fstab.
Borrar las locales adicionales instaladas con la utilidad BleachBit
$ su -c "bleachbit -c system.localizations"
|
Estadísticas de Compilación e Instalación de CDEmu daemon
Estadísticas de Compilación e Instalación de CDEmu daemon |
CPU |
AMD Ryzen 5 5500 |
MHz |
3600 (BoostMax=4457) |
RAM |
32 GB |
Sistema de archivos |
XFS |
Versión del Kernel |
6.9.8-ml SMP PREEMPT_DYNAMIC x86_64 |
Modo de frecuencia de la CPU |
powersave (balance performance) |
Planificador de CPU |
BMQ |
Versión de Glibc |
2.39 |
Enlazador dinámico |
Mold 2.32.1 |
Compilador |
GCC 14.1.0 |
Parámetros de optimización |
-03 -march=znver3
-mtune=znver3 -ftree-loop-linear
-floop-strip-mine -floop-block -fipa-pta -fuse-linker-plugin -flto=auto |
Parámetros de compilación |
VERBOSE=1 -j12 |
Tiempo de compilación |
1" |
Archivos instalados |
5 |
|
Ocupación de espacio en disco |
168 KB |
Archivo de configuración personal
~/.cdemu-daemon |
Es el archivo de configuración personal de CDEmu daemon en nuestro home. |
Desinstalación
como root
1) MODO TRADICIONAL
En el directorio de compilación ejecutamos el siguiente comando:
2) MODO MANUALINUX
cdemu-daemon-3.2.7-scripts.tar.gz
$ su
# tar zxvf cdemu-daemon-3.2.7-scripts.tar.gz
# cd cdemu-daemon-3.2.7-scripts
# ./Desinstalar_cdemu-daemon-3.2.7 |
Copia de Seguridad
como root
$ su
# tar zxvf cdemu-daemon-3.2.7-scripts.tar.gz
# cd cdemu-daemon-3.2.7-scripts
# ./Respaldar_cdemu-daemon-3.2.7 |
Restaurar la Copia de Seguridad
como root
$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_cdemu-daemon-3.2.7
|
Traducción al español de CDEmu daemon
Descarga
CDEmu-daemon_es-ML0.run
Firma Digital
CDEmu-daemon_es-ML0.run.asc
Verificar la firma digital del paquete
$ gpg --import manualinux.asc (sólo es necesario si no lo hemos hecho antes)
$ gpg --verify CDEmu-daemon_es-ML0.run.asc CDEmu-daemon_es-ML0.run |
Instalación
como root
$ su -c "sh CDEmu-daemon_es-ML0.run" |
CDEmu client
Es una utilidad de línea de comandos, mediante la cual, podemos controlar CDEmu daemon.
Instalación
Dependencias
Herramientas
de Compilación
Entre paréntesis la
versión con la que se ha instalado CDEmu client
para la elaboración de este documento.
* GCC - (14.1.0)
* CMake - (3.29.4)
* Make - (4.4.1)
* Intltool - (0.51.0)
* Gettext - (0.22.5)
Intérpretes de Lenguaje de Programación
* Python - (3.12.0)
Aplicaciones
* Bash-completion - (2.14.0) - opcional
Descarga
cdemu-client-3.2.5.tar.xz
Extracción y Configuración
$ tar Jxvf cdemu-client-3.2.5.tar.xz
$ cd cdemu-client-3.2.5
$ cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/usr |
Explicación
de los comandos
-S . -B build : Establece el directorio del código fuente y crea de forma automática el directorio de compilación.
-DCMAKE_INSTALL_PREFIX=/usr :
Instala el programa en el directorio principal /usr.
Instalación
como root
$ su -c "make -C build install"
|
Borrar las locales adicionales instaladas con la utilidad BleachBit
$ su -c "bleachbit -c system.localizations"
|
Estadísticas de Instalación de CDEmu client
Estadísticas de Instalación de CDEmu client |
Sistema de archivos |
XFS |
Archivos instalados |
6 |
|
Ocupación de espacio en disco |
144 KB |
Desinstalación
como root
1) MODO TRADICIONAL
En el directorio de compilación ejecutamos el siguiente comando:
2) MODO MANUALINUX
cdemu-client-3.2.5-scripts.tar.gz
$ su
# tar zxvf cdemu-client-3.2.5-scripts.tar.gz
# cd cdemu-client-3.2.5-scripts
# ./Desinstalar_cdemu-client-3.2.5 |
Copia de Seguridad
como root
$ su
# tar zxvf cdemu-client-3.2.5-scripts.tar.gz
# cd cdemu-client-3.2.5-scripts
# ./Respaldar_cdemu-client-3.2.5 |
Restaurar la Copia de Seguridad
como root
$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_cdemu-client-3.2.5
|
Traducción al español de CDEmu client
Descarga
CDEmu-client_es-ML0.run
Firma Digital
CDEmu-client_es-ML0.run.asc
Verificar la firma digital del paquete
$ gpg --import manualinux.asc (sólo es necesario si no lo hemos hecho antes)
$ gpg --verify CDEmu-client_es-ML0.run.asc CDEmu-client_es-ML0.run |
Instalación
como root
$ su -c "sh CDEmu-client_es-ML0.run" |
Ejemplos de uso de CDEmu client
1) Cargar un archivo de imagen en la primera unidad virtual
$ cdemu load 0 VL7.0-STD-RC2.1.iso |
2) Cargar un archivo de imagen en la primera unidad virtual que esté disponible
$ cdemu load any VL7.0-STD-RC2.1.iso |
3) Cargar varios archivos de imagen (TOC) en la primera unidad virtual (ejemplo extraído de la página de manual del programa)
$ cdemu load 0 ~/session1.toc ~/session2.toc ~/session3.toc |
4) Cargar un archivo de imagen cifrado (DAA) en la primera unidad virtual (ejemplo extraído de la página de manual del programa)
$ cdemu load 0 ~/image.daa --password=estoyencrisis |
5) Comprobar el estado de los dispositivos
[jose@localhost ~]$ cdemu status
Estado de los dispositivos:
DEV CARGADO ARCHIVO
0 1 /home/jose/VL7.0-STD-RC2.1.iso
1 0
2 0
3 0 |
6) Descargar el archivo de imagen de la primera unidad virtual
7)
Añadir un nuevo dispositivo virtual
8)
Suprimir el último dispositivo virtual creado
gCDEmu
Una interfaz gráfica, desde la cual, podremos controlar el uso de CDEmu daemon, sin necesidad de tener que recurrir a la línea de comandos.
Instalación
Dependencias
Herramientas
de Compilación
Entre paréntesis la
versión con la que se ha instalado gCDEmu
para la elaboración de este documento.
* GCC - (14.1.0)
* CMake - (3.29.4)
* Make - (4.4.1)
* Intltool - (0.51.0)
* Gettext - (0.22.5)
Librerías
* GTK+ - (3.24.42)
* Libnotify - (0.8.3)
* PyGobject - (3.42.2)
Intérpretes de Lenguaje de Programación
* Python - (3.12.3)
Aplicaciones
* Magick (ImageMagick) - (7.1.1-33) [1]
[1] Requerido para poder crear los iconos en formato PNG del archivo desktop.
Descarga
gcdemu-3.2.6.tar.xz
Extracción y Configuración
$ tar Jxvf gcdemu-3.2.6.tar.xz
$ cd gcdemu-3.2.6
$ cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/usr .. |
Explicación
de los comandos
-S . -B build : Establece el directorio del código fuente y crea de forma automática el directorio de compilación.
-DCMAKE_INSTALL_PREFIX=/usr :
Instala el programa en el directorio principal /usr.
Compilación
Instalación
como root
$ su
# make -C build install
# for i in /usr/share/icons/hicolor ; do \
install -dm755 $i/{16x16,24x24,32x32,48x48,64x64,scalable}/apps ; \
install -m644 data/gcdemu.svg $i/scalable/apps ; \
magick data/gcdemu.svg -resize 64 -background transparent $i/64x64/apps/gcdemu.png ; \
magick data/gcdemu.svg -resize 48 -background transparent $i/48x48/apps/gcdemu.png ; \
magick data/gcdemu.svg -resize 32 -background transparent $i/32x32/apps/gcdemu.png ; \
magick data/gcdemu.svg -resize 24 -background transparent $i/24x24/apps/gcdemu.png ; \
magick data/gcdemu.svg -resize 16 -background transparent $i/16x16/apps/gcdemu.png ; \
gtk-update-icon-cache -tf $i &> /dev/null ; \
done
|
Explicación
de los comandos
for i in /usr/share/icons/hicolor.....
: Crea e instala los iconos del programa, en sus diferentes
medidas compatibles con el estándar de tamaño de icono de
freedesktop.org.
Borrar las locales adicionales instaladas con la utilidad BleachBit
# bleachbit -c system.localizations
|
Estadísticas de Instalación de gCDEmu
Estadísticas de Instalación de gCDEmu |
Sistema de archivos |
XFS |
Archivos instalados |
13 |
|
Ocupación de espacio en disco |
276 KB |
Consumo inicial de CPU y RAM de gCDEmu
Consumo inicial de CPU y RAM de gCDEmu |
Programa
|
CPU |
RAM |
gcdemu |
0 % |
131,0 MB |
cdemu-daemon |
0 % |
12,2 MB |
TOTAL |
0 % |
143,2 MB |
Para medir el consumo de CPU se utiliza el programa top, y para medir
el consumo de RAM se utiliza el script de Python, ps_mem.py, creado por Pádraig Brady, que podemos encontrar en este enlace. |
Desinstalación
como root
1) MODO TRADICIONAL
En el directorio de compilación ejecutamos el siguiente comando:
2) MODO MANUALINUX
gcdemu-3.2.6-scripts.tar.gz
$ su
# tar zxvf gcdemu-3.2.6-scripts.tar.gz
# cd gcdemu-3.2.6-scripts
# ./Desinstalar_gcdemu-3.2.6 |
Copia de Seguridad
como root
$ su
# tar zxvf gcdemu-3.2.6-scripts.tar.gz
# cd gcdemu-3.2.6-scripts
# ./Respaldar_gcdemu-3.2.6 |
Restaurar la Copia de Seguridad
como root
$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_gcdemu-3.2.6
|
Traducción al español de gCDEmu
Descarga
gCDEmu_es-ML0.run
Firma Digital
gCDEmu_es-ML0.run.asc
Verificar la firma digital del paquete
$ gpg --import manualinux.asc (sólo es necesario si no lo hemos hecho antes)
$ gpg --verify gCDEmu_es-ML0.run.asc gCDEmu_es-ML0.run |
Instalación
como root
$ su -c "sh gCDEmu_es-ML0.run" |
Configurar
el inicio de gCDEmu
El programa requiere que el entorno gráfico en cuestión
tenga soporte de bandeja de sistema. En aquellos que no lo tienen
tenemos la opción de utilizar un panel como BMPanel, Fbpanel, LXPanel, PyPanel o Tint2 o, en su lugar, en el caso de que el entorno ya tenga un panel o barra de tareas, una utilidad de bandeja de sistema como Docker, PekSysTray, Stalonetray, Trayer o Wmsystemtray.
En los entornos gráficos que necesitemos utilizar aplicaciones
auxiliares para proporcionar una bandeja de sistema, colocar siempre el
comando de ejecución de gCDEmu,
detrás del comando de ejecución del panel o utilidad de
bandeja de sistema que vayamos a utilizar. También sería
recomendable en estos casos, retardar su ejecución con el
comando sleep. Un ejemplo:
tint2 &
sleep 2; gcdemu &
|
La ejecución automática al inicio de la sesión, no
es estrictamente necesaria, sobre todo, en aquellos usuarios que monten
de forma ocasional, alguna que otra imagen de CD. En este caso, lo
pueden ejecutar desde el menú de aplicaciones de su entorno
gráfico o panel. Si éste soporta archivos desktop, no hay
que editar nada, se mostrará la entrada de forma
automática. En aquellos entornos que no soporten archivos
desktop en el menú de aplicaciones, habrá que
añadir la entrada
correspondiente de la aplicación, al archivo de
configuración específico del menú de aplicaciones
de cada entorno gráfico.
1) AfterStep
* No tiene soporte nativo de bandeja de sistema.
Añadimos el comando de ejecución en la
sección correspondiente del archivo de
configuración ~/.afterstep/autoexec,
Function "InitFunction"
# Module
"I" Animate
Function
"I" WorkspaceState
Function
"I" WorkspaceModules
Module
"I" Banner
Exec
"I" exec
"$HOME/.afterstep/non-configurable/send_postcard.sh"
Exec
"I" exec
"/usr/local/bin/xbindkeys"
Exec
"I" exec "/usr/bin/gcdemu"
EndFunction
|
2) Awesome
* Sí tiene soporte nativo de bandeja de sistema.
Editamos el archivo de configuración personal, ~/.config/awesome/rc.lua y añadimos el comando al final del mismo de la siguiente forma,
client.add_signal("focus", function(c) c.border_color = beautiful.border_focus end)
client.add_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
-- }}}
os.execute("xbindkeys &")
os.execute("gcdemu &") |
3) Blackbox
* No tiene soporte nativo de bandeja de sistema. En su manual se explica la instalación de Docker que proporciona funciones de bandeja de sistema a Blackbox.
Siguiendo el método que se utiliza en el manual de Blackbox lo añadimos al script ~/.blackbox/autostart de la siguiente forma,
#!/bin/sh
(sleep
2; bbkeys &) &
bsetbg -f ~/Fotos/40.jpg
gcdemu &
|
4) Enlightenment - E16
* No tiene soporte nativo de bandeja de sistema.
En su manual se explica de forma
detenida la forma de añadir aplicaciones al inicio, sólo
tendremos que crear los scripts correspondientes de ejecución.
Abrimos un editor de texto con 3 ventanas y añadimos lo
siguiente a cada una:
gcdemu_init
#!/bin/sh
sleep 2; gcdemu & |
gcdemu_start
#!/bin/sh
killall -9 gcdemu &> /dev/null
sleep 2; gcdemu &
|
gcdemu_stop
#!/bin/sh
killall -9 gcdemu &> /dev/null
|
Los guardamos con los nombres que encabezan los scripts, les damos
permisos de ejecución y los copiamos a los directorios correspondientes, si no existen los creamos.
$ mkdir -p ~/.e16/{Init,Start,Stop}
$ chmod +x gcdemu_*
$ cp gcdemu_init ~/.e16/init
$ cp gcdemu_start ~/.e16/start
$ cp gcdemu_stop ~/.e16/stop
|
5) Fluxbox
* Sí tiene soporte nativo de bandeja de sistema.
Añadimos el comando de ejecución en la
sección correspondiente del script de inicio ~/.fluxbox/startup,
# Applications you want to run
with fluxbox.
# MAKE SURE THAT APPS THAT KEEP RUNNING HAVE AN ''&'' AT THE
END.
#
# unclutter -idle 2 &
# wmnd &
# wmsmixer -w &
wmix &
gcdemu &
|
6) Fvwm
* No tiene soporte nativo de bandeja de sistema. La
configuración disponible en el manual está preparada para
trabajar con Trayer, cuya instalación y configuración se explica en el mismo manual.
Añadimos el comando de ejecución en la
sección correspondiente del archivo autostart, cuya configuración se explica en el manual de Fvwm.
AddToFunc StartFunction I Test (Init) Exec exec xscreensaver
AddToFunc StartFunction I Test (Init) Exec exec gcdemu
|
7) Fvwm-Crystal
* No tiene soporte nativo de bandeja de sistema. Está configurado para trabajar con Stalonetray o Trayer.
Añadimos el comando de ejecución al final del archivo ~/.fvwm-crystal/preferences/Startup, cuya configuración se explica en el manual de Fvwm-Crystal.
# Launch gcdemu
#+ I Test (x gcdemu) Exec pidof gcdemu || exec gcdemu
# vim:ft=fvwm
|
8) IceWM
* Sí tiene soporte nativo de bandeja de sistema.
Añadimos el comando de ejecución al script de inicio ~/.icewm/startup,
#!/bin/sh
stalonetray -p -t --tint-level 125 -geometry 5x1-0-26 &
gai-bgswitcher &
bluecombo &
sleep 2; gcdemu & |
9) JWM
* Sí tiene soporte nativo de bandeja de sistema.
Añadimos el comando de ejecución en la sección correspondiente del archivo de
configuración ~/.jwmrc, en la versión original y ~/.jwm/autostart.xml en la versión en español disponible en la web.
<StartupCommand>
gcdemu &
</StartupCommand>
|
10) Openbox
* No tiene soporte nativo de bandeja de sistema.
Añadimos el comando de ejecución al script de inicio ~/.config/openbox/autostart, autostart.sh en versiones inferiores a la 3.5.x.
sleep 2 && pypanel &
xbindkeys &
Esetroot -scale ~/Fondos/2141.jpg
sleep 3.5; gcdemu &
|
11) Pekwm
* No tiene soporte nativo de bandeja de sistema.
Añadimos el comando de ejecución en la
sección correspondiente del script de inicio ~/.pekwm/start
# There's probably a few other
good uses for it, too. I mainly pushed for it
# because when I was doing fluxbox's docs, people used to complain that
there
# wasn't one, and I wanted to avoid that for pekwm. ;) --eyez
tint2 &
numlockx &
idesk &
sleep 2; gcdemu &
hsetroot -fill /home/jose/Fotos/Natasha_Henstridge.jpg -gamma 1.5
-sharpen 1.5 -blur 1.0
|
12) Sawfish
* No tiene soporte nativo de bandeja de sistema.
Siguiendo el método que se utiliza en el manual de Sawfish lo añadimos al script ~/.sawfish/autostart de la siguiente forma,
#!/bin/sh
bmpanel &
idesk &
cwallpaper
-l
sleep 2; gcdemu &
|
13) Window Maker
* No tiene soporte nativo de bandeja de sistema.
Añadimos el comando de ejecución al script de inicio ~/GNUSTEP/Library/WindowMaker/autostart
#!/bin/sh
#
# Place applications to be executed when WindowMaker is started here.
# This should only be used for non-X applications or applications that
# do not support session management. Other applications should be restarted
# by the WindowMaker session restoring mechanism. For that, you should
# either set SaveSessionOnExit=YES or select "Save Session" in the Workspace
# submenu of the root menu when all applications you want started are
# running.
#
# WindowMaker will wait until this script finishes, so if you run any
# commands that take long to execute (like a xterm), put a ``&'' in the
# end of the command line.
#
# This file must be executable.
#
stalonetray -p -t --tint-level 125 &
sleep 2; gcdemu &
|
14) LXDE, MATE, ROX Desktop y XFce4
* Sí tienen soporte nativo de bandeja de sistema.
Creamos el archivo desktop correspondiente con cat o con un editor de texto:
$ cat > gcdemu.desktop << "EOF"
[Desktop Entry]
Type=Application
Name=gCDEmu
Comment=
Exec=gcdemu
StartupNotify=false
Terminal=false
Hidden=false
OnlyShowIn=ROX;LXDE;XFCE;MATE;
EOF
|
Luego, lo copiamos a ~/.config/autostart.
$ mkdir -p ~/.config/autostart
$ cp gcdemu.desktop ~/.config/autostart
|
15) Para
los que inician X desde
terminal con el comando startx
Para los usuarios que inician los entornos gráficos con el
comando startx,
pueden añadir el comando de ejecución al archivo .xinitrc que se
encuentra en nuestro home si no existe lo creamos, y
añadimos lo siguiente:
16) XDM
Añadimos el comando de ejecución al
archivo .xsession
que se
encuentra en nuestro home,
si no existe lo creamos, y añadimos lo siguiente:
Para otros administradores de ventanas o escritorios, consultar sus
respectivos
manuales, en lo que haga referencia a la ejecución de
programas
al inicio de estos.
Iniciamos gCDEmu
Basta teclear el comando gcdemu
en una terminal o en un lanzador para que el programa se inicie. Una
vez se ha iniciado, colocamos el puntero del ratón sobre el
icono de gCDEmu, y
hacemos clic con el botón izquierdo o derecho, lo mismo da. Se
desplegará el menú de los dispositivos que tengamos
configurados, y las opciones de gCDEmu.
Personalmente recomiendo activar las notificaciones, que nos
mostrarán en forma de descripción emergente, los
resultados de los cambios que realicemos desde gCDEmu. Desde la versión 2.1.0 de CDEmu,
se pueden añadir y quitar nuevos dispositivos virtuales,
que serán operativos hasta el siguiente reinicio del sistema.
Hacemos clic con el botón derecho del ratón, por ejemplo,
sobre el #00, y se desplegará la ventana de selección de
archivo de imagen, buscamos la imagen, la seleccionamos, y ésta
se mostrará como cargada en el menú de dispositivos.
Si hacemos clic con el botón izquierdo del ratón sobre la
entrada del menú que muestra el dispositivo cargado, se
desplegará una ventana de opciones a configurar sobre el mismo.
Desde esta ventana, podemos también descargar el dispositivo en
cuestión. También lo podemos descargar, haciendo clic con
el botón derecho del ratón, sobre la entrada del
menú que muestra el dispositivo cargado. Tener en cuenta que
este proceso último de descarga puede llegar a demorarse unos segundos
desde que hacemos clic en la correspondiente entrada del menú
del dispositivo seleccionado, hasta que se realiza la
notificación del mismo.
Una vez tenemos cargado el archivo de imagen correspondiente,
sólo nos queda montar el dispositivo al que apunta la unidad
virtual. Si estamos utilizando un entorno de escritorio que soporte
automontaje de dispositivos, como es el caso de XFce 4, en el momento, que carguemos el archivo de imagen con gCDEmu,
éste se montará de forma automática,
mostrándose el correspondiente icono de la unidad en el
escritorio. Desde la línea de comandos,
O desde un administrador de archivos que permita montar y desmontar dispositivos, como por ejemplo, ROX-Filer o XFE. En ROX-Filer,
se montan de forma automática al hacer clic sobre el punto de
montaje, y nos muestra un cuadro de diálogo, al salir del punto
de montaje, en el que nos pregunta, si queremos dejarlo como
está, desmontarlo o expulsarlo.
En el caso de XFE,
para montarlo o desmontarlo, hay que hacer clic sobre el punto de
montaje, con el botón derecho del ratón, y seleccionar
montar o desmontar, en el menú contextual que se muestra cuando
realizamos dicha acción.
Enlaces
http://cdemu.sourceforge.net >> La web de CDEmu.
|