如何将 QEMU -serial 输出重定向到文件和终端或端口?

如何将 QEMU -serial 输出重定向到文件和终端或端口?

我希望能够通过命令行与系统交互,同时将输出发送到文件。

如果我做:

qemu-sysem-x86_64 -serial stdio |& tee file

那么它基本上可以正常工作,但我想避免任何 Bash 操作,让 QEMU 为我完成繁重的工作。例如,我使用的是 Python,在那里实现可靠性并不那么简单tee

如果我做:

qemu-sysem-x86_64 -serial file:myfile

它重定向到该文件并且我无法提供任何输入。

有没有办法将和“合并”file:stdio一个-serial

多个-serial条目只是创建多个串行端口,而不是修改单个串行端口。

我也想知道它是否可以与 telnet 配合使用,如下所示:

-serial tcp::1234,server,nowait

http://lists.nongnu.org/archive/html/qemu-discuss/2018-11/msg00011.html

答案1

最近,我遇到了完全相同的问题并找到了解决方案:

根据QEMU 3.1.0 文档,您可以使用chardev带有选项的stdio并将logfile您的重定向serial到其中。

qemu-system-x86_64 -chardev stdio,id=char0,logfile=serial.log,signal=off \
  -serial chardev:char0

此外,如果您使用mux=on中的选项chardev,您可以同时将监视器(mon)和另一个serial或其他支持chardev后端的接口重定向到其中:

qemu-system-x86_64 -chardev stdio,id=char0,mux=on,logfile=serial.log,signal=off \
  -serial chardev:char0 -mon chardev=char0

请参阅上面文档链接中的示例。

相关内容