Для налаштування емуляційного середовища програмного забезпечення 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
Збережіть конфігурацію та давайте побудуємо ядро згодом. Зауважте, що компіляція повинна провалюватися і скаржитися на включення до скриптів / 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 з сховища дуппев.
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 .