qemu-2.5.0
Introduction à qemu
qemu est une solution de
virtualisation complète pour Linux avec un processeur x86
supportant les extensions de virtualisation (Intel VT ou AMD-V).
Ce paquet est connu pour se construire correctement sur une
plateforme LFS-7.9.
Informations sur le paquet
-
Téléchargement (HTTP) : http://wiki.qemu.org/download/qemu-2.5.0.tar.bz2
-
Téléchargement (FTP) :
-
Somme de contrôle MD5 du téléchargement :
f469f2330bbe76e3e39db10e9ac4f8db
-
Taille du téléchargement : 25 Mio
-
Estimation de l'espace disque requis : 419 Mo (avec les
tests)
-
Estimation du temps de construction : 2.4 SBU (avec les
tests)
Dépendances de Qemu
Requises
GLib-2.46.2, Python-2.7.11
et Système X
Window
Recommandées
SDL-1.2.15
Facultatives
ALSA-1.1.0, BlueZ-5.37,
Check-0.10.0, cURL-7.47.1,
Cyrus SASL-2.1.26, GnuTLS-3.4.9, GTK+-2.24.29,
GTK+-3.18.7, libusb-1.0.20,
libgcrypt-1.6.5, LZO-2.09, Nettle-3.2,
NSS-3.23 (pour
libcacard.so), Mesa-11.1.2, SDL-1.2.15,
VTE-0.42.4, libssh2
Note
La liste des dépendances facultatives n'est pas complète.
Regardez la sortie de ./configure
--help pour une liste plus complète.
Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/qemu
Prérequis de KVM
Avant de construite qemu, vérifier
si votre processeur supporte la technologie de virtualisation
(VT) :
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, redémarrez sur votre LFS.
Configuration du noyau
Activez les options suivantes dans la configuration du noyau et
recompilez le noyau si nécessaire :
[*] Virtualization: ---> [CONFIG_VIRTUALIZATION]
<*/M> Kernel-based Virtual Machine (KVM) support [CONFIG_KVM]
<*/M> KVM for Intel processors support [CONFIG_KVM_INTEL]
<*/M> KVM for AMD processors support [CONFIG_KVM_AMD]
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 ---> [CONFIG_NET]
Networking options --->
<*/M> 802.1d Ethernet Bridging [CONFIG_BRIDGE]
Device Drivers --->
[*] Network device support ---> [CONFIG_NETDEVICES]
<*/M> Universal TUN/TAP device driver support [CONFIG_TUN]
Installation de qemu
Installez qemu en lançant les
commandes suivantes :
Note
Qemu est capable de faire tourner de nombreuses architectures. La
procédure de construction est aussi capable de construire les
différentes cibles en une fois à l'aide d'une liste de cibles
séparées par des virgules à l'option --target-list
. Lancez ./configure --help pour avoir
une liste complète des cibles possibles.
if [ $(uname -m) = i686 ]; then
QEMU_ARCH=i386-softmmu
else
QEMU_ARCH=x86_64-softmmu
fi
mkdir -vp build &&
cd build &&
../configure --prefix=/usr \
--sysconfdir=/etc \
--target-list=$QEMU_ARCH \
--audio-drv-list=alsa \
--docdir=/usr/share/doc/qemu-2.5.0 &&
unset QEMU_ARCH &&
make
Pour lancer les tests, lancez make
V=1 -k check. L'un des tests est connu pour
échouer.
Maintenant, en tant qu'utilisateur root
:
make install &&
[ -e /usr/lib/libcacard.so ] &&
chmod -v 755 /usr/lib/libcacard.so
Vous aurez besoin d'un groupe dédié qui contient les utilisateurs
(autre que root) autorisé à accéder au périphérique KVM. Créez ce
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 le programme installé. Par exemple :
ln -sv qemu-system-`uname -m` /usr/bin/qemu
Explication des commandes
--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 de 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 dans une fenêtre X
Pour installer un système d'exploitation, téléchargez une image 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 suffisamment 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
Il se peut que vous ayez un problème avec -enable-kvm
. Aussi, vous pourriez
vouloir définir les pilotes audio et vidéo, le nombre de cœurs de
CPU et de threads. Une commande alternative pour installer le
système d'exploitation est (voir la page de manuel de qemu pour la
définition des paramètres) :
qemu -enable-kvm \
-cdrom /home/fernando/ISO/linuxmint-17.1-mate-32bit.iso \
-boot order=d \
-m 1G,slots=3,maxmem=4G \
-machine smm=off \
-soundhw es1370 \
-cpu host \
-smp cores=4,threads=2 \
-vga std \
vdisk.img
Un paramètre qui n’apparaît pas dans la page de manuel de qemu est
-machine smm=off
. Il est
utilisé pour permettre l'utilisation de -enable-kvm
sur certains systèmes.
Pour pouvoir lancer la machine, lancez :
qemu -enable-kvm \
-machine smm=off \
-boot order=d \
-m 1G,slots=3,maxmem=4G \
-soundhw es1370 \
-cpu host \
-smp cores=4,threads=2 \
-vga vmware \
-hda vdisk.img
Parfois, vous pouvez souhaiter que la machine ait une taille
d'écran différente de celle naturellement offerte par la carte
graphique virtuelle. L'exemple ci-dessous utilise la carte
graphique vmware, qui utilise Xorg VMMouse Driver-13.1.0 et est
paramétrée pour donner une taille maximale de 1600x900. En tant
qu'utilisateur root
, lancez :
cat > /usr/share/X11/xorg.conf.d/20-vmware.conf << "EOF"
Section "Monitor"
Identifier "Monitor0"
# cvt 1600 900
# 1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz
Modeline "1600x900" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
Option "PreferredMode" "1600x900"
HorizSync 1-200
VertRefresh 1-200
EndSection
Section "Device"
Identifier "VMware SVGA II Adapter"
Option "Monitor" "default"
Driver "vmware"
EndSection
Section "Screen"
Identifier "Default Screen"
Device "VMware SVGA II Adapter"
Monitor "Monitor0"
SubSection "Display"
Depth 24
Modes "1600x900" "1440x900" "1366x768" "1280x720" "800x480"
EndSubSection
EndSection
EOF
Des tailles supplémentaires seront disponibles en plus des tailles
natives. Vous devrez redémarrer X pour rendre ces nouvelles tailles
disponibles.
qemu fournit un serveur DHCP pour la VM et, en fonction du système
client, paramètre le réseau à travers 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, toutes 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/sysctl.conf
:
cat >> /etc/sysctl.conf << EOF
net.ipv4.ip_forward=1
EOF
-
Permettre les connections réseaux quand l'exécution en tant
que membre du groupe kvm :
chgrp kvm /usr/libexec/qemu-bridge-helper &&
chmod 4750 /usr/libexec/qemu-bridge-helper
-
Initialisez un fichier de configuration requis :
echo 'allow br0' > /etc/qemu/bridge.conf
-
Démarrer qemu avec les options "-net nic -net bridge".
-
Si une connexion, en ssh par exemple, depuis le réseau local
vers la VM cliente est souhaitée, le client devra être
configuré avec une adresse IP statique.
Contenu
Programmes installés:
ivshmem-client, ivshmem-server, qemu
(lien symbolique), qemu-ga, qemu-img, qemu-io, qemu-nbd,
qemu-system-<arch>, virtfs-proxy-helper et
vscclient
Bibliothèque installée:
libcacard.so
Répertoires installés:
/etc/qemu et
/usr/share/doc/qemu-2.5.0
Descriptions courtes
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 système PC.
|
virtfs-proxy-helper
|
crée une paire de socket ou un socket nommé. Les
communications de QEMU et proxy helper utilise ce socket.
le pilote QEMU proxy fs envoie les requêtes du système de
fichier à proxy helper et reçois les réponses de lui.
|
vscclient
|
implémente une interface via des sockets pour le lecteur
CCID virtuel de l'invité.
|
libcacard.so
|
est une bibliothèque d'émulation pour une Smart Card
virtuelle.
|
Last updated on 2016-03-03 03:22:08 +0100