我一直在尝试构建一个基于云的测试工具,它允许您使用一个或多个模拟的SBC (Beaglebone Black、cubieboard2等)来设置测试“工作区”。并且还在设备之间建立以太网网络(使用开放的或定制的专有协议)。
我最初计划使用在x86主机上运行的QEMU构建此工具,并发现初始测试非常慢。
我想知道我最好的加速性能的选择是什么,我可以在AWS bare-metal ARM instances上模拟这些SBCs吗?我知道亚马逊网络服务doesn't currently support nested virtualization,所以我不确定我在这里的选择范围。虚拟化这些测试设置并以裸机硬件速度执行代码的最佳方法是什么?
发布于 2021-03-13 03:26:32
Arm虚拟化扩展不支持“在v8主机上模拟旧的v7 CPU”(您可以模拟32位来宾,但它将是看到v8 CPU的32位来宾,特别是您的主机所拥有的CPU)。因此,QEMU不允许您使用KVM虚拟化这种电路板模型。您也不能在KVM下虚拟化TrustZone ( EL3 ),所以如果您的客户希望在EL3上运行,那么您就大错特错了。类似地,您也不能在KVM下运行期望EL2的来宾操作系统,除非您的主机CPU足够新,可以使用嵌套的虚拟化扩展。
您可以将一些使用KVM的东西组合在一起,只给来宾操作系统一个v8 CPU和您的SBC拥有的设备等,并希望来宾内核能够处理这种奇怪的混合设置。这是否有用取决于您尝试测试的内容。
根据我的经验,很多人都很满意“我测试的东西只需要一个Arm上的标准Linux用户空间,它并不关心硬件和设备的具体细节”(在这种情况下,你可以使用QEMU/KVM和它的'virt‘板,只给客户提供与主机相同的CPU )。另一组人真正关心硬件的细节,因为他们试图测试设备驱动程序或其他与硬件对话的代码;在这里,QEMU中的设备仿真的保真度通常是不够的,这些人发现他们需要使用真实硬件的板群(要么是独占的,要么是基于QEMU的设置,以方便冒烟测试和开发人员)。我不确定中间的群体有多大,他们需要看起来像特定电路板的东西,但对它是一个相对低保真的电路板模型感到满意……
https://stackoverflow.com/questions/66570811
复制相似问题