Answers:
有几种选择:
sersniff是一个简单的程序,可在2个串行端口之间建立隧道/嗅探。
串行到网络代理(ser2net)为用户提供了一种从网络连接到串行端口的连接方式。
SerialSpy充当串行传递设备。它侦听两个串行端口上的传入数据并将其转发,因此设备就像直接连接一样。当数据通过端口时,它还会记录数据。
sercd是符合RFC 2217的串行端口重定向器。它使您可以通过网络共享一个串行端口。它基于sredird。RFC2217协议是telnet的扩展,并允许更改通信端口参数。
SerLooK是一个KDE应用程序,用于检查通过串行线路传输的数据。它可以用作二进制终端,通过定义的端口(点对点模式)发送和接收数据,并在单独的视图上显示它们。可以将每个视图配置为以十六进制,十进制,八进制,二进制和原始ASCII显示数据。也可以通过终端仿真视图执行I / O,并定义辅助端口,并使用“ Y”电缆(Snooper模式)监视两个外部主机之间的流量。
nullmodem创建一个虚拟的伪终端网络。它可用作连接两个通常需要串行接口卡的程序的适配器。
ttywatch监视,记录和多路复用终端I / O。它内置完整的日志轮转功能,可以使用telnet以及本地TTY端口。
串行线嗅探器(slsnif)是串行端口记录实用程序。它侦听指定的串行端口,并记录双向通过该端口的所有数据。
socat
和使用标准工具来实现此目的tee
。1)socat -d -d pty,raw,echo=0 pty,raw,echo=0
。输出将为您提供两个端口...N PTY is /dev/pts/27... N PTY is /dev/pts/28
。2)sudo cat /dev/ttyS0 | tee /dev/pts/27
和另一个终端sudo cat /deb/pts/27 | tee /dev/ttyS0
。最后3)将程序连接到/dev/tty/28
。这两个tee命令会将两个方向都转储到控制台,并转发到实际串行端口/从实际串行端口转发。请注意,必须提前配置端口设置(如波特率)。
cat /dev/pts/27 | sudo tee /dev/ttyS0 serial-caps
,xxd
则将有所帮助cat /dev/pts/27 | sudo tee /dev/ttyS0 serial-caps | xxd
。
/deb/pts/27
应该是/dev/pts/27
。还cat /deb/pts/27 | tee /dev/ttyS0
应该是cat /dev/pts/27 | sudo tee /dev/ttyS0
我尝试了拦截(在GitHub上复制),并成功使用了它。首先,我在感兴趣的港口上运行它:
interceptty /dev/ttyACM0
然后,我将被测程序连接到/dev/pts/5
拦截创建的伪终端上。
我尝试使用slsnif,但发现出现错误:
Failed to open a pty: No such file or directory
该邮件列表项指示slsnif仅支持“传统”伪终端(/dev/ttyp0
等),而当前Linux内核可能不使用该伪终端。
interceptty
并完成工作!
尝试使用jpnevulator(打包的debian)或slsniff。请注意,slsniff使用不建议使用的终端仿真模型。