Para configurar un entorno emulado del software Raspberry Pi en OSX, se necesitará:
- Una herramienta de compilación cruzada para la arquitectura de CPU de RPi. (por ejemplo, ARM EABI Toolchain)
- El RPi Kernel.
- El sistema de archivos raíz RPi.
- El emulador (QEMU).
- La herramienta de compilación cruzada para la arquitectura ARM.
Suponiendo que uno ya tenga instaladas las últimas herramientas Xcode y de línea de comandos de Apple Developer y homebrew, debería instalar las dependencias:
brew install mpfr gmp libmpc libelf texinfo
Agarra y compila la herramienta:
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 compilación del kernel RPi
mkdir ~/rpi/kernel
cd ~/rpi/kernel
git clone --depth=1 https://github.com/raspberrypi/linux.git
cd linux
Tome el archivo de configuración y configure el kernel:
cp arch/arm/configs/bcmrpi_cutdown_defconfig .config
make ARCH=arm CROSS_COMPILE=~/rpi/arm-cs-tools/bin/arm-none-eabi- menuconfig
Guarde la configuración y construyamos el núcleo después. Tenga en cuenta que la compilación debería fallar y quejarse de una inclusión en scripts / mod / mk_elfconfig. Si lo hace, uno debe crear el archivo:
sudo touch /usr/local/include/elf.h
Edítelo y escriba lo siguiente:
#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
y siga el proceso de construcción:
make ARCH=arm CROSS_COMPILE=~/rpi/arm-cs-tools/bin/arm-none-eabi- -k
El archivo de imagen se crea y se ubica como arch/arm/boot/zImage
.
El emulador
Debido a un error de una pantalla blanca que cuelga QEMU si se compila con llvm, uno debe instalar el paquete apple-gcc42 desde el repositorio de duplicados de homebrew.
brew install homebrew/dupes/apple-gcc42
Y luego compila e instala qemu como:
brew install qemu —use-gcc
Ahora nos queda todo lo que necesitamos para comenzar la distribución de RPi, así que comencemos así:
qemu-system-arm -M versatilepb -cpu arm1176 -hda debian6-19-04-2012.img -kernel zImage -append “root=/dev/sda2” -serial stdio -usbdevice tablet
Como se menciona en el sitio web de mluis .