QEMU 主机和客户机之间的串行通信
Serial communication between QEMU host and guest
我正在尝试在我的 QEMU 主机(Debian Jessie x86_64)和来宾(也是 Debian Jessie,但在 ARM 上)之间设置一对串行端口。除了串行端口部分以外的所有东西都可以工作。
我是 QEMU 的新手,所以可能有更好的方法,但我在 运行 QEMU 时测试了以下标志:
-chardev tty,id=mytty,path=/dev/pts/2
(/dev/pts/2 & 3 人使用 socat)
-chardev pty,id=mypty
QEMU 打开一个 PTY,但是当我尝试从主机读取或写入时,权限被拒绝。
无论哪种情况,我都无法在我的客户机中找到端口。 /dev/pts 是空的,在 /dev 中只有 tty 和 ttyAMA3。所以,我的问题是设置一般的通信,我特别好奇端口在我的客人身上的位置。
我找到了解决我自己问题的方法。首先,设备树不完整,所以我需要添加 3 个额外的 uart 端口。这就是我在来宾中找不到我的端口的原因。
其次,我需要告诉 QEMU 将其中一个端口用作 stdio:-append ... console=ttyAMA3
和 -serial mon:stdio
。然后我可以使用 -serial pty
、link QEMU ttyAMA* 到主机上的 pts/*。
我正在尝试在我的 QEMU 主机(Debian Jessie x86_64)和来宾(也是 Debian Jessie,但在 ARM 上)之间设置一对串行端口。除了串行端口部分以外的所有东西都可以工作。
我是 QEMU 的新手,所以可能有更好的方法,但我在 运行 QEMU 时测试了以下标志:
-chardev tty,id=mytty,path=/dev/pts/2
(/dev/pts/2 & 3 人使用 socat)
-chardev pty,id=mypty
QEMU 打开一个 PTY,但是当我尝试从主机读取或写入时,权限被拒绝。
无论哪种情况,我都无法在我的客户机中找到端口。 /dev/pts 是空的,在 /dev 中只有 tty 和 ttyAMA3。所以,我的问题是设置一般的通信,我特别好奇端口在我的客人身上的位置。
我找到了解决我自己问题的方法。首先,设备树不完整,所以我需要添加 3 个额外的 uart 端口。这就是我在来宾中找不到我的端口的原因。
其次,我需要告诉 QEMU 将其中一个端口用作 stdio:-append ... console=ttyAMA3
和 -serial mon:stdio
。然后我可以使用 -serial pty
、link QEMU ttyAMA* 到主机上的 pts/*。