将QEMU窗口输出重定向到运行qemu的终端

时间:2013-10-24 11:49:46

标签: linux debugging linux-kernel qemu

我试图用qemu调试linux内核的启动顺序, 我正在运行的命令是:

  qemu -serial stdio -kernel <path to kernel> -hda <path to rootfs> -append "root=/dev/sda terminal = ttyS0"

在引导期间,所有内核消息都将打印到QEMU窗口。 只有当引导完成后,我才会将提示返回到终端,我在QEMU中运行。

现在我可以开始使用我正在运行的内核终端并在终端中查看输出,而不是在QEMU窗口中。

如何将所有消息(包括引导消息)发送到终端而不是QEMU窗口(因为我无法在该窗口中向上滚动..)?

3 个答案:

答案 0 :(得分:35)

  1. 删除-serial stdio参数
  2. 添加-nographic参数
  3. 并将内核参数terminal = ttyS0更改为console=ttyS0。这应该可以解决问题。
  4. qemu -nographic -kernel ./bzImage -hda ./image.hda -append root=/dev/sda console=ttyS0

    您可能需要检查我用于内核开发的脚本:https://github.com/arapov/wrap-qemukvm(它不是非常“生产”,但您可以在那里找到有用的qemu cli参数)

答案 1 :(得分:10)

参考此Redirect Qemu console to a file or the host terminal?  获取qemu和终端上的日志.use "console=ttyAMA0,115200 console=tty highres=off console=ttyS0"

答案 2 :(得分:3)

将Qemu输出重定向到终端可能会导致一些问题(我个人不喜欢它)。您可以使用-noframe之类的选项(这将创建新窗口,但不会创建任何窗口框架)或-curses来体验终端上的qemu输出。