$ wget http://xecdesign.com/downloads/linux-qemu/kernel-qemu
Vérifiez que vous avez tout :
$ qemu-system-arm -cpu ?
La sortie devrait contenir arm1176.
Créez un répertoire qemu (par exemple dans votre home), allez-y et téléchargez-y le noyau de qemu :
$ mkdir qemu cd qemu wget http://xecdesign.com/downloads/linux-qemu/kernel-qemu
Téléchargez l'image disque de la distribution pour le Raspi sur http://www.raspberrypi.org/downloads, décompressez le fichier zip (→ aaaa.mm.jj-wheezy.raspbian.img pour une raspbian) et enregistrez-la dans le répertoire qemu créé ci-dessus.
Raspian et Debian devraient fonctionner tout de suite, mais Arch Linux nécessite un peu de travail.
Installez le paquet qemu-system ou en ligne de commande :
$ sudo apt install qemu-system
Pour installer qemu et son GUI aqemu, installez le paquet aqemu ou en ligne de commande :
$ sudo apt-get install aqemu
Nous allons maintenant monter la partition ext4 de l'image pour faire une petite modification sur le filesystem.
Pour connaître l'emplacement du début de cette partition, lancez la commande :
$ file aaaa.mm.jj-wheezy-raspbian.img 2014-01-07-wheezy-raspbian.img: x86 boot sector; partition 1: ID=0xc, starthead 130, startsector 8192, 114688 sectors; partition 2: I0x83, starthead 165, star tsector 122880, 5662720 sectors, code offset 0xb8
Multipliez par 512 la valeur indiquée pour le secteur de début (ici, startsector 122880 → * 512 = 6291456)
Montez la partition en donnant à l'offset la valeur calculée :
$ sudo mount aaaa.mm.jj-wheezy-raspbian.img -o offset=6291456 /mnt
Éditez avec les droits d'administration le fichier /mnt/etc/ld.so.preload pour ajouter un # en début de ligne :
#/usr/lib/arm-linux-gnueabihf/libcofi_rpi.so
Quittez l'éditeur.
(Facultatif) Créez avec les droits d'administration le fichier /etc/udev/rules.d/90-qemu.rules avec le contenu suivant :
KERNEL=="sda", SYMLINK+="mmcblk0" KERNEL=="sda?", SYMLINK+="mmcblk0p%n" KERNEL=="sda2", SYMLINK+="root"
→ le noyau voit le disque /dev/sda au lieu de /dev/mmcblk0. Cela va créer des liens symboliques pour être plus conforme à la vraie pi.
Démontez l'image :
$ sudo umount /mnt
Lancez Qemu avec l’image à émuler :
$ sudo qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -k fr -no-reboot -serial stdio -append "root=/dev/sda2 panic=1" -hda aaaa.mm.jj-wheezy-raspbian.img -redir tcp:5022::22
Au premier lancement, il y a une erreur sur l’intégrité de la partition, puis vous vous retrouvez au prompt.
Attention c’est du qwerty !
Contrôler le disque :
$ fsck /dev/sda2
Puis arrêter le système :
$ halt
Une fois installé, AQEMU peut être lancé en sélectionnant Applications → Emulateurs → AQEMU dans le menu système.
Quand vous lancez AQEMU pour la première fois, le message suivant apparaît :
Lancez Qemu avec la commande (la même que pour la configuration) :
$ sudo qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -k fr -no-reboot -serial stdio -append "root=/dev/sda2 panic=1" -hda aaaa.mm.jj-wheezy-raspbian.img -redir tcp:5022::22
sous Windows, utilisez qemu-system-armw.exe lieu de qemu-system-arm
N'essayez pas d'utiliser plus de 256 Mo de RAM, la valeur est codée en dur dans QEMU.
Vous vous retrouvez sur l'écran de raspi-config.
Commencez par changer les paramètres linguistiques (en particulier le clavier…)
$ 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 2013-09-25-wheezy-raspbian.img
C'est la même commande que précédemment, mais sans init=/bin/bash.
Cela prend du temps, mais les démarrages suivants seront beaucoup plus rapides.
Pour supprimer cette application, il suffit de supprimer son paquet. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.
Basé sur « Emulating Raspberry Pi the easy way (Linux or Windows!) ».