virtualisation ARM avec QEMU

Vous souhaitez virtualiser l'architecture ARM pour compiler ou tester vos programmes (comme Node.js), sur vos PC équipés d'un processeur Intel. Je vais vous présenter l'outil de virtualisation / émulation QEmu, pour le processeur ARMv5 ... Comme celui du DockStar :)

Introduction à QEMU

Qemu permet de virtualiser plusieurs types de processeurs :

  • x86
  • Sparc
  • ARM
  • Coldfire
  • PowerPC
  • SuperH
  • ...

Installation de Debian ARM sur QEMU

Les outils nécessaires s'installent avec un simple :

aptitude install qemu qemu-arm-static qemu qemu-kvm-extras

Nous allons commencer par créer le disque virtuel, en mode thin provisionning, de notre future machine ARMv5 avec la commande :

qemu-img create -f qcow ARM.img 2G

Maintenant, nous allons télécharger le noyaux Linux et le initrd d'installation netinstall de Debian Linux Squeeze :

  • wget http://ftp.debian.org/debian/dists/stable/main/installer-armel/current/images/versatile/netboot/vmlinuz-2.6.32-5-versatile
  • wget http://ftp.de.debian.org/debian/dists/stable/main/installer-armel/current/images/versatile/netboot/initrd.gz

Démarrons l'installation avec la commande :

qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.32-5-versatile -initrd initrd.gz -hda ARM.img -append "root=/dev/ram"

Et voilà l'installation commence :

Setup Debian Linux ARMv5 on QEMU

Après de longues minutes l'installation s'achève presque. Nous avons encore 3 opérations à réaliser :

  • supprimer les 2 fichiers précédemment téléchargés
  • wget http://people.debian.org/~aurel32/qemu/armel/initrd.img-2.6.32-5-versatile
  • wget http://people.debian.org/~aurel32/qemu/armel/vmlinuz-2.6.32-5-versatile
  • qemu-system-arm -M versatilepb -m 256M -kernel vmlinuz-2.6.32-5-versatile -initrd initrd.img-2.6.32-5-versatile -hda ARM.img -append "root=/dev/sda1"

Vous avez virtualisé une machine ARM sur votre PC. J'ai réalisé toutes ces opérations, pour pouvoir compiler Node.js pour processeur ARM sur mon PC !

NodeJS ARMv5 on QEMU