我正在尝试在我的 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。因此,我的问题是设置一般通信,我特别好奇我的客户机上的端口在哪里。
答案1
我找到了自己问题的解决方案。首先,设备树不完整,所以我需要添加 3 个额外的 uart 端口。这就是我在客户机中找不到端口的原因。
其次,我需要告诉 QEMU 将其中一个端口用作 stdio:-append ... console=ttyAMA3
和-serial mon:stdio
。然后,我能够-serial pty
使用 将 QEMU ttyAMA* 链接到主机上的 pts/*。