Émulation
But du jeu: tester des exécutables Debian-PPC avant de les installer chez l'usager - mais depuis mon PC.
QEMU
http://fabrice.bellard.free.fr/qemu
aptitude install qemu
Attention, le module qemu du même auteur pour aller plus vite est propriétaire - à éviter donc.
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.
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