用QEMU模拟树莓派的方法

原文译至:https://blog.ymyzk.com/2013/12/raspberry-pi-qemu/

下面介绍用QEMU模拟Raspberry Pi的方法. 采用了这种方法后就算没有开发板也能进行测试.

开发环境

测试用的Host OS环境是 Debian 7.2 Wheezy amd64.
Guest OS是, 对Raspberry Pi进行优化后的 Debian Raspbian (2013-09-15) .

2014/7/31 追加: Debian 8 jessie amd64, QEMU 2.0.0, Raspbian (2014-06-20) 也用同样的步骤确认过动作.

安装QEMU

先安装QEMU.

sudo aptitude install qemu

执行下面的命令来检查需要的CPU是否被支持了. 如果arm1176 被显示就OK.
arm1176 没有被表示的话, 或者是重新编译QEMU, 或者是查找其他的Binary.

 
qemu-system-arm -cpu'?' | grep arm1176

映像的下载

创建合适的目录, 从http://www.raspberrypi.org/downloads 下载 Raspbian 映像并展开.
在同一个目录下从 http://xecdesign.com/downloads/linux-qemu/kernel-qemu 下载内核映像文件.

第一次启动

执行下面的命令, 第一次启动qemu.


qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append"root=/dev/sda2 panic=1 rootfstype=ext4 rw init=/bin/bash"-hda 2013-09-25-wheezy-raspbian.img

编集/etc/ld.so.preload.

 
nano/etc/ld.so.preload

如下所示, 注释掉第一行并保存, 关闭文件.

 
#/usr/lib/arm-linux-gnueabihf/libcofi_rpi.so

下面的步骤可选。 QEMU 模拟器上磁盘是认作 /dev/sda , 但是由于实机上是认作 /dev/mmcblk0 所以要设定对应的符号链接。
创建/etc/udev/rules.d/90-qemu.rules 并追加以下记录.

/etc/udev/rules.d/90-qemu.rules
KERNEL=="sda", SYMLINK+="mmcblk0"
KERNEL=="sda?", SYMLINK+="mmcblk0p%n"
KERNEL=="sda2", SYMLINK+="root"

结束。

 
exit

起动

起动下面的命令。


qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append"root=/dev/sda2 panic=1 rootfstype=ext4 rw"-hda 2013-09-25-wheezy-raspbian.img

用用户名: pi, 密码: raspberry 登录, 这样就能起动 X.


关于选项

关于QEMU 起动时候的选项的说明整理了一下.

-kernel kernel-qemu

使用下载的内核映像 kernel-qemu.

-cpu arm1176

模拟ARM1176 CPU. Raspberry Pi 板上搭载了 Broadcom BCM2835, 这个处理器用的是ARM1176JZ-F.

-m 256

RAM的大小是256MB. 设定成比256MB大的值板子好像不能启动.

-M versatilepb

设定模拟的开发板类型. versatilepb 是 ARM Versatile Platform Board

-no-reboot

不重启退出.

-serial stdio

重定向Guest 的串口到Host的标准输入输出.

-append “root=/dev/sda2 panic=1 rootfstype=ext4 rw”

内核的命令行.

-hda 2013-09-25-wheezy-raspbian.img

Harddisk 0 使用 2013-09-25-wheezy-raspbian.img.

其他

就用那样的映像的话磁盘的空余容量比较少, 根据需要可以需要扩张磁盘的大小. 详情请参照 Raspberry Pi のイメージファイルを拡張する.

参考

没有更多推荐了,返回首页