MT7628学习笔记(22)——TCP串口透传(ser2net)及编译进固件开机自启动

标签: OpenWrt  OpenWRT

一、临时方法

1、安装ser2net软件

ser2net工具安装完后,可执行文件放在:/usr/sbin/ser2net,配置文件放在/etc/ser2net.conf 

#opkg update
#opkg install ser2net

2、修改 ser2net.conf 文件

终端不能显示全部的话,可以用winscp编辑 /etc/ser2net.conf 文件。

ser2net.conf 文件中把端口都注释掉,自己新增一条 1234 端口:(详细说明在永久方法里面)

1234:raw:0:/dev/ttyS2:115200 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS

 3、运行以下命令配置完成

ser2net -c /etc/ser2net.conf

 

二、永久方法(修改源码、编译进固件)

1、将ser2net 软件包编译进固件

(1)make menuconfig 进入配置图形界面

(2)“/”查找 ser2net 软件包的位置

(3)如图:

(4)根据提示选中软件包:

Network  ---> 
    <*>ser2net

 

2、修改 ser2net.conf 文件

  1. 在openwrt源码根目录下建一个files文件夹(openwrt/files),再新建 openwrt/files/etc 文件夹。
  2. /build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/ser2net-2.10.0 拷贝一份 ser2net.conf 文件到 openwrt/files/etc 文件夹。
  3. 给文件夹权限:chmod 777 files -R

ser2net.conf 文件中把端口都注释掉,自己新增一条 1234 端口:

#2001:raw:600:/dev/ttyS0:9600 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS
#2002:raw:600:/dev/ttyS1:9600 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS
#2003:raw:5:/dev/ttyS2:115200
#2004:raw:5:/dev/ttyS3:115200
#2005:raw:5:/dev/ttyS4:9600
#2006:raw:5:/dev/ttyS5:9600
#2007:raw:5:/dev/ttyS6:9600 tw=tw1 tr=tr1
#3001:telnet:0:/dev/ttyS0:19200 remctl banner1
#3011:telnet:3:/dev/ttyS0:19200 banner2
#3002:telnet:0:/dev/ttyS1:9600
#3003:telnet:0:/dev/ttyS2:9600 banner3
#3003:telnet:0:/dev/ttyS2:9600 signature1 rs485=rs485port1
#3004:telnet:0:/dev/ttyS3:115200
#3005:telnet:0:/dev/ttyS4:9600
#3006:telnet:0:/dev/ttyS5:9600 open1
#3007:telnet:0:/dev/ttyS6:9600 close1
#5001:rawlp:10:/dev/lp0

#3020:telnet:0:/dev/ttyUSB0:9600 banner1 remctl asdfasd
#3021:telnet:0:/dev/ttyUSB1:9600 banner2 open1 close1 remctl

#5000:telnet:0:/dev/ttyAPP0:9600 NONE 1STOPBIT 8DATABITS -XONXOFF LOCAL -RTSCTS led-tx=tx led-rx=rx

1234:raw:0:/dev/ttyS2:115200 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS

配置格式说明:

<TCP port>:<state>:<timeout>:<device>:<options>
TCP port:TCP/IP端口号,可以加IP信息如127.0.0.1 , 2000或者localhost,2000; 如果这里指定了IP,则只能绑定在这个固定的IP
state: 四种可选状态
    *off: 禁止该端口的连接
    *raw: 端口和串口设备之间双向通信
    *rawlp: 端口向串口设备单向通信
    *telnet: 使用telnet协议时用
timeout:超时,以秒为单位;当没有活动的连接时,可以设置这个时间关闭端口;常写0,关闭该功能,即不会超时
device: 指定映射本机的哪个串口(This must be in the form of /dev/<device>)
options: 设置串口的参数如:波特率(300,1200,2400,4800,9600,19200,38400,57600,115200)
校验(EVEN,ODD,NONE)
停止位(1STOPBIT,2STOPBITS)
数据位(7DATABITS,8DATABITS)
开启(关闭)XON\XOFF :XONXOFF(-XONXOFF)
开启(关闭)硬件控制流:RTSCTS(-RTSCTS)

 

3、设置 ser2net 开机自启动

  1. 新建 openwrt/files/etc/init.d 文件夹
  2. openwrt/files/etc/init.d 文件夹内新建 ser2net_ttyS2_tcp 文件
  3. 给文件夹权限:chmod 777 init.d -R
  4. 输入以下内容:
#!/bin/sh /etc/rc.common
#/etc/init.d/ser2net_ttyS2_tcp
START=80
start() {
    /usr/sbin/ser2net -c /etc/ser2net.conf
}
 
stop(){
    killall ser2net_ttyS2_tcp
}

 

三、测试

TCP 调试工具连接开发板 IP,端口 1234。(这里使用的wan口有线网络)

 

TCP端:

串口端:

 

 

版权声明:本文为p1279030826原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/p1279030826/article/details/109334786

智能推荐

OpenWrt 之 MT7628 移植第三方SPI驱动

1、在OpenWrt系统上移植SPI驱动前,首先要确保SPI相关引脚未被复用为其他功能,比如GPIO;以下操作已假定该条件成立,否则请修改相关dts和c文件中复用配置; 2、打开dts配置文件进行修改,这里我是用的硬件为WRTNODE2R,所以文件路径为:/target/linux/ramips/dts/WRTNODE2R.dts。在SPI控制器节点下添加与我们要添加的SPI设备及驱动匹配的信息,...

DSP学习 -- 软件开机自启动

一、Linux 下实现 启动脚本的一般存放路径是 /etc/init.d/rcS (rcS即脚本文件),自启动应用程序一般放置于/etc/rc.d/init.d目录下。 参看:开机启动脚本/etc/init.d/rcS 这个已经好久没有弄过了,记得是这样做的。 二、Windows 下实现 方法一 在运行里面输入: shell:startup 将需要开机自启动的软件快捷方式放到这个文件夹下: 方法二...

App开机自启动

App开机自启动 通过开机广播来实现自启动 定义开机广播 在AndroidManifest.xml注册BootCompletedReceiver APP自启动失败. APP在安卓系统5.0以前一般都是可以自启动成功的.安卓5.0以后国内的手机厂商做了限制,只有设置了开机自启动权限以后,才可以开机自启动. 下面是EMUI8.0系统的设置开机自启动的方法 参考 Android应用如何开机自启动、自启动...

开机自启动

相信这段代码大家都能看懂,就不多做解释了! 查看注册表: (1)运行:regedit (2)找到对应的路径REG_RUN Qt之开机自启动及拥有管理员权限 里面的内容并没有加进去,当然是因为我们并没有调用自启动的方法! 可根据setAutoStart的不同参数来添加或者删除注册表中的项。 调用方法后: Qt之开机自启动及拥有管理员权限 这样以来,大部分工作已经做完! 修改注册表的时候,可能会注册失...

服务开机自启动

一、开机启动 linux系统中将开机需要启动的程序或脚本加入到/etc/rc.local文件中,如下: 注意: 1、检查/etc/rc.local文件权限,如果权限不够需要进行设置 (chmod 777 /etc/rc.local) 2、如果权限足够的情况下,主机重启后没有启动设置的服务,那么可能主机没有执行/etc/rc.local文件。因此可执行一下命令:  echo /etc/rc...

猜你喜欢

CORDIC arithmetic

传统CORDIC算法code Verilog代码: 时钟为50Mhz; 输出设置均设置为有符号数,主要是因为计算CORDIC算法时,需要判断Z通道的符号,来得到迭代过程中旋转方向。 然后根据缩放因子和arctan 2^-n 的预定义并乘以2^16 来进行后续计算,根据迭代方程写出代码;最后将(0度到90度)中正弦值与余弦值来扩大至(0度至360度)的正弦值与余弦值。 编写的tb文件如下: 最终使用...

dubbo源码解析-线程通讯原理

本来想通过Debug从头屡,发现意义不大,还是写点主通讯流程吧 本文基于JDK1.8;dubbo2.7.5 线程通讯原理 解释总体流程: DubboInvoker#doInvoker(Invocation)发起request,进入HeaderExchangeChannel 初始化Request对象(Dubbo自己封装的),初始化DefaultFuture将Request、channel放入,并记录...

使用Intellij Idea+Gradle 搭建Java 本地开发环境

Java 本地开发环境搭建 项目搭建采用技术栈为:Spring+Spring MVC+Hibernate+Jsp+Gradle+tomcat+mysql5.6 搭建环境文档目录结构说明: 使用Intellj Idea 搭建项目过程详解 项目各配置文件讲解及部署 各层包功能讲解&项目搭建完毕最终效果演示图 项目中重要代码讲解 5.配置tomcat 运行环境 6.webapp文件夹下分层详解 ...

js中array数组除重最快的方式(100万数据量下测试)

模拟100万数据 测试1 for循环 + in 运算符 (不是 for…in 循环) 测试2 双层for循环 (太慢了) while …同理。 测试3 for循环 + arr.indexof()判断 测试4 for…in循环 + in 运算符 测试结果...

轻量级java服务器undertow

项目需求 服务器端项目是用mina写的传统socket,准备升级到支持websocket接入。 为什么采用undertow 1、Undertow 是基于 NIO 的高性能 Web 嵌入式服务器,并且支持websocket(这个很重要,只要把undertow集成到项目中,用undertow启用websokcet,然后把原来的socket切换到websocket。) 2、轻量级web服务器:多么轻量级...