当前位置: 首页 > news >正文

移远RM500U-CN模块直连嵌入式ubuntu实现拨号上网

目录

1 平台:

2 需要准备的资料

 3 参考文档

 4 编译环境与驱动移植

 4.1 内核驱动添加厂家ID和产品ID

4. 2.添加零包处理

4.3  增加复位恢复机制

4.4 增加批量输出 批量输出 URB 的数量和容量 的数量和容量

4.5 内核配置与编译

5 QM500U-CN拨号(在开发板执行)

5.1.QConnectManager的安装

5.2.QConnectManager拨号

问题:


1 平台:

嵌入式平台RK3588,  操作系统Ubuntu20.04

2 需要准备的资料

1、quectel-CM拨号工具及源码
2、usb-serial-option内核要修改的文件
3、linux开发板
4、linux内核源码

5、busybox的源码

 3 参考文档

《Quectel_RG200U-CN&Rx500U-CN_Linux_USB驱动_用户指导_V1.2》

《Quectel_RG200U-CN&Rx500U-CN_网卡拨号应用指导_V1.1》

《Quectel_RG200U&Rx500U系列_AT命令手册_V1.0》

 4 编译环境与驱动移植

 4.1 内核驱动添加厂家ID和产品ID

文档给出的RM500U-CN的VID和PID如下:

 需要注意的是一种模块可能有多种型号,之前就遇到EC20模块的PID对不上,需要从用户手册上获取,没有文档的情况下可通过命令lsusb获取:

 VID和PID确认无误后根据文档往[KERNEL]/drivers/usb/serial/option.c文档增加对应的ID

4. 2.添加零包处理

根据USB协议的要求,在大容量传输时需要添加处理零包的机制, 添 加 如 下 语 句 至 文 件
[KERNEL]/drivers/usb/serial/usb_wwan.c。

4.3  增加复位恢复机制

        当 MCU 进入挂起或睡眠模式时,某些 USB 主机控制器或 USB 集线器可能会断电或复位,且 MCU 退出挂起或睡眠模式后无法自动恢复 USB 设备。请添加以下语句以使能复位恢复流程。添加如下语句至文件[KERNEL]/drivers/usb/serial/option.c

处理如下:

4.4 增加批量输出 批量输出 URB 的数量和容量 的数量和容量

对于 Linux 内核 2.6.29 及以下版本,需增加批量输出 URB 的数量和容量以获取更快的上行速率。请添加如下语句至文件[KERNEL]/drivers/usb/serial/option.c。

4.5 内核配置与编译

处理如下:
到这里,内核的源码配置就完成了,接下来配置内核的编译选项,以支持USB设备。

make menuconfig

[*] Device Drivers →

  [*] USB Support →
   [*] USB Serial Converter support →

         [*] USB driver for GSM and CDMA modems

最后编译内核即可。

加载后可以可以查看模组的信息:

执行命令:lsusb

 设备可以识别出多个USB设备:

5 QM500U-CN拨号(在开发板执行)

5.1.QConnectManager的安装

  •     首先安装git, sudo apt-get install git
  •     执行命令git clone https://github.com/friendlyarm/quectel-cm.git将文件克隆到本地
  •     切换到目录下,执行make
  •     执行命令sudo cp quectel-CM /usr/bin/
  •     下载busybox udhcpc源码,链接https://busybox.net/我这里下载的版本是1.31.0(如果可以直接通过apt-get install busybox最好)
  •     复制到虚拟机中,找到文件[BUSYBOX]/examples/udhcp/simple.script,重命名为default.script
  •     新建目录/usr/share/udhcpc/, /etc/udhcpc两个目录
    • sudo mkdir /usr/share/udhcpc
    • sudo mkdir /etc/udhcpc
  •     将default.script复制到新建的目录下
    • sudo cp default.script /usr/share/udhcpc/ /etc/udhcpc/
  •     赋予权限,chmod 755 /usr/share/udhcpc/default.script
  •     安装ifconfig,sudo apt-get install net-tools

5.2.QConnectManager拨号

        切换到quectel-cm目录下,执行sudo quectel-CM &

udhcpc完成网卡的识别与配置,并完成DNS的重配置,如下图所示:

 查看到网卡获得ip地址,ping www.baidu.com正常

问题:

1、使用5G卡测试的时候,拨号总是失败,使用AT+CSQ测试的时候返回值是99,99,AT+CGREG?命令测试返回值是0,0。应该是没有注册上网络,解决办法:
依次输入
at+qeng=“servingcell”
AT+QNWPREFCFG= “nr5g_band”,0
at+qeng=“servingcell”
此时再次拨号,便能成功,该命令是否通用未知,对这方面不懂

        AT测试指令在哪里输入?
        sudo busybox microcom /dev/ttyUSB2  然后输入AT指令即可得到返回值

2、如果uducpc无法配置ip地址到网卡

        需要将udhcpc的默认运行脚本拷贝到,/usr/share/udhcpc /   /etc/udhcpc/两个目录下,

通过查看quectel-CM/log/ecm_ncm_rndis.txt  +79 ,可以看到使用的/etc/udhcpc/default.script,如下图:

http://www.lryc.cn/news/120550.html

相关文章:

  • 【JavaWeb】MySQL基础操作
  • 【Tool】虚拟机安装与调试与设置与主机共享文件
  • Spring中的接口使用
  • 爬虫017_urllib库_get请求的quote方法_urlencode方法_---python工作笔记036
  • Http、SSE、Websocket的区别
  • 【资料分享】全志科技T507工业核心板硬件说明书(一)
  • JavaScript类
  • One-4-All: Neural Potential Fields for Embodied Navigation 论文阅读
  • 【ES】笔记-函数参数默认值
  • 安装harbor
  • kube-prometheus 使用 blackbox-exporter 进行icmp 监控
  • 【python技巧】文本文件的读写操作
  • SpringBoot项目(验证码整合)——springboot整合email springboot整合阿里云短信服务
  • 缓存穿透,击穿,雪崩之间的区别与联系
  • Vue项目npm run dev 启动报错TypeError: Cannot read property ‘upgrade‘ of undefined
  • dji uav建图导航系列(二)导航
  • 24.Netty源码之合理管理堆内存
  • 如何自学(黑客)网络安全
  • 【vue】vue基础知识
  • 第一百一十一回 如何实现屏幕适配
  • 免费实用的日记应用:Day One for Mac中文版
  • HCIP的BGP基础实验
  • centos7编译安装升级python3.11
  • win10安装mysql和c++读取调用举例
  • 计算机竞赛 opencv python 深度学习垃圾图像分类系统
  • 通讯协议037——全网独有的OPC HDA知识一之聚合(六)实际时间最小值
  • 【Freertos基础入门】freertos任务的优先级
  • 【报错】ModuleNotFoundError: No module named ‘websocket‘
  • [Leetcode] [Tutorial] 多维动态规划
  • C语言 二级指针和多级指针