为什么Buildroot的通用pc_x86_64_bios_defconfig图像挂在Virtualbox?

我试图确定一个buildroot(版本2017.02.4)configuration,我需要从软件环境问题中分离内核相关的问题。

所以我试图build立一个简单的磁盘映像,它将在一个Buildroot环境和一个真正的机器上工作。

我使用了一个通用configuration,将其构build到一个映像中,将其转换为一个vdi,然后将其连接到一个Virtualbox虚拟机。

make pc_x86_64_bios_defconfig make clean make VBoxManage output/images/disk.img output/images/disk.vdi 

这靴子,但挂在'引导Buildroot '

在这里输入图像说明

我也使用qemu_x86_64_defconfig(略作修改,使用genimage创buildgrub2磁盘映像),得到了相同的结果。 几年前我做过这个,所以我不明白为什么现在不行。

什么configuration导致这挂起?

Virtualbox客人需要一个特殊的钩子来正确启动吗?

更新:这些图像似乎在qemu kvm工作,所以它必须是一个Virtualboxconfiguration或规格问题。

pc_x86_64_bios_defconfig似乎是64位。 在Oracle VirtualBox中,即使主机操作系统是64位,所有64位虚拟机都需要硬件支持虚拟化(Intel VT-x或AMD-v)。 KVM只是做不同的虚拟化。

由于“Buildroot”string对于Virtualbox不是已知的,所以在创build机器时,它提供了“Other”和“Other / Unknown”的版本。

由于这个名字看起来非常通用,我推测这意味着它是不可知的。

在引擎盖下,这是一个32位的选项,并有一个名为“其他/未知(64位)”的“版本”。

在这里输入图像说明

只要我把这个改成了64位的选项,一切都奏效了。 这可能是一半的工作,因为对早期的CPU状态聪明的Grub主要是32位代码。

*有些网站暗示VT简单地通过了主机的比特大小,在我的情况下是64比特,这进一步加剧了我的假设。