客户操作系统上的QEMU和串行端口

有没有人成功地在QEMU / KVM中成功pipe理客户机操作系统,客户机可以完全访问主机串行端口(无论是/ dev / ttyS0,COM1还是由主机提供的虚拟串行端口)。

看来关于-chardev,-serial等等的文档有点混乱(至less对我来说)。 我的印象是Guest OS能够看到/使用一个串行端口,只要在启动Guest时传递适当的参数。 但是很多人都说“不,串行端口只能用于QEMU / KVM中Guest OS和Host之间的控制台redirect”……这是没有意义的,因为QEMU / KVM似乎是运行旧东西的好方法需要与RS232设备和类似的交谈。

另外,如果主机上没有物理串口,如何“创build一个”? 目前,我正在使用NetSerial,它实际上创build一个“COM端口”(与“调制解调器”连接到它)。 但QEMU似乎也不太喜欢这个构造。

首先,您需要为主机串行端口定义一个chardev,并为其添加一个名称(id参数),如下所示:

-chardev tty,path=/dev/ttyUSB0,id=hostusbserial 

接下来,您必须将一些串口设备添加到您的虚拟机,并将其链接到您刚刚创build的chardev:

 -device pci-serial,chardev=hostusbserial 

完成。 线速度等必须configuration在客人,qemu将拿起设置,并将其应用到主机串行端口。

-serial命令开关是一个方便的快捷方式,它将创build一个chardev并将其链接到默认的串行端口(在x86上通常为ioport 0x3f8的isa-serial设备,其他体系结构为其他)。