Arm 在QEMU下运行vmlinux ELF

Arm 在QEMU下运行vmlinux ELF,arm,qemu,firmware,Arm,Qemu,Firmware,我有一个vmlinux ELF文件要在QEMU下运行 我对qemu系统arm.exe的参数是: 正确的-cpu参数 versatilepb-机器,我不确定它是否是正确的选择,但无法通过-cpu帮助查看其他选项 传递vmlinux文件的-kernel标志 带有“console=ttyam0 console=tty1 console=ttyS0”内核参数的-serial stdio-nographic标志 为什么我看不到任何输出?我还尝试使用-D标志来获取日志文件。QEMU可以运行vmlinux

我有一个vmlinux ELF文件要在QEMU下运行

我对qemu系统arm.exe的参数是:

  • 正确的-cpu参数
  • versatilepb-机器,我不确定它是否是正确的选择,但无法通过-cpu帮助查看其他选项
  • 传递vmlinux文件的-kernel标志
  • 带有“console=ttyam0 console=tty1 console=ttyS0”内核参数的-serial stdio-nographic标志

为什么我看不到任何输出?我还尝试使用-D标志来获取日志文件。

QEMU可以运行vmlinux吗?我还以为这是一张赤裸裸的照片。不管怎样,您的内核是为哪台机器构建的?你需要模拟它期望运行的东西——随机挑选一些可能有不同外设和不同内存布局的东西是不太可能工作的。我确实对versatilepb有疑问,但据我所知,我没有太多选择,所以至少我希望看到一些错误,但什么也没有。关于映像,什么是针对vmlinux的裸映像?我根本不指望从错误的机器中得到任何东西:如果内存与内核代码所期望的位置不同,它会很早崩溃和烧坏;如果UART位于不同的地址,并且/或者是一个不兼容的模型,那么任何输出的尝试都是行不通的。这两种情况都很可能发生。我所说的(z)映像是指在真正的机器上引导的剥离原始二进制文件(在构建内核后的arch/arm/boot/中找到),而不是中间的vmlinux ELF。你能告诉我一个特定的文件吗,比如在运行的Ubuntu中?据我所知,引导加载程序跳转到vmlinuz文件或bzImage,这就是你的意思?如果是这样,我应该将这样的图像作为QEMU内核参数传递吗?下面是一个最小的可运行示例: