Emulation CPU sous GNU/Linux


qemu fonctionne avec un module qui améliore les performances.
Vous n'êtes pas obligé mais cela est grandement conseillé, car la différence se fait sentir.

Installation

Les dépendances de qemu: libc6 (>=2.3.2-ds1-4), libsdl (>=1.2), zlib1g (>=1.1.2.1), vgabios (>=0.4c), bochsbios (>=2.1.1). 

sudo apt-get install linux-headers-`uname -r`
- Télécharger à partir de http://fabrice.bellard.free.fr/qemu/download.html
qemu-x.y.z.tar.gz et kqemu-x.y.z.tar.gz

cd /tmp

puis
tar zxvf qemu-x.y.z.tar.gz
cd qemu-x.y.z


tar zxvf /tmp/kqemu-x.y.z.tar.gz

et après comme d'habitude :
./configure
puis make
make install

Vous devez ensuite éditer le fichier /etc/modules.conf afin d'y ajouter l'entrée kqemu ainsi le module sera chargé au démarrage.

Les manipulations après l'installation

- Ensuite vous devrez créer une image disque où sera installé le système :
Par exemple, une image de 4giga sera fera avec la commande qemu-img et le paramètre 4G qui définit la taille.
qemu-img create /home/malekal/windows.img 4G

La taille peut être exprimée en méga-octect avec le paramètre M
pour plus d'infos: qemu-img --help

qemu -boot d -cdrom cdlive.iso

qemu -boot d -cdrom /dev/hdd fichier.img

Les problèmes que l'on peut rencontrer

Erreur : Could not open '/dev/kqemu' - QEMU acceleration layer not activated
si votre distrib ( c'est le cas de ubuntu ) utilise udev, au moment de charger le module, il faut taper :
/sbin/modprobe kqemu major=0

A la compilation vous obtenez l'erreur suivante :
-0.7.2/linux-user/i386 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/home/malekalmorte/qemu-0.7.2/fpu -I/home/malekalmorte/qemu-0.7.2/slirp -c -o op.o /home/malekalmorte/qemu-0.7.2/target-i386/op.c
/home/malekalmorte/qemu-0.7.2/target-i386/ops_sse.h: In function 'op_pshufw_mmx':
/home/malekalmorte/qemu-0.7.2/target-i386/ops_sse.h:574: erreur: unable to find a register to spill in class 'GENERAL_REGS'
/home/malekalmorte/qemu-0.7.2/target-i386/ops_sse.h:574: erreur: ceci est le insn:
(insn:HI 18 17 19 0 /home/malekalmorte/qemu-0.7.2/target-i386/ops_sse.h:569 (set (strict_low_part (subreg:HI (reg/v:DI 63 [ r ]) 0))
        (mem/s/j:HI (plus:SI (mult:SI (reg:SI 64)
                    (const_int 2 [0x2]))
                (reg/v/f:SI 59 [ s ])) [0 <variable>._w S2 A16])) 52 {*movstricthi_1} (insn_list:REG_DEP_TRUE 16 (insn_list:REG_DEP_TRUE 12 (insn_list:REG_DEP_TRUE 53 (nil))))
    (expr_list:REG_DEAD (reg:SI 64)
        (nil)))
/home/malekalmorte/qemu-0.7.2/target-i386/ops_sse.h:574: embrouillé par les erreurs précédentes, abandon

Cela vient du fait, que vous tentez de compiler qemu avec gcc-4.0.
tentez de compiler avec l'option --cc=gcc-3.3
Sur une Debian/ubuntu, vous pouvez aussi refaire le lien symbolique /usr/bin/gcc en pointant sur /usr/bin/gcc-3.3
ln -s /usr/bin/gcc-3.3 /usr/bin/gcc

Captures de qemu : ici

Retour à la page d'accueil