qemu-2.1.0
Prérequis de KVM
Avant de construite qemu-kvm,
vérifier si votre processeur supporte la technologie de
virtualisation :
egrep '^flags.*(vmx|svm)' /proc/cpuinfo
Si vous avez une sortie, vous avez la technologie VT (vmx pour les
processeurs Intel et svm pour les processeurs AMD). Vous devez
également allez voir dans votre BIOS et vérifier qu'elle est
activée. Après l'activation, rédémarrer sur votre LFS.
Configuration du noyau
Activez les options suivantes dans la configuration du noyau et
recompilez le noyau si nécessaire :
Virtualization: --->
Kernel-based Virtual Machine (KVM) support: Y or M
KVM for Intel processors support: Y or M
KVM for AMD processors support: Y or M
Les options Intel ou AMD ne sont pas toutes les deux nécessaire,
mais celle correspondante à votre processeur est obligatoire.
Pour le réseau, vérifiez que bridge-utils-1.5 est installé et que les
options suivantes dans la configuration du noyau sont actives :
Networking support --->
Networking options --->
802.1d Ethernet Bridging: Y or M
Device Drivers --->
Network device support --->
Universal TUN/TAP device driver support: Y or M
Installation de qemu
Installez qemu en lançant les
commandes suivantes :
sed -e '/#include <sys\/capability.h>/ d' \
-e '/#include "virtio-9p-marshal.h"/ i#include <sys\/capability.h>' \
-i fsdev/virtfs-proxy-helper.c &&
./configure --prefix=/usr \
--sysconfdir=/etc \
--docdir=/usr/share/doc/qemu-2.1.0 \
--target-list=x86_64-softmmu &&
make
Pour lancer la construction en tests, lancez make V=1 check.
Maintenant, en tant qu'utilisateur root
:
make install &&
[ -e /usr/lib/libcacard.so ] && chmod -v 755 /usr/lib/libcacard.so
Vous pouvez avec besoin d'un groupe dédié qui contient les
utilisateurs (autre que root) autorisé à accéder au périphérique
KVM. Ajouter le groupe en lançant la commande suivante en tant
qu'utilisateur root
:
groupadd -g 61 kvm
Ajoutez tous les utilisateurs qui peuvent utiliser le périphérique
KVM dans ce groupe :
usermod -a -G kvm <username>
Vous pouvez aussi avoir besoin d'ajouter une rêgle Udev pour que le
périphérique KVM ai les bonnes permissions :
cat > /lib/udev/rules.d/65-kvm.rules << "EOF"
KERNEL=="kvm", GROUP="kvm", MODE="0660"
EOF
Note
Par confort vous pouvez vouloir créer un lien symbolique pour
lancer qemu-system-x86_64 :
ln -sv qemu-system-x86_64 /usr/bin/qemu
Explications des commandes
sed -e '/#include ...
fsdev/virtfs-proxy-helper.c: Corrige qemu-2.1.0 pour la construction avec
libcap-2.24.
--target-list=x86_64-softmmu
:
This option limits the build target to the x86_64 architecture. For
other hardware emulation see the --target-list list in configure's help output. Omitting
this option will build all architectures.
--audio-drv-list=alsa
: Ce paramètre
initialise le pilote audio pour ALSA. Pour les autres pilotes
regardez la liste --audio-drv-list dans la sortie de l'aide de
configure. Le pilote
audio par défaut est OSS.
Configuration qemu
Pour générer une image, lancez :
qemu-img create -f qcow2 vdisk.img 10G
Ajuster la taille du disque virtuel et le nom du fichier image
comme souhaités. La taille réelle du fichier sera plus petite que
spécifiée, mais s'agrandira quand il sera utilisé.
Note
Les instructions suivantes supposent que vous avez créé le lien
symbolique facultatif, qemu
. En supplément, vous devez
exécuter qemu
depuis un terminal d'une fenètre X.
Pour installer un système d'exploitation, téléchargez un iso de
votre choix ou utilisez un CD d'installation. Pour les besoins de
cet exemple, nous utilisons une distribution Fedora 16 qui est
téléchargée par l'iso Fedora-16-x86_64-Live-LXDE.iso
dans le répertoire
courant. Exécutez les commandes suivantes :
qemu -enable-kvm -hda vdisk.img \
-cdrom Fedora-16-x86_64-Live-LXDE.iso \
-boot d \
-m 384
Suivre la procédure d'installation normal pour la distribution
choisie. L'option boot spécifie l'ordre de démarrage des disques
comme une chaîne de lettres de lecteur. Les lettres valides de
lecteurs sont : a, b (lecteur de disquettes 1 et 2), c
(premier disque dur ), d (premier lecteur CD-ROM). l'option -m est
la quantité de mémoire à utiliser pour la machine virtuelle. Si
vous avez suffisament de mémoire (2G ou plus), 1G est une valeur
correcte. Pour les ordinateurs avec 512Mo de RAM il est prudent
d'utiliser -m 192, ou même -m 128 (la valeur par défaut).
Pour exécuter le nouveau système d'exploitation, lancer :
qemu -enable-kvm vdisk.img -m 384
Pour ajouter le réseau à la machine virtuelle ajoutez "-net nic
-net user" à la commande précédente. qemu fournit un serveur DHCP
pour les machines virtuelles et en fonction de votre système
client, initialise le réseau au travers de l'hôte.
un problème avec la solution réseau précédente est qu'elle ne
fournit pas la possibilité de se connecter sur le réseau local.
Pour faire cela, il y a quelques étapes supplémentaire qui doivent
être faites, tout en tant qu'utilisateur root
:
-
Initialiser le mode pont avec bridge-utils-1.5.
-
Autoriser le système hôte à transférer les paquets IP.
sysctl -w net.ipv4.ip_forward=1
Pour rendre cela permanent, ajoutez la commande dans le
fichier /etc/syssysctl.conf
:
cat >> /etc/sysctl.conf << EOF
net.ipv4.ip_forward=1
EOF
-
Créez des scripts pour qemu pour lier les cartes réseau
cliente, normalement visible en tant que tap0, dans le pont
hôte.
cat > /etc/qemu-ifup << EOF
#!/bin/bash
switch=br0
if [ -n "\$1" ]; then
# Add new tap0 interface to bridge
/sbin/ip link set \$1 up
sleep 0.5s
/usr/sbin/brctl addif \$switch \$1
else
echo "Error: no interface specified"
exit 1
fi
exit 0
EOF
chmod +x /etc/qemu-ifup
cat > /etc/qemu-ifdown << EOF
#!/bin/bash
switch=br0
if [ -n "\$1" ]; then
# Remove tap0 interface from bridge
/usr/sbin/brctl delif \$switch \$1
else
echo "Error: no interface specified"
exit 1
fi
exit 0
EOF
chmod +x /etc/qemu-ifdown
Note
Les antislashs dans le script précédent sont pour la cohérence
des opérations de copier/coller. Les antislashs ne doivent pas apparaître dans le
script final.
-
Démarrer qemu avec les options "-net nic -net tap".
-
Si une connexion, en ssh par exemple, depuis le réseau local
vers la VM cliente est souhaitée, le client devra être
surement configuré avec une adresse IP statique.
Contenu
Programme installé:
qemu-ga, qemu-img, qemu-io, qemu-nbd,
qemu-system-x86_64, virtfs-proxy-helper, et vscclient
Bibliothèque installée:
libcacard.so
Répertoires installés:
/etc/qemu, /usr/include/cacard,
/usr/lib/qemu, /usr/share/qemu, et
/usr/share/doc/qemu-2.1.0
Description courte
qemu-ga
|
implémente le support pour les commandes QMP (Protocole
de surveillance QEMU) et les événements qui terminent et
débutent respectivement au sein de l'invité à l'aide d'un
agent intégré dans le cadre de QEMU.
|
qemu-img
|
fournit les commandes pour gérer les images disques QEMU.
|
qemu-io
|
est un programme de diagnostique et de manipulation pour
les médias (virtuels) en mémoire. Il est encore à un
stade de développement précoce.
|
qemu-nbd
|
exporte les images disque Qemu en utilisant le protocole
disque QEMU "Network Block Device" (NBD).
|
qemu-system-x86_64
|
est l'émulateur QEMU de sytème PC.
|
libcacard.so
|
est une bibliothèque d'émulation pour une Smart Card
virtuelle.
|
Last updated on : 2013-03-18 20:44:11 +010