如何使用内核映像启动 qemu-system-aarch64?

how to start qemu-system-aarch64 with a kernel image?

我刚刚安装了 qemu-system-aarch64,但不知道如何使用内核映像启动它。我有一个用于 arm64 机器的内核映像 vmlinux(arm 的 n1 sdp),我知道它不会工作,但我只想尝试 运行 在 arm64 虚拟机上使用它(关于选项的文档太长了).我试过了

qemu-system-aarch64 -machine virt -serial stdio -m 1G -kernel ../linux/out/n1sdp/vmlinux

但它没有给我任何回应(只是以没有消息结尾)。我应该怎么运行呢?

原则上,答案是“使用 -kernel 选项”,但这并不意味着 QEMU 可以神奇地 运行 您传递给该选项的任何内容。

您已尝试 运行 为 QEMU 上的一台机器构建的内核正在模拟另一台机器。一般来说,这是行不通的,除非内核编译时有足够的支持(aarch64 比 32 位 Arm 更常见,但如果你的内核是针对特定机器而不是一个发行版安装内核,它可能没有完整的驱动程序支持)。当它不工作时,通常发生的是内核崩溃并且无法打印出任何输出(它甚至可能没有编译正确的串行驱动程序!),因此“无响应”正是您应该期望的。

您应该做的是 运行 一个旨在 运行 在此机器上的内核。例如,您可以查看 本教程用于 运行 在 vi​​rt board 上安装标准的 Debian 内核。那直接 运行s 来自 QEMU 的内核。也可以让 QEMU 启动 UEFI BIOS,然后从 UEFI 加载内核,但我没有任何关于该方法的方便教程链接。