linux上的软件串口环回

linux上的软件串口环回,linux,serial-port,pty,loopback,Linux,Serial Port,Pty,Loopback,目前,我需要开发一些程序,将通过串行线与思科设备进行通信。我想在我的开发linux机器上构建测试环境。所以,我找到了dynamips cisco emulator。该仿真器可以通过带有'-U/dev/ttyS0'选项的串行线提供接口。这会导致dynamips打开硬件串行端口并通过它进行通信。我能够从另一台linux机器连接到这个硬件串行端口,该机器带有串行客户端,如minicom 然而,由于我在两台linux机器上都使用virtualbox,所以我通过virtualbox功能链接串行端口,以将串

目前,我需要开发一些程序,将通过串行线与思科设备进行通信。我想在我的开发linux机器上构建测试环境。所以,我找到了dynamips cisco emulator。该仿真器可以通过带有'-U/dev/ttyS0'选项的串行线提供接口。这会导致dynamips打开硬件串行端口并通过它进行通信。我能够从另一台linux机器连接到这个硬件串行端口,该机器带有串行客户端,如minicom

然而,由于我在两台linux机器上都使用virtualbox,所以我通过virtualbox功能链接串行端口,以将串行端口转发到命名管道。这项计划似乎可行,但很难实现。我正在寻找一种在单个linux机器上运行Dynamics和minicom的方法


我发现伪终端在我的例子中可能很有用。但是我试着用'-U/dev/ptmx'运行dynamips,然后用minicom连接到created/dev/pts/。。。港口,反之亦然。在这两种情况下,两边都有输入/输出错误。

不幸的是,现代伪终端并没有那么容易。使用
posix_openpt()
open(“/dev/ptmx”)
打开主机后,必须在主机FD上调用
grantpt()
unlockpt()
,然后主机FD及其相应的从设备才能使用。(使用
openpty()
等实用程序函数可简化此过程。)

作为一种变通方法,随时可用的方法可能很有用

# terminal 1 socat pty:link=$PWD/pts unix-l:$PWD/ptm-pipe & dynamips -U $PWD/pts # terminal 2 socat unix:$PWD/ptm-pipe - #1号航站楼 socat pty:link=$PWD/pts unix-l:$PWD/ptm管道& dynamips-U$PWD/pts #2号航站楼 socat unix:$PWD/ptm管道-
您需要帮助的具体问题或错误消息是什么?您是否最终使用openpty执行此环回任务?或者您可以使用
socat
打开两个pty,并将主端连接在一起(然后从
dynamips
连接到一个pty,从
minicom
连接到另一个pty).我没有安装
minicom
,所以我不知道它是否可以安装。我现在正在阅读它的手册页,它声称在UNIX套接字上也能工作!这将完全消除第二个
socat
。@caf“并将桅杆末端连接在一起”。你是什么意思?我该怎么做?一个终端不应该是主终端,另一个是从终端吗?@ephemient:你知道需要添加什么额外的代码才能通过两个openpty调用为打开的从终端创建环回吗?