OSX'te RPI nasıl başarılı bir şekilde taklit edilir?


20

VirtualBox üzerinden OSX üzerinde RPI taklit etmek için bu kılavuzu takip ettim ve işe yarıyor. Şimdi bu çözümü biraz basitleştirmek istiyorum çünkü bu çözüm de qemu'yu çalıştırmak için sanal bir makinede debian çalıştırmayı içeriyor.

Qemu'yu doğrudan osx üzerinde nasıl kuracağım konusunda rehberler buldum ve Matthew Yee-King'in rehberini buldum . Talimatları takip ettim ve son bölüme kadar her şey iyi görünüyor. Ben başlattığınızda qemu-system-armben QEMU penceresi görünür bkz ancak uygulama dondurmak gibi görünüyor. Bir süre sonra Etkinlik Yöneticisi'nde Yanıt Vermiyor olarak görünür.

Neyi kaçırıyorum ? QEMU ile OSX üzerinde RPI'yi nasıl taklit edebilirim?


2
Neyi taklit etmek istersiniz? Aslında RPi Raspbian sadece ARM mimarisi için Debian Linux artı RPi'nin özel sürücüleri / kütüphaneleri ve önceden yüklenmiş yazılımdır. QEMU, RPi'nin GPIO veya GPU'sunu taklit etmez, sadece Raspbian'ı başlatmanıza izin veren genel ARM tabanlı bir bilgisayardır. Eğer XBMC, dosya sunucusu ve benzeri ile oynamak istiyorsanız, sadece VirtualBox Debian Wheezy x86 yükleyin ve eğlenin. Ayrıca Scratch, PyGame vb.
Yükleyebilirsiniz

Bunu doğru bir şekilde düşündüğümden emin değilim, ancak OpenCV'yi ve belki de ARM için PI'de OpenNI'yi denemek istiyorum ve önce bir emülatör kullanarak önce bazı testler yapmayı düşündüm (böylece tüm bunlar için ne kadar alana ihtiyacım olduğunu çalışabilirim) , hareket halindeyken oynayın vs.) VirtualBox seçeneği daha basit bir çözüm müdür?
George Profenza

1
Evet, VirtualBox QEMU ile ARM emülasyonundan daha basit / daha hızlıdır. Bu arada, OS X için OpenCV'yi ( opencv.org ) derleyebilir veya VirtualBox'ta Linux'ta indirebilirsiniz. Tüm platformlarda aynı. Yüz tanıma için RPi'de OpenCV kullanmaya çalıştım, çok yavaştı. Üzgünüm OpenNI bir şey tavsiye edemez (ama QEMU kamera ve RPi hızını doğru taklit sanmıyorum).
kolontsov

@ vk2 her ne kadar ana soru konusu kapalı, ancak amacımla ilgili olarak, son zamanlarda Pi Kamera modülü için bir OpenCV sarmalayıcı çıkardım : PiCapture , aynı zamanda bir OpenFrameworks eklentisi olarak da mevcut . Hız, özellikle bir USB kamera kullanmaya kıyasla oldukça iyi
George Profenza

Yanıtlar:


16

OSX'te Raspberry Pi yazılımının taklit ortamını kurmak için aşağıdakilere ihtiyaç duyulacaktır:

  • RPi'nin CPU mimarisi için bir Çapraz Derleme Aracı. (örn. ARM EABI Takım Zinciri)
  • RPi Çekirdeği.
  • RPi kök dosya sistemi.
  • Emülatör (QEMU).
  • ARM mimarisi için Çapraz Derleme Aracı.

Apple Developer ve homebrew'dan en son Xcode ve komut satırı araçlarının zaten yüklü olduğunu varsayarsak, bağımlılıkları yüklemelidir:

brew install mpfr gmp libmpc libelf texinfo

Aracı tut ve derle:

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 Çekirdek Derleme

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

Yapılandırma dosyasını alın ve çekirdeği yapılandırın:

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

Yapılandırmayı kaydedin ve daha sonra çekirdeği oluşturalım. Derlemenin başarısız olması ve / mod / mk_elfconfig komut dosyalarına dahil edilmesinden şikayet etmesi gerektiğini unutmayın. Varsa, dosyayı oluşturmanız gerekir:

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

Düzenleyin ve aşağıdakileri yazın:

#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

ve yapım sürecini takip edin:

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

Görüntü dosyası oluşturulur ve olarak bulunur arch/arm/boot/zImage.

Emülatör

Eğer llvm ile derlenmişse QEMU asılı bir beyaz ekran hatası nedeniyle, homebrew dupes deposundan apple-gcc42 paketini yüklemeniz gerekir.

brew install homebrew/dupes/apple-gcc42

Ve sonra qemu'yu derleyin ve yükleyin:

brew install qemu —use-gcc

Şimdi RPi dağıtımını başlatmak için ihtiyacımız olan her şeyden ayrıldık, bu yüzden şöyle başlayalım:

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

Mluis'in web sitesinde belirtildiği gibi .


Soruyu önemli bölümleriyle yanıtladı.
mluis

1
@ User1104942'nin bir önerisi olarak, Yosemite'de çalışmak için aşağıdakileri değiştirmek gerekebilir. #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


Sonuçta taklit ve geliştirilmiş, ben sadece bu .img bir SD kart ve ahududu girişinde saklayabilirsiniz?
mariomol

Bunu macOS 10.13.4'te denedim ve sadece make install-crosssorunlara çarpmadan önce olduğu kadar var . Ayrıca, Homebrew'dan apple-gcc42"yukarı yönlü uyumsuzluk nedeniyle Mavericks'ten daha yeni macOS sürümlerinde beklendiği gibi derlenmediğini veya çalışmadığını" öğrendim .
Josh Habdas

3

QEMU üzerinden çalışan çalıştırılmaya hazır ücretli bir seçenek vardır: https://snorfi.us/raspiemu/

Bunun için ödeme yapmak istemiyorsanız, alfa sürümünü de indirebilirsiniz. https://sourceforge.net/projects/raspberrypiemulator/


0

'Çekirdeği yapılandır' adımının biraz daha fazlasına ihtiyacı var gibi görünüyor. Bunu not et

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

dizindeki arm-none-eabi-arveya benzeri dosyalardan biri olmalıdır arm-none-eabi-as...

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.