Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用socat将Linux终端从串口转发到TCP大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我正在开发嵌入式ARM平台Slackware.我正在使用G24 Java调制解调器,它配置为在端口/ dev / ttyS1和/ dev / ttyACM0之间转发数据,因此任何进入任何这些端口的东西都可以在另一个端口上看到.我想在其中一个端口/ dev / ttyS1上设置终端,并将另一个端口/ dev / ACM0转发到TCP端口,因此可以通过LAN从其他机器访问它. 首先,我配置了/ etc
我正在开发嵌入式ARM平台Slackware.我正在使用G24 Java调制解调器,它配置为在端口/ dev / ttyS1和/ dev / ttyACM0之间转发数据,因此任何进入任何这些端口的东西都可以在另一个端口上看到.我想在其中一个端口/ dev / ttyS1上设置终端,并将另一个端口/ dev / ACM0转发到TCP端口,因此可以通过LAN从其他机器访问它.

首先,我配置了/ etc / inittab:

s2:12345:respawn:/sbin/agetty -L ttyS1 115200 vt100

然后我尝试使用socat和以下命令:

socat -d -d -d TCP-l:2020,reuseaddr,fork /dev/ttyACM0,raw,nonblock,waitlock=\”/var/run/ttyACM0.lock\”,b115200,echo=1,icanon=1,crnl

然后我试图从其他机器连接到telnet 192.168.1.222 2020,结果不太好,我从客户端看到终端要求登录,但是有一个我没有输入的即时答案在:^ M ^ M ^ M …等,终端正在回答登录不正确,然后一次又一次地回答相同的事情.

我知道^ M意味着回车标志,但我不太确定如何解决这个问题.
我尝试了不同的socat配置,但没有一个正常工作.

解决方法

经过几个小时的深入研究和测试后,我找到了一个解决方案.

首先,我必须通过添加行来启用终端:

就是ttyS1

文件/ etc / securetty中.

如果没有这个,你无法登录/ dev / ttyS1的终端.

其次,我测试了许多不同的socat配置,以下命令有效:

/usr/local / bin / socat tcp -l:2020,fork,crlf文件:/ dev / ttyACM0,echo = 0,crnl,icanon = 1

但是,这种解决方案并不完美.每个命令提示符后终端都会断行,因此在下一行输入用户输入.此外,在执行每个命令后出现一个空的命令提示符(就像我在我真正输入的命令后立即输入空命令).

我想我应该用stty正确配置/ dev / ttyACM0,但我还在研究这个话题.

大佬总结

以上是大佬教程为你收集整理的使用socat将Linux终端从串口转发到TCP全部内容,希望文章能够帮你解决使用socat将Linux终端从串口转发到TCP所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。