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

2.6 技巧26仿真Pi

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

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

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

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

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

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

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

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

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

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

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

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

有一些选项你需要设置:

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

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

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

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

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

时间: 2024-11-23 00:55:21

《树莓派实战秘籍》——2.6 技巧26仿真Pi的相关文章

《树莓派实战秘籍》——导读

前 言 树莓派的灵感诞生于埃本·厄普顿在剑桥大学负责计算机科学专业学生工作期间(参见前言中的描述),他发现准大学生需要有更多的机会获得编程经验才可以达到大学水平.如我们现在所知的,关于什么将会成为Pi的第一个概念设计诞生于2006年,阿尔法版在2011年年底通过验证,最初的10块板在2012年年初被拍卖,价格高达16 000英镑. 首批10 000台树莓派于开始销售,截至2011年年底,它的SD卡映像文件已经被下载超过了50000次,暗示其普及时代即将来临.当时两家英国的销售商Premier F

《树莓派实战秘籍》——1.17 技巧17添加重启按钮

1.17 技巧17添加重启按钮 树莓派实战秘籍也许你已经注意到Pi缺少了某种电子产品中很常见的东西:电源开关.版本2的B型树莓派对此做了一个小小的修补. 从你的计算机中拿走电源的on/off开关,虽不至于造成彻底的不方便,但肯定不只是造成了你的隐约不舒服这么简单,但这就是树莓派现在的情况.一个简单的修补方法是,不管你手中拿着的是什么主板,使用时都将它插入到带on/off开关的电源插板中.不过对于版本2的B型树莓派主板来说,你还有另一种选择. 这种板的一个新增功能是标记为P6的地方,它很容易被忽视

《树莓派实战秘籍》——2.2 技巧22构建一个定制内核

2.2 技巧22构建一个定制内核 树莓派实战秘籍 对于很多技巧来说,标准的预购建Linux内核映像已经足够了,不过有些需要的选项或驱动并没有被标准内核启用.这个技巧打开了一些额外的选项,并将对本书中其他的技巧有用. Linux内核是因为以下几个原因而成为一个奇妙的操作系统核心的:首先是它的多功能性,而且它原生支持了大量的架构和设备:然后是其开源代码库,树莓派基金会提供了预购建的专为支持树莓派硬件的客制化的Linux内核映像及相应的源代码树,让你可以建立你自己定制的可以工作在树莓派上的内核映像.这

《树莓派实战秘籍》——1.13 技巧13给Pi分配静态IP地址

1.13 技巧13给Pi分配静态IP地址 树莓派实战秘籍如果你希望每次都能够通过同一个IP地址连接到Pi,而不是临时去查看它,那么你需要为它分配一个静态IP地址. 许多ISP使用动态IP寻址,这意味着你每次连接到互联网时都会得到一个不同的IP地址.如果你要定期通过SSH连接到Pi(参见技巧12),以使用VoIP(参见技巧32)或者因为其他原因需要每次都要有相同的IP地址,你可以设置一个静态的IP地址. 在Pidora中,如果你运行的是headless模式,那么你可以按照技巧11的说明来做.如果不

《树莓派实战秘籍》——2.8 技巧28监视Pi的IP地址

2.8 技巧28监视Pi的IP地址 当然,你可以在每次需要知道Pi的IP地址时使用ifconfig命令,或者你也可以在任何时候随时查看它. 这个技巧全部都是关于获取Pi的IP地址的.除非你将Pi一直连着显示器和键盘,或者静态分配它的IP,你没有其他简单的方法确定其IP地址.但如果使用一点点硬件和很少的软件,你就可以在任何你想了解的时候回答这个问题,只需要瞟一眼Pi就可以,如图2-12所示: 我们如何实现这个神奇的壮举?好了,关键在于另一个Adafruit项目套件:LCD Pi Plate1.Ad

《树莓派实战秘籍》——1.15 技巧15连接GPIO脚到面包板上

1.15 技巧15连接GPIO脚到面包板上 树莓派实战秘籍 在你构建电子项目的时候,免焊面包板是一个相当有用的朋友,尤其是在原型设计或只是测试设备的时候更是如此.让我们动手做一个简单的到树莓派的连接. 虽然你可以直接通过常见的跳线或者直接在添加的设备和GPIO的引脚之间焊接一个线来简单地连接树莓派GPIO引脚和设备,但让你工作的空间越大,你可以发挥的余地就会越多,我们可靠的老朋友面包板正可以在这方面给你提供帮助.面包板如图1-7所示,即使你以前从未做过任何一个电子项目,你应该也注意到这家伙那白色

《树莓派实战秘籍》——2.3 技巧23更新到最新的预建内核

2.3 技巧23更新到最新的预建内核 树莓派实战秘籍 让你的树莓派使用最新的Linux内核?你当然可以这么做,而且有一种方法可以让你不必从源代码构建就能够获取它们. 树莓派基金会的好人们经常努力工作增加新的功能到Linux内核源代码树中,而且他们又进一步定期更新一份预构建的Linux内核映像文件的拷贝.这个内核专门为树莓派配置了一系列选项及模块.使用这个内核意味着你可以确定所有内置到树莓派的硬件,以及任何树莓派的特定功能都可以正确地启动. 发行版特点 一些Linux发行版可能假定某些没有在树莓派

《树莓派实战秘籍》——1.9 技巧09解决电源问题

1.9 技巧09解决电源问题 树莓派实战秘籍 Pi并不需要很多功率,但这也表示它所要求的功率就是它所需要的功率,如果供电过多或不足,都会造成运行时的问题. 树莓派运行时需要一个5V(DC)电源,可以从专用的Micro USB B型端口(在主板上丝印标记为"Power")供电,或者从GPIO扩展(主板上标记为"P1")引脚(具体来说,5V引脚的位置是P1-02和P1-04)供电. 如果你有一个可以用于大部分Android手机的充电器,那么你也就同时有了一根Pi的电源线

《树莓派实战秘籍》——1.12 技巧12连接SSH

1.12 技巧12连接SSH 树莓派实战秘籍 对于任何headless项目.以及任何从方便的角度来说和你相距较远的项目,或者仅仅只是因为你懒得穿过房间,这些情况下你都需要知道如何SSH到你的树莓派上. OpenSSH,由OpenBSD项目为安全通信所创建的开源的工具集,很可能在你选择的任何发行版上都有效. 如果你有一点点复古倾向,请注意"Squeeze"这个在"Wheezy"之前的版本,它并没有在默认情况下运行SSH. 如果你不能确定,你要做的就是尝试SSH到你的P