HOWTO Qemu

Un article de Gentoo Linux Wiki.

Cet article est une ébauche. Vous pouvez l'aider à s'enrichir en le complétant.

Cet article fait partie des HOWTOs.
Méthodes d'installation CD Live Noyau et matériel Portables et Notebooks Portage Système Réseaux et Services Serveur X Logiciels fréquemment utilisés Autres

Sommaire

[modifier] Introduction

QEMU permet de faire tourner un ou plusieurs systèmes d'exploitation (et leurs applications) de manière isolée sur une même machine physique. QEMU fonctionne sur les plateformes x86, x86-64, PPC, MIPS, Sparc et ARM.


[modifier] Installation

Note: QEMU 0.8.2 peut être compilé uniquement avec GCC 3

Les versions récentes sont masquées. Si on veut utiliser la dernière version, il est donc nécessaire de la démasquer (remplacer ~x86 par votre architecture) :

echo "app-emulation/qemu ~x86" >> /etc/portage/package.keywords
echo "app-emulation/qemu-softmmu ~x86" >> /etc/portage/package.keywords
echo "app-emulation/qemu-user ~x86" >> /etc/portage/package.keywords
echo "app-emulation/kqemu ~x86" >> /etc/portage/package.keywords

Afin d'améliorer les performances, il est préférable d'utiliser le module kqemu (sdl est nécessaire pour l'affichage) :

echo "app-emulation/qemu-softmmu kqemu sdl" >> /etc/portage/package.use

Maintenant il suffit de faire :

emerge qemu

Pour charger le module kqemu automatiquement au démarrage :

echo "kqemu major=0" >> /etc/modules.autoload.d/kernel-2.6

Si /dev/kqemu n'existe pas :

mknod /dev/kqemu c 250 0

Pour profiter du module kqemu en tant que simple utilisateur il faut s'ajouter au groupe qemu :

gpasswd -a nomutilisateur qemu


[modifier] Lancement

Il faut, si on veut installer un systéme d'exploitation, commencer par créer un disque :

qemu-img create nomimage.img 10G

(Pour créer une image raw de 10Go)

Pour lancer QEMU en utilisant l'image disque et un fichier .iso en tant que CD :

qemu -hda nomimage.img -cdrom cdimage.iso -boot d

Pour lancer QEMU en utilisant l'image disque et en démarrant sur un CD dans votre lecteur :

qemu -hda nomimage.img -cdrom /dev/cdrom -boot d

Pour lancer QEMU en démarrant sur l'image disque et gardant l'accés à un CD dans votre lecteur :

qemu -hda nomimage.img -cdrom /dev/cdrom -boot c

Pour augementer la mémoire de la machine virtuelle :

qemu -hda nomimage.img -boot c -m 256M

(Ici on démarre sur l'image disque avec 256Mo de mémoire)


[modifier] Accés au réseau

Pour utiliser la connexion de l'hôte au réseau à partir de la machine virtuelle, vous devez avoir TUN/TAP.

Pour activer TUN/TAP dans le noyau :

Configuration du noyau Linux : Enable TUN/TAP support
Device Drivers  ---> 
   Networking support  --->
      <M> Universal TUN/TAP device driver support

Vous pouvez ensuite utiliser ces 2 scripts pour simplifier l'utilisation de Qemu avec TUN : Il faut déjà installer vde :

emerge net-misc/vde
Code : Script to use qemu with tun support
#!/bin/bash

set -e

IMGPATH=/mnt/qemu
IMG="-hda ${IMGPATH}/disk.img"
NETWORK="-net nic -net user"
MEMORY="-m 256"
CDROM="-cdrom /usr/local/isos/KNOPPIX_V5.0.1CD-2006-06-01-DE.iso"
BOOT="-boot c" # a - floppy, c - hd, d - cdrom

# prepare network, speedup
/bin/su -c "/usr/local/bin/qemu-helper start"

# Start qemu
qemu ${IMG} ${MEMORY} ${CDROM} ${BOOT} ${QEMUIFUP} -localtime $1

# reset network, unload modules
/bin/su -c "/usr/local/bin/qemu-helper stop"
Code : qemu-helper
#!/bin/bash
case "$1" in 
start)	modprobe kqemu major=0
        modprobe tun
        vde_switch -tap tun0 -daemon
	chmod 777 /tmp/vde.ctl
	ifconfig tun0 10.0.0.1 up
        ;; 
stop)  	ifconfig tun0 down
	rm /tmp/vde.ctl
	killall vde_switch
	modprobe -r kqemu
        modprobe -r tun
        ;; 
esac

Vous configurez la machine virtuelle en DHCP et vous devriez avoir accés au réseau.


[modifier] Utilisation

  • Utilisez l'option -full-screen pour voir le systéme émulé en plein écran
  • Cliquez dans la fenêtre de QEMU pour contrôler le systéme de la machine virtuelle, Appuyez sur Ctrl+Alt pour retourner à Gentoo
  • Appuyez sur Ctrl+Alt+F pour passer en plein écran
  • Appuez sur Ctrl+Alt+1-9 pour voir les consoles de QEMU
  • Tapez qemu sans option dans la console pour de l'aide
  • Tapez help dans une console de QEMU pour de l'aide (Ctrl+Alt+2 quand QEMU est lancé)


[modifier] Problèmes

Si à la compilation vous avez ce message:

incapable de trouver un registre de déversement dans la classe « GENERAL_REGS »

essayez de changer de version de GCC3. Par exemple 3.3.6.

[modifier] Références