Để thiết lập môi trường giả lập của phần mềm Raspberry Pi trên OSX, người ta sẽ cần:
- Công cụ biên dịch chéo cho kiến trúc CPU của RPi. (ví dụ: ARM EABI Toolchain)
- Hạt nhân RPi.
- Hệ thống tập tin gốc RPi.
- Trình giả lập (QEMU).
- Công cụ biên dịch chéo cho kiến trúc ARM.
Giả sử một công cụ đã có các công cụ dòng mã và mã X mới nhất từ Apple Developer và homebrew được cài đặt, thì nên cài đặt các phụ thuộc:
brew install mpfr gmp libmpc libelf texinfo
Lấy và biên dịch công cụ:
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
Trình biên dịch hạt nhân RPi
mkdir ~/rpi/kernel
cd ~/rpi/kernel
git clone --depth=1 https://github.com/raspberrypi/linux.git
cd linux
Lấy tập tin cấu hình và cấu hình kernel:
cp arch/arm/configs/bcmrpi_cutdown_defconfig .config
make ARCH=arm CROSS_COMPILE=~/rpi/arm-cs-tools/bin/arm-none-eabi- menuconfig
Lưu cấu hình và sau đó xây dựng kernel. Lưu ý rằng quá trình biên dịch sẽ thất bại và phàn nàn về việc đưa vào tập lệnh / mod / mk_elfconfig. Nếu có, người ta phải tạo tệp:
sudo touch /usr/local/include/elf.h
Chỉnh sửa nó và viết như sau:
#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
và làm theo quy trình xây dựng:
make ARCH=arm CROSS_COMPILE=~/rpi/arm-cs-tools/bin/arm-none-eabi- -k
Các tập tin hình ảnh được tạo và nằm như arch/arm/boot/zImage
.
Trình giả lập
Do lỗi QEMU treo màn hình trắng nếu được biên dịch với llvm, người ta phải cài đặt gói apple-gcc42 từ kho lưu trữ bản sao của homebrew.
brew install homebrew/dupes/apple-gcc42
Và sau đó biên dịch và cài đặt qemu như:
brew install qemu —use-gcc
Bây giờ chúng tôi còn lại với tất cả những gì chúng tôi cần để bắt đầu phân phối RPi, vì vậy hãy bắt đầu như sau:
qemu-system-arm -M versatilepb -cpu arm1176 -hda debian6-19-04-2012.img -kernel zImage -append “root=/dev/sda2” -serial stdio -usbdevice tablet
Như được giới thiệu trên trang web của mluis .