我正在尝试使用 qemu 调试 linux 内核的启动顺序, 我正在运行的命令是:
qemu -serial stdio -kernel <path to kernel> -hda <path to rootfs> -append "root=/dev/sda terminal = ttyS0"
在启动期间,所有内核消息都打印到 QEMU 窗口。 只有当引导完成后,我才会将提示返回到运行 QEMU 的终端。
现在我可以开始使用我正在运行的内核终端,并在终端而不是 QEMU 窗口中查看输出。
我如何将包括启动消息在内的所有消息发送到我的终端而不是 QEMU 窗口(因为我无法在该窗口中向上滚动..)?
最佳答案
- 删除
-serial stdio
参数 - 添加
-nographic
参数 - 并将内核参数
terminal = ttyS0
更改为console=ttyS0
。这应该可以解决问题。
qemu -nographic -kernel ./bzImage -hda ./image.hda -append root=/dev/sda console=ttyS0
您可能需要查看我用于内核开发的脚本:https://github.com/arapov/wrap-qemukvm (它不是很“生产”,但你可以在那里找到有用的 qemu
cli
参数)
关于linux - 将 QEMU 窗口输出重定向到运行 qemu 的终端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19565116/