- INSTALACION
Para instalarlo, descargar qemu-0.8.2.tar.gz y kqemu-1.3.0pre9.tar.gz desde esta pagina:
http://fabrice.bellard.free.fr/qemu/download.html
Luego seguir estos pasos:
Necesitamos instalar antes libsdl1.2-dev , texi2html , CVS ,zlib-dev y los headers de nuestro kernel
$ sudo aptitude install libsdl1.2-dev
$ sudo aptitude install texi2html
$ sudo aptitude install cvs
$ sudo aptitude install linux-headers-`uname -r`
$ sudo aptitude install zlib1g-dev
Ahora comprobamos la version del gcc
$ gcc -v
Si nos sale (bash: gcc: command not found) haremos:
$ sudo aptitude install gcc-3.4
y si no nos sale la version 3.4 ; haremos:
$ sudo rm /usr/bin/gcc
$ sudo ln -s /usr/bin/gcc-3.4 /usr/bin/gcc
Tambien comprobaremos si tenemos el paquete make si no lo tenemos solo hay k descargarlo:
$ sudo aptitude install make
Descomprimir el tar del qemu, y dentro de su directorio descomprimir el tar del kqemu (en versiones anteriores era necesario hacerlo para que al hacer el ./configure nos ponga kqemu acelerator yes). Nos situamos dentro del directorio del qemu y hacemos:
$ ./configure
$ make
$ sudo make install
Situarnos dentro del diredctorio del kqemu y hacer
$ ./configure
$ make
$ sudo make install
Ahora tenemos k cargar el modulo kqemu
$ sudo /sbin/modprobe kqemu major=0
En esta nueva version tendremos acceso a una nueva opcion a poner a la hora de lanzar el qemu; esta opcion es:
-kernel-kqemu
opcion la cual hara k las operaciones sean manejadas por el procesador del host y no por el invitado , lo cual aumenta la velocidad de una forma considerable. Esta opcion solo funcionara en sistemas invitados windows 2000, windows XP o linux cuyo kernel sea 2.6
Para comprobar k el modulo kqemu esta cargado , lanzaremos alguna imagen de qemu y presionaremos ctrl+alt+2 y escribiremos "Info kqemu" dde deberia poner algo asi:
kqemu suport: enabled for user mode
y si pasamos la opcion -kernel-kqemu deberia poner:
kqemu suport: enabled for user and kernel mode
- Manejo de Qemu y sus opciones
-
Para crear una imagen que el programa usara como disco duro. Y su capacidad (en este caso 2Gigas).
$ qemu-img create nombre_de_imagen.img 2G
- Para comprimir una imagen y que solo ocupe el uso real de disco duro.
$ qemu-img convert nombre_de_imagen.img -O qcow nombre_de_imagen.qcow
A partir de entonces, ejecuta qemu sobre nombre_de_imagen.qcow, el tamaño del fichero *.qcow irá creciendo a medida que aumente el tamaño de la imagen.
- Para elegir desde donde bootear pasaremos la opcion -boot y la opcion a,c o d (disketera,disco duro , cd-rom) . Ejemplo
$ qemu -hda nombre_de_imagen.img -cdrom /dev/cdrom -boot d
- montar la imagen con soporte para cdrom ( real o de imagen iso )
$ qemu -hda nombre_de_imagen.img -cdrom /dev/cdrom
$ qemu -hda nombre_de_imagen.img -cdrom /directorio/imagen.iso
*crear imagen iso a partir de directorio:
*$mkisofs -J -o nombre_que_quieras_darle.iso /directorio/nombre_de_la_carpeta
Montar la imagen con soporte para disketera; pasaremos la opcion -fda /dev/fda o con una imagen de diskette -fda /directorio/imagen_de_boot.img
- La memoria ram por defecto es 128 , para cambiar el valor , pasaremos la opcion -m y el numero. ejemplo.
$ qemu -hda nombre_de_imagen.img -cdrom /dev/cdrom -m 256
- Montar la imagen dentro de linux , para poder leer y escribir desde y hacia ella.En este caso es imprescindible k la imagen ya tg formato FAT.
$ sudo mount -o loop,offset=32256 /directorio_de_la_imagen/nombre_de_la_imagen /punto de montaje/
-
Para que cuando corramos la imagen use la hora del sistema host , pasaremos la opcion -localtime
- Para habilitar samba , pasaremos la opcion -smb directorio_que_compartimos
Una vez dentro de windowsXP ( solo valido para este , y supongo k para ateriores windows tb ) en una ventana de dos , teclearemos esto para tener acceso al directorio compartido:
# net use e: \\IP\directorio_compartido
e: pasara a ser la ruta del directorio compartido.
-
El acceso a internet (NAT) viene activado por defecto.
- Con soporte para usb , pasaremos la opcion -usbdevice o desde la consola del propio qemu
usb_add host:numero:numero
Si estas usando un kernel anterior al 2.4 asegurate k no este ningun driver usando el puerto usb.
Comprueba asi k /proc/bus/usb funciona :
$ ls /proc/bus/usb
y deberia salir algo asi
001 devices drivers
Como aceder directamete al dispositvo host requiere privilegios de root: ejecutaremos qemu como root o podemos cambiar los permisos del usb asi:
$ chown -R myuid /proc/bus/usb
ejecuta qemu con la opcion -usb y presiona ctrl+alt+1 y escribe
$ info usbhost
Device 1.2, speed 480 Mb/s
Class 00: USB device 1234:5678, USB DISK
En esa misma consola añadir el dispositivo usando usb_add host:numero:numero y el sistema invitado deberia notificar el encendido de un nuevo dispositivo.Tambien podemos pasar la opcion -usbdevice host:numero:numero a la linea de ejecucion del qemu.
- Para añadir un directorio como un nuevo disco duro (de solo lectura) a un sistema guest windows (el limite es 471MB) pasar la opcion -hdb fat:/directorio/. ejemplo:
$ qemu -hda win98.img -hdb fat:/media/descargas/libros/
- Para emular una sound blaster 16 añadir la opcion -soundhw sb16
Ejemplos de comandos:
-
$ qemu -boot c -fda /dev/fda -cdrom /dev/cdrom -hda hd.img -m 256 -k es
Cargara disketera,disco duro y cdrom y booteara desde c ,ademas tendra aceso a internet , usara 256 mb de memoria y usara teclado español ( -k es ).
-
$ qemu -hda win.img -cdrom /dev/cdrom -m 192 -boot d
Cargara disco duro y cdrom y booteara desde d (desde el cdrom) y usara 192mb de memoria.
-
$ qemu -hda imagen.img -usbdevice host:1234:5678
Cargara la imagen del disco duro y habilitara el puerto usb indicado y tendra acceso transparente a internet
-
$ qemu -net user -net nic -usb -soundhw sb16 -localtime win98games.img -hdb fat:/home/usuario
Errores posibles
-
Problema con kqemu
Could not open '/dev/kqemu' - QEMU acceleration layer not activated
Puede ser debido a k no esta cargado el modulo o k el modulo solo puede usarlo root.
Para descargar y volver a cargar el modulo
$ modprobe -r kqemu
$ /sbin/modprobe kqemu major=0
si dice operacion no permitida , lo ejecutaremos como root:
$ sudo modprobe -r kqemu
$ sudo /sbin/modprobe kqemu major=0
Si lanzamos qemu como usuario y no carga el modulo acelerador , probar a lanzarlo como root.Si lo carga como root , entonces para que lo pueda usar el usuario deberiamos darle privilegios al usuario para que pueda usar el modulo.
- Problema con usb_add o -usbdevice
Si intentamos cargar un dispositivo y nos sale
usb_host: only one interface supported
entonces podemos aplicar un patch k se descarga dandole a guardar como , desde aki:
http://gnome.dnsalias.net/patches/multiple-interfaces.patch
para aplicarlo lo copiamos al directorio de los sources del qemu y en una terminal escribimos
$ patch -p1 < multiple-interfaces.patch
recosntruimos e instalamos.
Explicacion del porque y donde me dieron la solucion aki:
http://qemu.dad-answers.com/viewtopic.php?p=4516#4516
El problema al añadir este patch es que el sistema invitado se puede volver excesivamente lento.
- Problema con kqemu
usuario@maquina:~$ sudo /sbin/modprobe kqemu major=0
FATAL: Error inserting kqemu (/lib/modules/2.6.15-23-k7/misc/kqemu.ko): Invalid module format
Este error me salia en dapper y para areglarlo solo tuve k cambiar el enlace blando del gcc-3.4 al gcc-4.0 y volver a compilar el modulo kqemu.
$ sudo rm /usr/bin/gcc
$ sudo ln -s /usr/bin/gcc-4.0 /usr/bin/gcc
Si no os deja compilarlo de nuevo, borrar el directorio y volver a descomprimirlo y situarse dentro de el.
Si creeis k os faltan librerias, descargar lo siguiente (cambiar k7 por 386 , 686 o lo k sea)
$ sudo aptitude install linux-k7 linux-headers-k7 linux-image-k7 linux-restricted-modules-k7
Nota final: Podeis crear un lanzador con todas las opciones k necesiteis, para no tener k estar todo el rato escribiendo desde la terminal.algo asi:
Escritorio , clic derecho , crear un lanzador
nombre: windows98
comando: qemu -hda windows98.img -cdrom /dev/cdrom -m 256 -boot d -localtime
Red lan con qemu y servicio vnc desde internet al guest
Fuentes:
http://fabrice.bellard.free.fr/qemu/download.htm
http://www.ubuntu-es.org/node/3602
https://wiki.ubuntu.com/WindowsXPUnderQemuHowTo?highlight=%28qemu%29
http://home.online.no/~osmoma/script-of-moma.html (pagina original del script)
http://www.ubuntuforums.org/showthread.php?t=142191
http://www.h7.dion.ne.jp/~qemu-win/HowToNetwork-en.html (usar red en qemu , en ingles)
http://www.ubuntuforums.org/showthread.php?t=146485&highlight=qemu
http://fabrice.bellard.free.fr/qemu/qemu-doc.html#SEC28
http://qemu.dad-answers.com/viewtopic.php?p=4516#4516
http://www.h7.dion.ne.jp/~qemu-win/ (ejecutable de qemu en windows y diversos parches)
Instalando desde el cvs con virtualization
Instalar Qemu 0.8.1 (cvs) y el acelerador kqemu (sources) desde los sources.
Necesitamos instalar antes libsdl1.2-dev , texi2html , CVS y los headers de nuestro kernel
$ sudo aptitude install libsdl1.2-dev
$ sudo aptitude install texi2html
$ sudo aptitude install cvs
$ sudo aptitude install linux-headers-`uname -r`
Ahora comprobamos la version del gcc
$ gcc -v
Si nos sale (bash: gcc: command not found) haremos:
$ sudo aptitude install gcc-3.4
y si no nos sale la version 3.4 ; haremos:
$ sudo rm /usr/bin/gcc
$ sudo ln -s /usr/bin/gcc-3.4 /usr/bin/gcc
Tambien comprobaremos si tenemos el paquete make si no lo tenemos solo hay k descargarlo:
$ sudo aptitude install make
Bajar el cvs del qemu y guardarlo en la carpeta qemu
$ cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/qemu co qemu
Descargar el kqemu
$ wget http://fabrice.bellard.free.fr/qemu/kqemu-1.3.0pre5.tar.gz
Descomprimir el tar del qemu , situarnos dentro de su directorio y hacer:
$ ./configure
$ make
$ sudo make install
Descomprimir el tar del kqemu y situarnos dentro de su directorio y hacer
$ ./configure
$ make
$ sudo make install
Ahora tenemos k cargar el modulo kqemu
$ sudo modprobe kqemu
Instalando la version cvs del qemu y los sources del kqemu ( no los binarios ). Tendremos acceso a una nueva opcion a poner a la hora de lanzar el qemu; esta opcion es:
-kernel-kqemu
opcion la cual hara k las operaciones sean manejadas por el procesador del host y no por el invitado , lo cual aumenta la velocidad de una forma considerable. Esta opcion solo funcionara en nucleos linux 2.4 o 2.6 y sistemas invitados windows 2000 o windows XP
Para comprobar k el modulo kqemu esta cargado , lanzaremos alguna imagen de qemu y presionaremos ctrl+alt+2 y escribiremos Info kqemu dde deberia poner algo asi:
kqemu suport: enabled for user mode
y si pasamos la opcion -kernel-kqemu deberia poner:
kqemu suport: enabled for user and kernel mode
----------------------------------------------------------------------------------------------------
En mi caso kedaria asi la linea de ejecucion:
$ qemu -hda win2000.img -kernel-kqemu
Y la velocidad es apabullante comparado con los resultados de las instalaciones del post anterior. Aunk tb es cierto k ahora tg el kernel para un k7 y antes lo tenia en 386 , supongo k habra ayudado algo .