QEMU支持BeagleBone

10

我想要模拟BeagleBone Black。似乎QEMU是唯一支持ARM Linux模拟的模拟器。但是我在获取正确模拟器方面遇到了困难。

我尝试使用从qemu.org构建的QEMU,但似乎“beagle”机器没有受到支持(还从“qemu-system-arm -machine help”的输出中未列出)支持的机器中也没有BeagleBone。我发现有些帖子称Linaro具有支持BeagleBone的qemu构建,并且可以在Ubuntu上使用apt-get进行安装。还有一个包含说明的YouTube视频:

https://www.youtube.com/watch?v=__6XmxOrL3o

然而,似乎这些说明已不再适用。我使用的是Ubuntu 14.04。我尝试了以下操作:

1)sudo add-apt-repository ppa:linaro-maintainers/tools

这个超时并报告错误的PPA格式。

2)然后我按照这里的说明操作:

https://wiki.linaro.org/Platform/Systems/Repository

然而,在添加这些存储库之后,没有添加qemu,因此在我的apt存储库中,我只有来自qemu.org的qemu(不支持BeagleBone)

3)然后我找到了这个页面:

https://launchpad.net/~linaro-maintainers/+archive/ubuntu/tools

所以我尝试了以下操作:

sudo add-apt-repository http://ppa.launchpad.net/linaro-maintainers/tools/ubuntu

然后还使用“sudo apt-key add”命令下载并添加了公钥。

这似乎是有效的,因为在执行 "sudo apt-get update" 和 "apt-cache show qemu-system" 后,我看到了以下内容:

软件包:qemu-system 来源:qemu-linaro 版本:2.2.0〜rc3+git8+gdb12451-63linaro+trusty 构架:amd64 维护者:Ubuntu开发人员 已安装大小:133812 依赖项:qemu-linaro-keymaps,libasound2(≥1.0.16),libbluetooth3(≥4.91),libbrlapi0.6,libc6(≥2.15),libcurl3-gnutls(≥7.16.3),libfdt1,libgcc1(≥1:4.7),libgl1-mesa-glx | libgl1,libglib2.0-0(≥2.24.0),libgnutls26(≥2.12.17-0),libncurses5(≥5.5-5〜),libpixman-1-0(≥0.15.16),libpng12-0(≥1.2.13-4),libpulse0(≥1:0.99.1),libsasl2-2(≥2.1.24),libsdl1.2debian(≥1.2.11),libstdc++6(≥4.6),libtinfo5,libuuid1(≥2.16),libvdeplug2,libx11-6,zlib1g(≥1:1.2.0) 建议:samba 中断:qemu(<< 0.11.0-2),qemu-kvm-extras(<< 0.13.50-2011.02-0〜rc1-0ubuntu1) 替换:qemu(<< 0.11.0-2),qemu-kvm-extras(<< 0.13.50-2011.02-0〜rc1-0ubuntu1)

首页:https://launchpad.net/qemu-linaro/

然而,即使安装了qemu-system(sudo apt-get install qemu-system),它仍然没有BeagleBone支持(qemu-system-arm -machine help不显示任何beagle)。

所以我想知道是否有人知道在Ubuntu上从哪里安装具有BeagleBone支持的QEMU。 是否应该添加另一个软件源? 我对Ubuntu、apt和Linaro都不熟悉,因此目前没有更好的主意。

1个回答

15

我看到了你的问题,因为我也一整天在尝试做同样的事情。我也在使用(X)ubuntu 14.04。

简而言之:没有支持Beagle Bone的 QEMU

关于qemu-linaro有一些OMAP3的支持,包括beaglebeaglexm,这些是针对Beagle BoardBeagle Board xM的。Beagle Board系列使用OMAP 3530,而Beagle Bone系列(像我一样的普通版和黑色版)使用OMAP 335x。

此外,我无法找到一个包含二进制qemu-linaro的工作PPA。您正在尝试安装的旧版本曾经包含QEMU,但现在不再包含 - 即使在trusty(14.04)。

根据Saucy (13.10)的软件包列表,qemu-linaro在该PPA中。

但是它在Trusty (14.04)中不见了。我不知道为什么您的apt-cache会显示任何内容 - 我甚至无法复制。

您可以构建支持OMAP 3和Beagle Board的版本的QEMU:

所以我所做的就是克隆git存储库并编译qemu-linaro。这很简单,您可能只需要添加一些-dev包来满足库依赖性。我的机器已经具备大部分要求。

此版本提供-M beagle或-M beaglexm选项。

我花了一整天的时间试图找出为什么我的贝狄尔骨MDL和U-Boot在崩溃之前一直崩溃,最终发现 != 。他们具有稍微不同的内存映射,并且不是相同的东西。

因此,我现在重新构建了我的测试镜像,针对Beagle 而不是,并且它可以使用最新的qemu-linaro引导!

很遗憾,OMAP 3尚未加入到主QEMU中。一年前有一些邮件列表交通,但似乎没有取得任何进展。似乎添加一个Beagle Bone机器类型并不难,但这还没有发生。


另外,关于构建qemu而不是安装它,我尝试按照https://dev59.com/BIfca4cB1Zd3GeqPpvKh上的指示进行操作,但我的机器在代理后面,无法使用代理使git工作。也就是说,我可以使用http协议使其工作,但不能使用git协议,而其中一些说明需要git协议。这可以在没有git的情况下完成吗? - Yevgeniy P
关于在Ubuntu 14.04上从源代码构建qemu-linaro,我基本上做的与您链接答案中相同的事情,只是我没有执行需要git子模块的pixman和dtc步骤。我不得不运行几次configure,如果由于缺少依赖而失败,则使用apt-get install添加它。例如,我必须安装libpixman-1-dev和libftd-dev以获取构建依赖项。如果您下载了qemu-linaro tarball,则是的,我认为可以在不使用git网络协议的情况下完成。 - Anders
1
我看到了linaro devpack的东西,得出结论这是一个我不想深入探究的分支。我主要对玩弄Yocto (https://www.yoctoproject.org/) 和在模拟器中运行U-Boot感兴趣(这个已经实现了!)。我按照非常全面的yocto文档中的步骤进行操作,其中包括添加meta-ti层以增加对beagle的支持。而且关于如何为beagle格式化SD卡映像,更别提在qemu中引导它的文档相当匮乏。这比评论中可以解释的更复杂。 - Anders
1
我肯定会说,在这些嵌入式板上构建和启动一个工作的Linux是一项“高级”任务。这是学习的绝佳方式,但要准备好花费时间,并确保您理解每个步骤,必要时进行实验。如果你真的卡住了,就提出新的具体问题,希望你能找到帮助。如果你有一个新的问题没有得到关注,你可以回复这个帖子并附上链接,也许我会有线索,但我在SO上的时间有限。 - Anders
3
自从这个答案发布已经将近4年时间了,我想知道是否有什么变化。我想仿制一台 BeagleBone Black,有人成功过吗? - Andrew
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接