QEMU 主机和访客之间的串行通信

wal*_*lle 5 serial-port communication qemu virtual-machine socat

我正在尝试在 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=myptyQEMU 打开 PTY,但当我尝试从主机读取或写入时,权限被拒绝。

无论哪种情况,我都无法在我的来宾中找到端口。/dev/pts 是空的,/dev 中只有 tty 和 ttyAMA3。所以,我的问题是一般来说建立通信,我特别好奇我的客人的端口在哪里。

wal*_*lle 4

我找到了自己问题的解决方案。首先,设备树不完整,因此我需要添加 3 个额外的 uart 端口。这就是我在来宾中找不到端口的原因。

其次,我需要告诉 QEMU 使用其中一个端口作为 stdio:-append ... console=ttyAMA3-serial mon:stdio。然后我可以使用 ,-serial pty将 QEMU ttyAMA* 链接到主机上的 pts/* 。