Bagaimana cara berhasil meniru RPI di OSX?

20

Saya mengikuti panduan ini untuk meniru RPI di OSX via VirtualBox dan berfungsi. Sekarang saya ingin sedikit menyederhanakan karena solusi ini melibatkan menjalankan debian di mesin virtual hanya untuk menjalankan qemu di atasnya.

Saya mencari panduan tentang cara mengatur qemu langsung di osx dan mencari panduan Matthew Yee-King . Saya mengikuti instruksi dan semuanya tampak baik-baik saja sampai bagian terakhir. Ketika saya meluncurkan qemu-system-armsaya melihat jendela QEMU muncul tetapi aplikasi tampaknya membeku. Setelah beberapa saat muncul sebagai Tidak Menanggapi di Activity Manager.

Apa yang saya lewatkan? Bagaimana cara meniru RPI di OSX dengan QEMU?

George Profenza
sumber
2
Apa yang ingin Anda tiru? Sebenarnya RPp Raspbian hanyalah Debian Linux untuk arsitektur ARM plus driver / pustaka khusus RPi dan perangkat lunak yang sudah diinstal sebelumnya. QEMU tidak meniru GPIO atau GPU RPi, itu hanya komputer berbasis ARM generik yang memungkinkan Anda untuk memulai Raspbian. Jadi jika Anda ingin bermain dengan XBMC, file server dan sebagainya, cukup instal Debian Wheezy x86 di VirtualBox dan bersenang-senang. Anda juga dapat menginstal Scratch, PyGame dll
kolontsov
Saya tidak yakin saya memikirkan ini dengan benar, tetapi saya ingin mencoba OpenCV dan mungkin OpenNI untuk ARM pada PI dan berpikir untuk melakukan beberapa tes terlebih dahulu menggunakan emulator terlebih dahulu (jadi saya bisa menghitung berapa banyak ruang yang saya butuhkan untuk semua itu , bermainlah dengan itu saat bepergian, dll.) Apakah opsi VirtualBox solusi yang lebih sederhana?
George Profenza
1
Ya, VirtualBox lebih sederhana / lebih cepat daripada emulasi ARM dengan QEMU. Omong-omong, Anda dapat mengkompilasi OpenCV untuk OS X ( opencv.org ) atau mengunduhnya di Linux dalam VirtualBox. Itu sama di semua platform. Saya mencoba menggunakan OpenCV pada RPi untuk pengenalan wajah, itu sangat lambat. Tidak dapat merekomendasikan apa pun di OpenNI, maaf (tapi saya tidak berpikir bahwa QEMU mengemulasi kecepatan kamera dan RPi dengan benar).
kolontsov
@ vk2 meskipun di luar topik pertanyaan utama, tetapi terkait dengan tujuan saya, saya baru-baru ini merilis pembungkus OpenCV untuk modul Pi Camera: PiCapture , juga tersedia sebagai addon OpenFrameworks . Kecepatannya lumayan, terutama dibandingkan dengan menggunakan kamera USB
George Profenza

Jawaban:

16

Untuk mengatur lingkungan yang ditiru dari perangkat lunak Raspberry Pi di OSX, Anda perlu:

  • Alat Kompilasi Silang untuk arsitektur CPU RPi. (mis. ARM EABI Toolchain)
  • Kernel RPi.
  • Sistem file root RPi.
  • Emulator (QEMU).
  • Alat Kompilasi Lintas untuk arsitektur ARM.

Dengan asumsi satu sudah memiliki Xcode terbaru dan alat-alat baris perintah dari Apple Developer dan homebrew diinstal, maka harus menginstal dependensi:

brew install mpfr gmp libmpc libelf texinfo

Raih dan kompilasi alat:

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

Kompilasi Kernel RPi

mkdir ~/rpi/kernel
cd ~/rpi/kernel
git clone --depth=1 https://github.com/raspberrypi/linux.git
cd linux

Ambil file konfigurasi dan konfigurasikan kernel:

cp arch/arm/configs/bcmrpi_cutdown_defconfig .config
make ARCH=arm CROSS_COMPILE=~/rpi/arm-cs-tools/bin/arm-none-eabi- menuconfig

Simpan konfigurasi dan mari kita membangun kernel setelahnya. Perhatikan bahwa kompilasi harus gagal dan mengeluh tentang penyertaan dalam skrip / mod / mk_elfconfig. Jika ya, kita harus membuat file:

sudo touch /usr/local/include/elf.h

Edit dan tulis yang berikut ini:

#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

dan ikuti proses pembangunan:

make ARCH=arm CROSS_COMPILE=~/rpi/arm-cs-tools/bin/arm-none-eabi- -k

File gambar dibuat dan ditempatkan sebagai arch/arm/boot/zImage.

Emulator

Karena bug pada layar putih yang menggantung QEMU jika dikompilasi dengan llvm, seseorang harus menginstal paket apple-gcc42 dari repositori dupes homebrew.

brew install homebrew/dupes/apple-gcc42

Dan kemudian kompilasi dan instal qemu seperti:

brew install qemu —use-gcc

Sekarang kita pergi dengan semua yang kita butuhkan untuk memulai distribusi RPi jadi mari kita mulai seperti:

qemu-system-arm -M versatilepb -cpu arm1176 -hda debian6-19-04-2012.img -kernel zImage -append “root=/dev/sda2” -serial stdio -usbdevice tablet

Seperti yang dirujuk di situs web mluis .

mluis
sumber
Menjawab pertanyaan dengan bagian-bagian penting.
mluis
1
Sebagai saran dari @ user1104942, orang mungkin harus mengubah yang berikut agar dapat bekerja di Yosemite. #include <libelf/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 #define R_IA64_IMM64 7 #define R_PPC_ADDR32 8 #define R_PPC64_ADDR64 9 #define R_SH_DIR32 10 #define R_SPARC_64 11 #define R_X86_64_64 12 #define R_390_64 13 #define R_MIPS_64 14
mluis
Tidak menginstal ketukan ini: github.com/nitsky/homebrew-stm32 melakukan hal yang sama dengan github.com/jsnyder/arm-eabi-toolchain.git ?
andsens
setelah semua ditiru dan dikembangkan, bisakah saya menyimpan .img ini di kartu SD dan input di raspberrypi?
mariomol
Mencoba ini di macOS 10.13.4 dan hanya sampai sejauh make install-crosssebelum mengenai masalah. Juga, saya belajar dari Homebrew apple-gcc42"tidak mengkompilasi atau berfungsi seperti yang diharapkan pada versi macOS yang lebih baru daripada Mavericks karena ketidakcocokan hulu."
Josh Habdas
3

Ada opsi berbayar siap berjalan yang berjalan di atas QEMU: https://snorfi.us/raspiemu/

Jika Anda tidak ingin membayarnya, Anda juga dapat mengunduh versi alpha di https://sourceforge.net/projects/raspberrypiemulator/

Plot Felipe
sumber
0

Sepertinya langkah 'konfigurasikan kernel' perlu lebih banyak. Catat itu

make ARCH=arm CROSS_COMPILE=~/rpi/arm-cs-tools/bin/arm-none-eabi- menuconfig 

harus menjadi salah satu file di direktori itu seperti arm-none-eabi-aratau arm-none-eabi-asdll ...

dangjavageek
sumber