gpt4 book ai didi

linux - 如何在 Linux 中创建一个将数据代理到真实设备的虚拟 io 设备?

转载 作者:IT王子 更新时间:2023-10-29 00:11:01 24 4
gpt4 key购买 nike

我有一个有趣的问题。我正在开发一个嵌入式盒子,其中包含多个 Linux 实例,每个实例都在 ARM 处理器上运行。它们通过内部 1GBps 网络连接。我有一个连接到处理器 A 的串行端口设备节点(假设在其上运行 Linux-A)。我有一个在处理器 B 上运行的程序(比方说在 Linux-B 上)访问串口设备,就像它在本地连接到 Linux-B 一样。
我的程序调用设备节点上的术语 i/o 类型 api 调用来控制 tty 回显、字符模式输入。我想知道是否有一种方法可以创建一个在 Linux-B 上可用的虚拟串行设备,以某种方式通过内部网络与 Linux-A 上的真实串行设备通信。

我在想一些事情:Linux-B 有/dev/ttyvirtual。任何写入它的东西都会通过网络套接字传输到 Linux-A 串行服务器。串行服务器在真实设备上执行 api 调用,比如/dev/ttys0。任何在 ttys0 上等待的数据都会被传输回/dev/ttyvirtual。

快速完成这项工作涉及哪些方面?

谢谢
视频专家

更新:我发现了一个讨论 http://fixunix.com/bsd/261068-network-socket-serial-port-question.html有很好的指点。
另一个有用的链接是 http://blog.philippklaus.de/2011/08/make-rs232-serial-devices-accessible-via-ethernet/

最佳答案

看看openpty(3) .这允许您创建一个伪 TTY(如 /dev/pts/0,ssh 连接使用的那种),它将像普通 TTY 一​​样响应,但让您可以直接通过编程控制连接.

通过这种方式,您可以托管一个串行设备(例如 /dev/pts/5),您可以在网络连接之间转发数据,然后其他应用程序可以在不知道的情况下对其执行串行操作底层网桥。

关于linux - 如何在 Linux 中创建一个将数据代理到真实设备的虚拟 io 设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11196348/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com