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

yon*_*igo 24 linux debugging qemu linux-kernel

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

  qemu -serial stdio -kernel <path to kernel> -hda <path to rootfs> -append "root=/dev/sda terminal = ttyS0"
Run Code Online (Sandbox Code Playgroud)

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

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

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

小智 39

  1. 删除-serial stdio参数
  2. 添加-nographic参数
  3. 并将内核参数更改terminal = ttyS0console=ttyS0.这应该可以解决问题.

qemu -nographic -kernel ./bzImage -hda ./image.hda -append root=/dev/sda console=ttyS0

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

  • 一些模拟机器需要`console = ttyAMA0,115200`而不是`console = ttyS0`.或者你可以在vinay的答案中提供两者. (4认同)

vin*_*yal 10

将此Redirect Qemu控制台引用到文件或主机终端? 获取qemu和终端上的日志.use "console=ttyAMA0,115200 console=tty highres=off console=ttyS0"