我希望能够通过命令行与系统交互,同时将输出发送到文件。
如果我做:
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
请参阅上面文档链接中的示例。