是否可以在不通过 qemu 中的 -serial 的情况下访问 -chardev?
Is it possible to access -chardev without going via -serial in qemu?
我正在使用 qemu-system-arm 执行裸机 cortex-m3 二进制文件,使用自定义机器填充内存映射设备的仿真。
为了在主机和 qemu 中的 m3 二进制 运行 之间交换数据,我用
启动 qemu
-chardev udp, id=ch0, port=x, localport=y -serial chardev:ch0
然后在 qemu 中我将一个设备绑定到 serial_hds[0]。写入串行设备,然后将 udp 数据包发送到主机。
我的问题是:我必须连接到 -serial 吗?我可以通过某种方式访问创建的 chardev 而不使用通过 -serial 的方式吗?
我想设置 qemu 以侦听 10 个 udp 端口,但据我所知,-serial 选项仅限于最多 4 个设备。
QEMU 的 chardev 抽象有 "front ends" 和 "back ends"。
"back end" 是您在主机端连接的任何内容(可能是 UDP 端口、stdin/stdout、UNIX 域套接字等)。 -chardev 选项用于创建和配置此后端。
"front end" 是 QEMU 端的部分。最常见的用途是 UART(串行端口),但您也可以使用 chardevs 指定如何与 QEMU 监视器或来宾并行端口通信。
在这种情况下,您的问题是 "what are the N things that the guest sees",即前端是什么?这里必须有 something,这意味着您的开发板需要实际创建多个 UART 或其他东西。 -serial 是 4 的限制(你可以通过本地 hack 更改 MAX_SERIAL_PORTS 来提高它),但是如果你的设备模型被编写为采用 QEMU chardev 而不是直接查看 serial_hds[]应该可以通过 -serial 以外的方式配置它(使用 -device ... 或 -global ... 将 chardev 设置为设备 属性)。
我正在使用 qemu-system-arm 执行裸机 cortex-m3 二进制文件,使用自定义机器填充内存映射设备的仿真。 为了在主机和 qemu 中的 m3 二进制 运行 之间交换数据,我用
启动 qemu-chardev udp, id=ch0, port=x, localport=y -serial chardev:ch0
然后在 qemu 中我将一个设备绑定到 serial_hds[0]。写入串行设备,然后将 udp 数据包发送到主机。
我的问题是:我必须连接到 -serial 吗?我可以通过某种方式访问创建的 chardev 而不使用通过 -serial 的方式吗?
我想设置 qemu 以侦听 10 个 udp 端口,但据我所知,-serial 选项仅限于最多 4 个设备。
QEMU 的 chardev 抽象有 "front ends" 和 "back ends"。
"back end" 是您在主机端连接的任何内容(可能是 UDP 端口、stdin/stdout、UNIX 域套接字等)。 -chardev 选项用于创建和配置此后端。
"front end" 是 QEMU 端的部分。最常见的用途是 UART(串行端口),但您也可以使用 chardevs 指定如何与 QEMU 监视器或来宾并行端口通信。
在这种情况下,您的问题是 "what are the N things that the guest sees",即前端是什么?这里必须有 something,这意味着您的开发板需要实际创建多个 UART 或其他东西。 -serial 是 4 的限制(你可以通过本地 hack 更改 MAX_SERIAL_PORTS 来提高它),但是如果你的设备模型被编写为采用 QEMU chardev 而不是直接查看 serial_hds[]应该可以通过 -serial 以外的方式配置它(使用 -device ... 或 -global ... 将 chardev 设置为设备 属性)。