Linux kernel 是否可以使用qemu为特定板运行包含内核和DTB文件的rootfs

Linux kernel 是否可以使用qemu为特定板运行包含内核和DTB文件的rootfs,linux-kernel,arm,yocto,qemu,Linux Kernel,Arm,Yocto,Qemu,我们的硬件供应商为网关设备(ARM softfloat)提供基于yocto的rootfs作为tar文件。该文件包括该板的内核映像和DTB文件。是否可以使用qemu运行这个rootfs而不做任何修改或只做很少的修改?我提取了tar文件并创建了一个CPIO存档(将内核映像保留在外部),并尝试了以下命令: sudo qemu-system-arm -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,i

我们的硬件供应商为网关设备(ARM softfloat)提供基于yocto的rootfs作为tar文件。该文件包括该板的内核映像和DTB文件。是否可以使用qemu运行这个rootfs而不做任何修改或只做很少的修改?我提取了tar文件并创建了一个CPIO存档(将内核映像保留在外部),并尝试了以下命令:

sudo qemu-system-arm -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no    -kernel boot/zImage  -initrd ../initramfs.gz   -machine versatilepb -m 2012
但它只是显示了一个空白的UI窗口。这不可能吗

或者我需要向我们的硬件供应商询问机器设置为“qemuarm”的yocto构建吗


注意:如果QEMU无法模拟DTB中的任何硬件,那么这是正常的,这不太可能工作到足够的程度。但是,您的硬件供应商在法律上有义务分发源代码,并且(考虑到一些司法管辖区的挑剔)还必须分发用于构建rootfs的元数据层。因此,与其请求帮助,不如请求您的权利,然后构建您需要的任何东西来帮助您的开发/调试需求


注意:这可能会将源排除在它们提供的自定义应用程序之外。如果您打算使用这样的工具,可以进行讨论。

运行rootfs是什么意思?您想运行应用程序还是检查任何端口?你想要什么样的仿真?