QEMU 4个以上串口

Met*_*tNP 6 serial-port qemu qnx

我有 5 个不同的串行设备,它们连接到 debian 拉伸计算机上的物理串行端口,并且应该在内部转发到 QEMU 机器。qemu 内部是 QNX 6.5.0 系统,所以我不确定是否可以使用 virtio-seral 驱动程序或类似的解决方案。

Linux 标准对 4 个串口的限制是通过以下方式解决的:

/etc/default/grub: 8250.nr_uarts=8
Run Code Online (Sandbox Code Playgroud)

所以现在我唯一的问题是 QEMU 最大串行端口 = 4。

可以通过重新编译qemu来解决这个问题,还有其他的解决方案吗?

Met*_*tNP 5

重新编译似乎适用于所有 8 个端口。

1) linux-host 限制通过以下方式解决: /etc/default/grub: 8250.nr_uarts=8 ... update grub

2) qemu 限制通过以下方式解决:

git clone git://git.qemu-project.org/qemu.git; cd qemu
include/sysemu/sysemu.h: changing MAX_SERIAL_PORTS 4->8
hw/char/serial-isa.c: adding 4 values to each of 2 arrays:
isa_serial_io [MAX_SERIAL_PORTS] = {0x3f8, 0x2f8, 0x3e8, 0x2e8, 0x5f8, 0x4f8, 0x5e8, 0x4e8}
isa_serial_irq[MAX_SERIAL_PORTS] = {4,3,4,3,4,3,4,3}
...
./configure --target-list=x86_64-softmmu
make; sudo make install
Run Code Online (Sandbox Code Playgroud)

3)通过运行解决qnx-guest限制: devc-ser8250 5f8,4 4f8,3 5e8,4 4e8,3

笔记:

  • sudo apt-get install libpixman-1-dev 是唯一缺少的依赖
  • 初始make需要约 10 分钟
  • io 地址和 irq 随机选择并尝试哪种工作(对原因没有真正的了解,一些 io/irq 组合有效,有些无效)