Pour configurer un environnement émulé du logiciel Raspberry Pi sur OSX, il faudra:
- Un outil de compilation croisée pour l'architecture CPU de RPi. (par exemple, ARM EABI Toolchain)
- Le noyau RPi.
- Le système de fichiers racine RPi.
- L'émulateur (QEMU).
- L'outil de compilation croisée pour l'architecture ARM.
En supposant que l'on dispose déjà des derniers outils Xcode et de ligne de commande d'Apple Developer et homebrew installés, il faut alors installer les dépendances:
brew install mpfr gmp libmpc libelf texinfo
Saisissez et compilez l'outil:
mkdir ~/rpi
mkdir ~/rpi/arm-cs-tools
git clone https://github.com/jsnyder/arm-eabi-toolchain.git
cd arm-eabi-toolchain
PREFIX=$HOME/rpi/arm-cs-tools make install-cross
make clean
echo “export PATH=$HOME/rpi/arm-cs-tools/bin:$PATH” » ~/.bash_profile
La compilation du noyau RPi
mkdir ~/rpi/kernel
cd ~/rpi/kernel
git clone --depth=1 https://github.com/raspberrypi/linux.git
cd linux
Saisissez le fichier de configuration et configurez le noyau:
cp arch/arm/configs/bcmrpi_cutdown_defconfig .config
make ARCH=arm CROSS_COMPILE=~/rpi/arm-cs-tools/bin/arm-none-eabi- menuconfig
Enregistrez la configuration et construisons ensuite le noyau. Notez que la compilation devrait échouer et se plaindre d'une inclusion dans scripts / mod / mk_elfconfig. Si c'est le cas, il faut créer le fichier:
sudo touch /usr/local/include/elf.h
Modifiez-le et écrivez ce qui suit:
#include <libelf.h>
#define R_386_NONE 0
#define R_386_32 1
#define R_386_PC32 2
#define R_ARM_NONE 0
#define R_ARM_PC24 1
#define R_ARM_ABS32 2
#define R_MIPS_NONE 0
#define R_MIPS_16 1
#define R_MIPS_32 2
#define R_MIPS_REL32 3
#define R_MIPS_26 4
#define R_MIPS_HI16 5
#define R_MIPS_LO16 6
et suivez le processus de construction:
make ARCH=arm CROSS_COMPILE=~/rpi/arm-cs-tools/bin/arm-none-eabi- -k
Le fichier image est créé et localisé sous arch/arm/boot/zImage
.
L'émulateur
En raison d'un bug d'un écran blanc suspendu QEMU s'il est compilé avec llvm, il faut installer le paquet apple-gcc42 à partir du dépôt dupes de l'homebrew.
brew install homebrew/dupes/apple-gcc42
Et puis compilez et installez qemu comme:
brew install qemu —use-gcc
Il nous reste maintenant tout ce dont nous avons besoin pour démarrer la distribution RPi, alors commençons comme:
qemu-system-arm -M versatilepb -cpu arm1176 -hda debian6-19-04-2012.img -kernel zImage -append “root=/dev/sda2” -serial stdio -usbdevice tablet
Comme indiqué sur le site Web de mluis .