ในการตั้งค่าสภาพแวดล้อมจำลองของซอฟต์แวร์ Raspberry Pi บน OSX ต้องมีสิ่งต่อไปนี้:
- เครื่องมือ Cross-Compiling สำหรับสถาปัตยกรรม CPU ของ RPi (เช่น ARM EABI Toolchain)
- เคอร์เนล RPi
- ระบบไฟล์รูต RPi
- The Emulator (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 จากที่เก็บ 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 ของเว็บไซต์