基于4G网卡的Telnet远程登录RT-Thread的Finsh/MSH Shell

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:21   1402   0

准备工作:

硬件:

  1. imx-rt1021野火开发板;
  2. 野火EC20模块;
  3. 云服务器ECS(具有公网IP,我这里用阿里云服务器)。

软件:

  1. RT-Thread操作系统在开发板上移植完成;
  2. EC20 USB驱动移植完成;
  3. PPP和LwIP移植完成;
  4. 开发板上telnet驱动移植完成(跟RT-Thread软件包netutils源码略有不同);
  5. 无线网卡设备远程登录Telnet专用上位机(我自己移植编写的)。

步骤一:

启动开发板,连接好EC20模块和调试串口。

步骤二:

在开发板上进行PPP拨号,如果获取到IP则认为拨号成功:

步骤三:

在阿里云服务器打开Telnet工具(实际上是一个TCP服务器):

步骤四:

在开发板进行请求与服务器进行telnet连接,输入telnet_server,可以已经进入telnet状态。

步骤五:

在服务器上可以看到以下熟悉的欢迎界面,后面服务器上就可进行开发板的命令交互了。

比如输入help:

比如输入ping和ifconfig命令,有没有一种爽的感觉。它确实香。

移植部分的简略说明:

RT-Thread系统:没什么可说。

EC20 USB驱动:

  • 参考NXP官方SDK在imxrt1052/1021 USB CDC Host驱动进行移植;
  • 参考《Quectel_WCDMA&LTE_Linux_USB_Driver_User_Guide_V1.8》进行移植。

LwIP没什么好说的;

PPP部分:

  • 参考linux PPP拨号流程进行文件式配置拨号优化,以更加方便地支持不同厂商的网卡。

开发板Telnet-TCP客户端:(这样称它以免与熟悉的Telnet客户端进行概念混淆):

  • 参考RTThread官方的IoT软件包netutils中telnet
  • 因为官方是telnet以TCP服务器形式进行连接的,但是如果使用4G网卡上网一般来说在外网是无法连接它的。(我试过不行,行的话可以告诉我哈)。
  • 因此要讲telnet TCP服务器形式改成TCP客户端形式;

云服务器Telnet-TCP服务端:

  • 我这里的Telnet代码参考:linux中的busybox的telnet代码;
  • 当然telnet的连接将原本的TCP客户端连接改为TCP服务器连接;
  • 目前我这个工具仅支持windows,实现socket和命令行数据监听时,我还参考了dengyejing的代码https://blog.csdn.net/dengyejing/article/details/678444.

整体感觉:效果还算不错,细节还需要继续优化。移植细节这里先不说了,已经很久没有写帖子了。

服务端代码:https://download.csdn.net/download/sdewenking/13683530

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP