【问题标题】:Virtualizing multiple SBCs on an ARM-based instance在基于 ARM 的实例上虚拟化多个 SBC
【发布时间】:2023-03-17 06:09:01
【问题描述】:

我一直在尝试构建一个基于云的测试工具,它允许您使用一个或多个模拟 SBC(Beaglebone Black、cubieboard2 等)设置测试“工作区”,并在设备之间设置以太网网络(使用开放或自定义专有协议)。

我最初计划使用在 x86 主机上运行的 QEMU 构建此工具,但发现初始测试非常缓慢。

我想知道提高性能的最佳选择是什么,我可以在AWS bare-metal ARM instances 上模拟这些 SBC 吗?我知道 AWS doesn't currently support nested virtualization 所以我不确定我的选择范围。虚拟化这些测试设置并以裸机硬件速度执行代码的最佳方法是什么?

【问题讨论】:

    标签: amazon-web-services embedded virtualization qemu


    【解决方案1】:

    Arm 虚拟化扩展不支持“在 v8 主机上模拟旧的 v7 CPU”(您可以模拟 32 位来宾,但它会是 32 位来宾看到 v8 CPU,特别是那个你的主人有)。所以QEMU不会让你用KVM虚拟化这种板子模型。您也无法在 KVM 下虚拟化 TrustZone (EL3),因此如果您的客户希望在 EL3 上运行,那么您就很不走运了。同样,您也不能在 KVM 下运行需要 EL2 的客户机,除非您的主机 CPU 足够新以具有嵌套的虚拟化扩展。

    您可以将一些使用 KVM 的东西一起破解,并为来宾提供 v8 CPU 以及您的 SBC 拥有的设备/等,并希望来宾内核能够处理这种奇怪的混合设置。这是否有用取决于您要测试的内容。

    根据我的经验,很多人对“我要测试的东西只需要 Arm 上的标准 Linux 用户空间,而不关心硬件和设备的具体细节”(其中如果你可以使用 QEMU/KVM 和它的 'virt' 板,只需给来宾提供与主机相同类型的 CPU)。另一群人真正关心硬件的细节,因为他们正在尝试测试设备驱动程序或其他与硬件对话的代码;通常在这里,QEMU 中的设备仿真的保真度是不够的,这些人发现他们需要使用真实硬件的电路板场(或者专门,或者除了基于 QEMU 的设置之外,以方便进行烟雾测试和开发人员)。我不确定中间群体的规模,他们需要看起来像特定板的东西,但对它是该板的保真度相对较低的模型感到满意......

    【讨论】:

      猜你喜欢
      • 2020-04-07
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      • 2020-04-30
      • 1970-01-01
      • 1970-01-01
      • 2019-05-24
      • 1970-01-01
      相关资源
      最近更新 更多