Для настройки эмулируемой среды программного обеспечения Raspberry Pi на OSX потребуется:
- Инструмент кросс-компиляции для архитектуры процессора RPi. (например, ARM EABI Toolchain)
- Ядро RPi.
- Корневая файловая система RPi.
- Эмулятор (QEMU).
- Инструмент кросс-компиляции для архитектуры ARM.
Предполагая, что на одном уже установлены последние Xcode и инструменты командной строки от Apple Developer и homebrew, следует установить зависимости:
brew install mpfr gmp libmpc libelf texinfo
Возьмите и скомпилируйте инструмент:
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
Компиляция ядра RPi
mkdir ~/rpi/kernel
cd ~/rpi/kernel
git clone --depth=1 https://github.com/raspberrypi/linux.git
cd linux
Возьмите файл конфигурации и настройте ядро:
cp arch/arm/configs/bcmrpi_cutdown_defconfig .config
make ARCH=arm CROSS_COMPILE=~/rpi/arm-cs-tools/bin/arm-none-eabi- menuconfig
Сохраните конфигурацию и давайте потом соберем ядро. Обратите внимание, что компиляция должна завершиться сбоем, и вы получите жалобу на включение в scripts / mod / mk_elfconfig. Если это так, нужно создать файл:
sudo touch /usr/local/include/elf.h
Отредактируйте его и напишите следующее:
#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
и выполните процесс строительства:
make ARCH=arm CROSS_COMPILE=~/rpi/arm-cs-tools/bin/arm-none-eabi- -k
Файл изображения создан и расположен как arch/arm/boot/zImage
.
Эмулятор
Из-за ошибки, связанной с зависанием белого экрана QEMU, если он скомпилирован с llvm, необходимо установить пакет apple-gcc42 из репозитория homebrew's dupes.
brew install homebrew/dupes/apple-gcc42
А затем скомпилируйте и установите qemu как:
brew install qemu —use-gcc
Теперь у нас есть все, что нужно для запуска дистрибутива RPi, поэтому давайте начнем так:
qemu-system-arm -M versatilepb -cpu arm1176 -hda debian6-19-04-2012.img -kernel zImage -append “root=/dev/sda2” -serial stdio -usbdevice tablet
Как указано на сайте Mluis .