OSX에서 RPI를 성공적으로 에뮬레이트하는 방법은 무엇입니까?


20

VirtualBox를 통해 OSX에서 RPI를 에뮬레이트하기 위해이 가이드 를 따랐 습니다. 이제이 솔루션에는 qemu를 실행하기 위해 가상 머신에서 데비안을 실행하는 것이 포함되어 있기 때문에 상황을 약간 단순화하고 싶습니다.

나는 osx에서 qemu를 똑바로 설정하는 방법에 대한 가이드를 봤고 Matthew Yee-King 's guide를 찾았습니다 . 나는 지시를 따랐고 마지막 부분까지는 모두 괜찮아 보인다. 시작 qemu-system-arm하면 QEMU 창이 나타나지만 응용 프로그램이 정지 된 것 같습니다. 잠시 후 Activity Manager에서 응답하지 않는 것으로 나타납니다.

내가 무엇을 놓치고 있습니까? QEMU를 사용하여 OSX에서 RPI를 어떻게 에뮬레이트합니까?


2
무엇을 모방하고 싶습니까? 실제로 RPi의 Raspbian은 ARM 아키텍처 용 Debian Linux와 RPi의 특정 드라이버 / 라이브러리 및 사전 설치된 소프트웨어입니다. QEMU는 RPi의 GPIO 또는 GPU를 에뮬레이트하지 않으며 Raspbian을 시작할 수있는 일반적인 ARM 기반 컴퓨터 일뿐입니다. 따라서 XBMC, 파일 서버 등을 사용하려면 VirtualBox에 Debian Wheezy x86을 설치하고 즐기십시오. 또한 Scratch, PyGame 등을 설치할 수 있습니다
kolontsov

확실하게 생각하지는 않지만 PI에서 OpenCV 및 OpenNI for ARM ARM을 사용 해보고 에뮬레이터를 먼저 사용하여 몇 가지 테스트를 먼저 생각하고 싶습니다. VirtualBox 옵션이 더 간단한 솔루션입니까?
George Profenza

1
예, VirtualBox는 QEMU를 사용한 ARM 에뮬레이션보다 단순 / 빠릅니다. 그런데 OS X 용 OpenCV ( opencv.org ) 를 컴파일 하거나 Linux에서 VirtualBox로 다운로드 할 수 있습니다. 모든 플랫폼에서 동일합니다. 얼굴 인식을 위해 RPi에서 OpenCV를 사용하려고 시도했지만 매우 느 렸습니다. OpenNI에서 아무것도 추천 할 수 없습니다. 죄송하지만 QEMU가 카메라와 RPi의 속도를 정확하게 에뮬레이트한다고 생각하지 않습니다.
kolontsov

@ vk2는 주요 질문에 대한 주제는 아니지만 내 목적과 관련이 있지만 최근 Pi 카메라 모듈 용 PiCture , OpenFrameworks addon 으로도 사용할 수 있는 OpenCV 래퍼를 출시했습니다 . 특히 USB 카메라를 사용하는 것과 비교했을 때 속도는 꽤 괜찮습니다
George Profenza

답변:


16

OSX에서 Raspberry Pi 소프트웨어의 에뮬레이트 된 환경을 설정하려면 다음이 필요합니다.

  • RPi의 CPU 아키텍처를위한 크로스 컴파일 툴. (예 : ARM EABI 툴체인)
  • RPi 커널.
  • RPi 루트 파일 시스템
  • 에뮬레이터 (QEMU).
  • ARM 아키텍처를위한 크로스 컴파일 도구

Apple Developer 및 homebrew의 최신 Xcode 및 명령 줄 도구가 이미 설치되어 있다고 가정하면 종속성을 설치해야합니다.

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

구성을 저장하고 나중에 커널을 만들어 봅시다. 컴파일이 실패하고 scripts / 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.

에뮬레이터

llvm으로 컴파일 된 경우 QEMU에 흰색 화면이 멈추는 버그로 인해 homebrew의 dupes 저장소에서 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의 웹 사이트 에서 참조하십시오 .


필수 부분으로 질문에 대답했습니다.
mluis

1
@ user1104942의 sugestion으로, 요세미티에서 일하기 위해 다음을 변경해야 할 수도 있습니다. #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

이 탭을 설치하지 않을까요 : github.com/nitsky/homebrew-stm32 과 동일 할 github.com/jsnyder/arm-eabi-toolchain.git를 ?
andsens

에뮬레이션하고 개발 한 후에이 .img를 SD 카드에 저장하고 raspberrypi에 입력 할 수 있습니까?
mariomol

macOS 10.13.4에서 이것을 시도했으며 make install-cross문제가 발생하기 전까지 만 도달했습니다. 또한 Homebrew에서 apple-gcc42"업스트림 비 호환성으로 인해 Mavericks보다 최신의 macOS 버전에서는 예상대로 컴파일되거나 작동하지 않습니다."
Josh Habdas 2018 년

3

QEMU를 실행하는 유료 옵션을 실행할 준비가되었습니다. https://snorfi.us/raspiemu/

당신이 그것을 지불하고 싶지 않다면 당신은 또한에서 알파 버전을 다운로드 할 수 있습니다 https://sourceforge.net/projects/raspberrypiemulator/


0

'커널 구성'단계에 조금 더 필요한 것 같습니다. 참고

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

같은 디렉토리에있는 파일 중 하나 여야합니다 arm-none-eabi-ar또는 arm-none-eabi-as등 ...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.