Différences entre versions de « Émulation »
imported>SylvainBeucler m |
imported>SylvainBeucler m (→QEMU-compatible kernel : floppy works out of the box, at least with k2.6) |
||
Ligne 79 : | Ligne 79 : | ||
* NE2K_PCI=Y (ns2000 PCI network ethernet card) | * NE2K_PCI=Y (ns2000 PCI network ethernet card) | ||
− | |||
make | make |
Version du 23 janvier 2007 à 14:18
But du jeu: tester des exécutables Debian-PPC avant de les installer chez l'usager - mais depuis mon PC.
QEMU
aptitude install qemu
Attention, le module kqemu du même auteur pour aller plus vite est propriétaire - à éviter donc. Utilisez à la place qvm86.
Compiler et tester un exécutable de test
Pour obtenir powerpc-linux-gcc: Compilation croisée
$ cat <<EOF > hello.c #include <stdio.h> int main(void) { return ! printf("Hello world!\n"); } EOF $ powerpc-linux-gcc hello.c -Wall -ansi -pedantic -static $ qemu-ppc a.out Hello world!
Mais:
$ powerpc-linux-gcc hello.c -Wall -ansi -pedantic $ qemu-ppc ./a.out /lib/ld.so.1: No such file or directory Erreur de segmentation
ToDo: trouver une façon de travailler pour gérer les dépendances (chroot recompilé)?
Des images de systèmes à télécharger
Sur http://free.oszoo.org/download.html
Essayer notamment:
btdownloadcurses http://free.oszoo.org/ftp/images/linux-ppc-20040716.tar.bz2.torrent #20M btdownloadcurses http://free.oszoo.org/ftp/images/debian_sarge_ppc.tar.torrent #1Go!
Avec l'image de base, en tant que root pour avoir le réseau via /dev/net/tun
:
qemu-system-ppc -prep -localtime -kernel zImage.prep linux-ppc.img
À l'intérieur, vous pouvez [1]:
ifconfig eth0 172.20.0.2 # qemu scp me@172.20.0.1:fichier # système hôte
L'image de 1Go est un système Debian sarge PPC pré-installé complet:
qemu-system-ppc -prep -kernel vmlinuz-2.4.27.001 -hda debian_sarge_ppc.img -user-net
Dans celle-ci le réseau à l'air différent:
- 10.0.2.2: hôte et... serveur DHCP!
- 10.0.2.15: qemu
- Installing from Scratch...: HOWTO pour recréer l'image Debian Sarge
Tester une installation
wget http://cdimage.debian.org/debian-cd/3.1_r2/powerpc/iso-cd/debian-31r2-powerpc-netinst.iso qemu-img create debian_sarge_ppc.img 500M qemu-system-ppc -hda debian_sarge_ppc.img -cdrom debian-31r2-powerpc-netinst.iso -boot d
D'après le HOWTO, le noyau 2.6 ne passe pas - utiliser install-powerpc-2.4 ramdisk_size=10000
au boot.
Démarrer sur son disque-dur
qemu -snapshot -hda /dev/hda -hdb /dev/hdb
Démarrer sur une image de partition
(et non sur une image de disque complet)
qemu -hda debian.img -kernel bzImage -append "root=/dev/hda" # ...
QEMU-compatible kernel
make defconfig ARCH=i386 make xconfig
- NE2K_PCI=Y (ns2000 PCI network ethernet card)
make file arch/i386/boot/bzImage
PearPC
http://pearpc.sourceforge.net/
aptitude install pearpc
Créer un disque de 3GB [2]:
dd if=/dev/zero of=myharddisk.img bs=516096 seek=6241 count=0
Note: le fichier image est composé initialement de blocks vides, qui sont optimisés par ext2:
$ ls -lh myharddisk.img -rw-r--r-- 1 sylvain sylvain 3,0G 2006-05-05 01:36 myharddisk.img $ du -sh myharddisk.img 0 myharddisk.img
Choisir l'image à lancer: modifier /etc/ppc.conf
:
pci_ide0_master_image = "myharddisk.img" pci_ide0_slave_image = "debian-31r2-powerpc-netinst.iso"
Lancer l'émulateur:
ppc
Liens
- Comparison of virtual machines sur Wikipédia
- Guide simplifié pour QEMU
- Disk Images Under Linux: créer des images disques complètes avec table de partition, et comment les monter
- Unofficial #qemu Wiki