现在,我想简化一下事情,因为此解决方案涉及在虚拟机中运行debian只是为了在其上运行qemu。
我在google上搜索了如何在osx上直接设置qemu的指南,并找到了Matthew Yee-King的指南。我按照指示进行,直到最后一部分为止一切都很好。启动
qemu-system-arm
时,我看到出现QEMU窗口,但应用程序似乎死机了。一段时间后,它在活动管理器中显示为“无响应”。 我想念什么?如何使用QEMU在OSX上模拟RPI?
#1 楼
要在OSX上设置Raspberry Pi软件的仿真环境,将需要:一个用于RPi CPU体系结构的交叉编译工具。 (例如ARMEABI工具链)
RPi内核。
RPi根文件系统。
仿真器(QEMU)。
ARM的交叉编译工具体系结构。假设已经安装了Apple Developer的最新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
保存配置,然后让我们构建内核。请注意,编译应会失败,并抱怨脚本/ 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编译,则必须从自制软件的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
2014年7月1日在13:01
来自@ user1104942的建议是,为了在优胜美地中工作,可能必须更改以下内容。 #include
– mluis
2015年12月11日在11:06
不会安装此水龙头:github.com/nitsky/homebrew-stm32与github.com/jsnyder/arm-eabi-toolchain.git一样吗?
– andsens
16-2-13在13:33
毕竟是经过仿真和开发的,我可以仅将此.img存储在SD卡中并输入raspberrypi吗?
– mariomol
16年2月13日在16:15
在macOS 10.13.4上进行了尝试,仅在遇到问题之前进行了install-cross。另外,我从Homebrew apple-gcc42了解到,“由于上游不兼容,在比Mavericks更新的macOS版本上无法按预期方式编译或运行”。
–乔什·哈布达斯(Josh Habdas)
18年6月19日在9:42
#2 楼
在QEMU上有一个可以运行的付费选项:https://snorfi.us/raspiemu/
如果您不想为此付费,也可以在
https://sourceforge.net/projects/raspberrypiemulator/
中下载Alpha版本#3 楼
看起来“配置内核”步骤需要更多。请注意,make ARCH=arm CROSS_COMPILE=~/rpi/arm-cs-tools/bin/arm-none-eabi- menuconfig
应该是该目录中的文件之一,例如
arm-none-eabi-ar
或arm-none-eabi-as
等...
评论
您想模仿什么?实际上,RPi的Raspbian只是用于ARM体系结构的Debian Linux,加上RPi的特定驱动程序/库和预安装的软件。 QEMU不会模拟RPi的GPIO或GPU,它只是基于ARM的通用计算机,因此您可以启动Raspbian。因此,如果您想使用XBMC,文件服务器等,只需在VirtualBox上安装Debian Wheezy x86即可获得乐趣。您还可以安装Scratch,PyGame等我不确定我是否经过正确的思考,但是我想尝试在PI上尝试OpenCV甚至在ARM上使用OpenNI for ARM,并考虑首先使用模拟器进行一些测试(这样我可以锻炼我需要多少空间来完成所有这些工作) ,随身携带等等。)VirtualBox选项是更简单的解决方案吗?
是的,VirtualBox比带有QEMU的ARM仿真更简单/更快。顺便说一句,您可以编译适用于OS X的OpenCV(opencv.org)或在Linux的VirtualBox中下载它。在所有平台上都是相同的。我试图在RPi上使用OpenCV进行面部识别,但是速度非常慢。无法在OpenNI上推荐任何东西,对不起(但是我不认为QEMU可以正确模拟摄像机和RPi的速度)。
@ vk2虽然不是主要问题的话题,但是与我的目的有关,我最近发布了Pi Camera模块的OpenCV包装器:PiCapture,也可以作为OpenFrameworks插件使用。速度相当不错,特别是与使用USB相机相比时