我正在为 Linux 开发串行应用程序,mips。我正在运行带有 Linux 的 QEMU,用于内部 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 存在,但波特率不同于 ttyS1&0。当我尝试使用 sty 命令将 BR 更改为 ttyS2 时,没有任何反应。
任何人都可以帮助我了解我缺少什么来激活 ttyS2 和 ttyS3 吗?
最佳答案
那段文档相当具有误导性,因为它是在我们真正只有 x86 PC 仿真时写回来的。实际情况是 QEMU 支持板仿真有多少串口,最多 4 个。所以这取决于您使用的 MIPS 板,实际最大串口数是多少。从实验上看,这里的答案似乎是“3”...
(特别是如果您没有运行 x86 客户机,提供您正在使用的 QEMU 命令行始终很重要,因为非 x86 系统彼此之间以及同一系统中的不同板之间可能会有很大差异 guest 架构。x86 真的很奇怪,因为所有机器都几乎相同。)
关于linux - 在 Linux 中启用串行端口 ttyS2 和 ttyS3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47328872/