Différences entre versions de « Émulation »

De Cliss XXI
Sauter à la navigation Sauter à la recherche
imported>SylvainBeucler
imported>SylvainBeucler
m
Ligne 143 : Ligne 143 :
 
* [http://www.kidsquid.com/cgi-bin/moin.cgi/FrontPage Unofficial #qemu Wiki]
 
* [http://www.kidsquid.com/cgi-bin/moin.cgi/FrontPage Unofficial #qemu Wiki]
 
* [http://bochs.sourceforge.net/ Bochs]: émulateur pour x86&x64 uniquement
 
* [http://bochs.sourceforge.net/ Bochs]: émulateur pour x86&x64 uniquement
* [http://kvm.sf.net/ KVM] et [Xen http://xensource.com/]: peuvent faire GNU/Linux mais aussi Windows, mais s'il y a virtualization [http://en.wikipedia.org/wiki/X86_virtualization au niveau processeur]
+
* [http://kvm.sf.net/ KVM] et [http://xensource.com/ Xen]: peuvent faire GNU/Linux mais aussi Windows, mais s'il y a virtualization [http://en.wikipedia.org/wiki/X86_virtualization au niveau processeur]
 
* [[UserModeLinux]]
 
* [[UserModeLinux]]

Version du 26 janvier 2007 à 03:44

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

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

Configuration rapide

make defconfig ARCH=i386
make xconfig
# Activer: NE2K_PCI=Y (ns2000 PCI network ethernet card)
make
file arch/i386/boot/bzImage

Ce noyau est malheureusement trop volumineux pour tenir sur une disquette (2.5Mo) - ce qui est nécessaire pour suivre certains HOWTO les séquences d'amorçage ([2][3]).

Configuration précise

Analyse de la configuration,

  • Depuis une image qemu qui fonctionne:
$ uname --machine
i686
$ cat /proc/cpuinfo
[...]
model name      : Pentium II (Klamath)
[...]
$ lspci
0000:00:00.0 Host bridge: Intel Corp. 440FX - 82441FX PMC [Natoma] (rev 02)
0000:00:01.0 ISA bridge: Intel Corp. 82371SB PIIX3 ISA [Natoma/Triton II]
0000:00:01.1 IDE interface: Intel Corp. 82371SB PIIX3 IDE [Natoma/Triton II]
0000:00:01.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI
0000:00:02.0 VGA compatible controller: Cirrus Logic GD 5446
0000:00:03.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8029(AS)
  • Sur la console qemu (Ctrl+Alt+2):
(qemu) info network
VLAN 0 devices:
  user redirector
  ne2000 pci macaddr=...

Configuration du noyau:

# noyau minimal
make allnoconfig

PearPC

http://pearpc.sourceforge.net/

aptitude install pearpc

Créer un disque de 3GB [4]:

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