我有一个具有以下配置选项的 Linux 内核:
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="console=tty0 init=/init"
CONFIG_CMDLINE_OVERRIDE=y
我用这样的方式执行 Qemu:
qemu-system-x86_64 -nographic -kernel my-vmlinuz
这(正确地)显示没有输出,因为-nographic
隐式地将来宾ttyS0
(而不是tty0
)附加到主机stdin
/ stdout
。我如何告诉 Qemu 将 guest 附加tty0
到主机stdin
/ stdout
?
参考:
答案1
我认为你不能。虚拟终端(tty1
等)是在 VGA 文本模式之上实现的,它基本上为系统提供了一个内存映射的字符数组(+ 属性)。然后内核根据需要写入该数组。然而,文件流stdout
本质上是线性的,因此它们并不完全兼容。
然而,您可以做的是使用qemu -curses
来查看来宾的文本模式 VGA 输出;或者,输入console=ttyS0
内核命令行,让来宾使用串行端口作为控制台。 (您可能还需要配置grub
才能使用串行端口。)