Debian logo [inetdoc.LINUX]

5. Mise en œuvre de QEMU

5.1. Identification des extensions matérielles du processeur

Comme on l'a vu précédemment, cette solution doit être utilisée avec un processeur sans extension matérielle de virtualisation. Autrement dit, la commande $ egrep '(vmx|svm)' /proc/cpuinfo ne renvoie aucun résultat.

5.2. Construction du module KQEMU du noyau Linux

Ce module KQEMU permet d'exécuter le code de l'instance virtuelle de système d'exploitation invité directement sur le processeur hôte. C'est le moyen de se rapprocher des performances natives du système hôte lorsque le processeur ne possède pas de fonctions matérielles dédiées à la virtualisation.

Les sources de ce module ne font pas partie intégrante du noyau Linux. Avec la distribution Debian GNU/Linux, ces sources sont disponibles sous forme de paquet. On commence donc par installer le paquet kqemu-source avant de passer aux opérations de construction du paquet correspondant.

# apt-get install kqemu-source
# ll /usr/src/kqemu.tar.bz2
-rw-r--r-- 1 root root 70K fév  4 13:21 /usr/src/kqemu.tar.bz2

Les opérations de compilation du module et construction du paquet peuvent se faire au niveau utilisateur si celui-ci fait partie du groupe système src/.

$ cd /usr/src
$ tar xf kqemu.tar.bz2
$ cd modules/kqemu/
$ fakeroot ./debian/rules binary-modules
<snipped/>
# Install the module
install -D -m 0644 kqemu.ko \
        debian/kqemu-modules-2.6.25.3/lib/modules/2.6.25.3/misc/kqemu.ko
dh_installdocs
dh_installchangelogs Changelog
dh_compress
dh_fixperms
dh_installmodules
dh_installdeb
dh_gencontrol -- -v1.3.0~pre11-8
dh_md5sums
dh_builddeb --destdir=/usr/src/linux/..
dpkg-deb : construction du paquet « kqemu-modules-2.6.25.3 » dans \
           « /usr/src/linux/../kqemu-modules-2.6.25.3_1.3.0~pre11-8_i386.deb ».
dh_clean -k

L'installation du paquet doit se faire au niveau super-utilisateur.

# dpkg -i kqemu-modules-2.6.25.3_1.3.0~pre11-8_i386.deb
Sélection du paquet kqemu-modules-2.6.25.3 précédemment désélectionné.
(Lecture de la base de données... 253846 fichiers et répertoires déjà installés.)
Dépaquetage de kqemu-modules-2.6.25.3 \
  (à partir de kqemu-modules-2.6.25.3_1.3.0~pre11-8_i386.deb) ...
Paramétrage de kqemu-modules-2.6.25.3 (1.3.0~pre11-8) ...

Une fois que le module de virtualisation KQEMU est installé, il ne reste plus qu'à valider son chargement en mémoire et à configurer le système pour que ce chargement soit effectué à chaque démarrage de la machine.

# modprobe -v kqemu
insmod /lib/modules/2.6.25.3/misc/kqemu.ko major=0
# dmesg |grep QEMU
QEMU Accelerator Module version 1.3.0, Copyright (c) 2005-2007 Fabrice Bellard
KQEMU installed, max_locked_mem=517408kB.

Comme dans le cas du module KVM, il faut éditer le fichier /etc/modules pour rendre le chargement du module systématique.

# echo kqemu >>/etc/modules

Tout est maintenant en place pour passer à la création d'une instance de machine virtuelle.