Emuler le Raspberry Pi avec Qemu

Afin de créer des paquets Debian pour Raspbian, j’ai choisi de passer par Qemu.

Téléchargement

La première étape est, naturellement, le téléchargement de l’image et du noyau.

Adaptation à Qemu

L’image est prévue pour la carte Raspberry Pi. Il faut donc l’adapter un peu pour qu’elle fonctionne pleinement dans Qemu.

Démarrage d’un shell (attention au clavier qwerty) :

$ qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -append "root=/dev/sda2 panic=1 init=/bin/sh rw" -hda 2014-01-07-wheezy-raspbian.img

Commenter la première ligne du fichier /etc/ld.so.preload.

Créer le fichier /etc/udev/rules.d/90-qemu.rules avec le contenu :

KERNEL=="sda", SYMLINK+="mmcblk0"
KERNEL=="sda?", SYMLINK+="mmcblk0p%n"

Elargir la partition

Comme je vais faire quelques compilations, il vaut mieux rajouter de la place.

Elargir le disque virtuel :

$ qemu-img resize 2014-06-20-wheezy-raspbian.img +2G

Redémarrer Raspbian :

$ qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda 2014-06-20-wheezy-raspbian.img

Retailler la dernière partition en la supprimant puis en la recréant :

$ sudo cfdisk /dev/sda

Redémarrer pour prendre en compte la nouvelle table des partitions, puis retailler le système de fichier :

$ sudo resize2fs /dev/sda2
$ sudo fsck -f /dev/sda2

Et voilà, un dernier reboot et youpi !

Références