开发者社区> 异步社区> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

《树莓派实战秘籍》——2.6 技巧26仿真Pi

简介:
+关注继续查看

本节书摘来异步社区《树莓派实战秘籍》一书中的第2章,第2.6节,作者:【美】Ruth Suehle ,Tom Callaway,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.6 技巧26仿真Pi

树莓派实战秘籍
无论你是在旅行过程中没有带着Pi的情况下需要紧急测试什么东西,还是你的孩子已经接管了Pi而你一时找不着他,这个技巧有时可以很方便地在另一台机器上模拟Pi,这时QEMU就可以帮助你。

快速模拟器(QEMU,Quick EMUlator的简称)是一个开源的、托管的虚拟机管理程序。这意味着你可以用它在你平时的计算机(比如,一个x86的笔记本电脑)上来运行一个树莓派(使用ARM硬件)的Linux发行版。

它有两种模式,第一种是用户模式仿真,可以让你运行不是为你的机器编译的单个程序。不过本技巧的重点是QEMU的全系统仿真,它可以让你模拟一个完整的计算机——在本书中,这指的是树莓派。

首先安装QEMU,在Fedora上运行下面的命令:

a14aa92acc80871399f24700a914eb0cc0f56164

或者,在Debian/Ubuntu上运行这个命令:

fe867725b05bcd24daf07907622bc37d1b056dcf

为什么是这个特殊的内核?

你可能已经注意到,我们没有向你指出本书中的构建一个自定义内核在树莓派上启动的相关技巧(技巧22)。这是有意为之,因为那个内核将不能在qemu_上工作。Qemu模拟了范围广泛的硬件环境,但是树莓派还没有被发现是这些确切的硬件中的一个。

kenel-qemu文件用来在qemu中提供最接近的匹配,并提供了同等水平的ARM优化和运行时支持。它可以让你运行几乎所有在你的树莓派Linux发行版用户空间可以运行的东西,就像在树莓派上运行一样。最显著的例外是VideoCore库(及任何使用它们的应用程序),因为QEMU没有BCM2835片上系统的硬件仿真,这些应用程序将无法在qemu仿真器上正常运行。
创建一个工作目录,把你的发行版映像文件和kernel-qemu的副本放进去。在这个例子的剩下部分我们将使用Pidora 18的映像文件(pidora-18-r1c.img),并使用qemu作为目录名,你可以使用其他发行版复制这些教程,当然也可以用任何你喜欢的名字命名目录。

对这个映像文件运行file命令:

24eeea06de7edbc96dad994d03e89074b0fc7e96

当你挂载映像文件时使用分区2的startsectour数字(上述输出的粗体部分)乘以512作为偏移数。

177a01a6247d1fde55f798aa2378e579aa173367

现在在文本编辑器中打开 /mnt/pidora/etc/ld.so.preload文件,通过在唯一一行的前面添加一个#号注释该行,保存文件后,现在,你可以卸载它了:

2ac03b8391a3198b958ebf0231518f5437664412

现在你已经做好了在QEMU中启动Pidora的准备了:

392cbebf1444222e3eb04a0ebff3b04bdf3d33f7

有一些选项你需要设置:

f279c2553b15c1901785f66c5a308933d30fe1a1

你可以用这个选项告诉软件使用下载的kernel-qemu内核文件。如果你创建了自己的内核文件,则在这里用其名称+/路径+代替。

33c244af76dfbf2aa28eeb30a69eff1489806780

树莓派包含了一个ARM1176的内核,你可以用此选项指定。要查看QEMU提供的完整选项列表,请使用命令qemu-system-arm -cpu获取帮助。

如果你有一个老的QEMU安装或得到的是一个没有更新过的安装包,你使用-cpu选项时可能会遇到问题,因为老版本不支持ARM1176,你也许可以通过使用arm1136-r2替代来使之工作,不过更新你的QEMU版本将会更好。

screenshot

上面的命令将把你带到第一个开机画面,你可以像在一台实际的Pi上一样通过开机过程,最终它将会重启,而QEMU也将会关闭,你必须要再次启动它。只需要按向上箭头键一次获取前一次qumu-systemarm命令并再次运行它即可。

这次你将会一直启动到登录界面,你可以像在一台实际的树莓派上一样的使用它了。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
12049
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载