我正在为Linux开发串口应用程序,mips。我正在使用Linux运行QEMU for mips并希望使用所有可用的串行端口。根据QEMU文档,它仅支持最多4个串行端口,为了我们它们,我必须将“--serial”选项添加到QEMU运行命令,以用于我想要使用的任何其他端口。
但是,当qemu启动时,看起来只有ttyS0和ttyS1实际可用。当我向ttyS2写入数据时,我遇到了问题,我得到了ttyS3:“标准输出:输入/输出错误”。
在/ dev /下有ttyS2和ttyS3 FD。
当我"dmesg | grep tty"
命令时,我得到以下输出:
Kernel command line: root=/dev/sda clocksource=GIC console=ttyS0
console [ttyS0] disabled
serial8250.0: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
console [ttyS0] enabled
serial8250.0: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A
serial8250.0: ttyS2 at MMIO 0x1f000900 (irq = 20, base_baud = 230400) is a 16550A
如果你看一下,你可以看到ttyS3没有出现,ttyS2存在但是另一个baudRate比ttyS1& 0。当我尝试使用sty命令将BR更改为ttyS2时,没有任何反应。
任何人都可以帮助我理解为了激活ttyS2和ttyS3我缺少的东西吗?
答案 0 :(得分:0)
这些文档相当误导,因为它是在我们真正只有x86 PC仿真的时候写的。实际情况是,QEMU支持电路板仿真所支持的许多串行端口,最多可达4个。因此,这取决于您使用的MIPS电路板实际最大串行端口数。从实验上看,似乎这里的答案可能是“3”......
(特别是如果你没有运行x86 guest虚拟机,那么给你正在使用的QEMU命令行总是很重要的,因为非x86系统可以相互之间以及相同的不同板之间有很多不同客户体系结构。在所有机器几乎相同的情况下,x86真的很奇怪。)