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

这篇具有很好参考价值的文章主要介绍了移远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如下:

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

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

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

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

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

4. 2.添加零包处理

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

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

4.3  增加复位恢复机制

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

处理如下:

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

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

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

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

4.5 内核配置与编译

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

make menuconfig

[*] Device Drivers →

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

         [*] USB driver for GSM and CDMA modems

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

最后编译内核即可。

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

执行命令:lsusb

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

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

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

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 &

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

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

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

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

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

问题:

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,如下图:

移远RM500U-CN模块直连嵌入式ubuntu实现拨号上网,ubuntu,RM500U-CN,rk3588文章来源地址https://www.toymoban.com/news/detail-644244.html

到了这里,关于移远RM500U-CN模块直连嵌入式ubuntu实现拨号上网的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【嵌入式模块】MPU6050

      作为惯性传感器中入门级别的器件,MPU6050凭借它出色的性价比成为一款非常常用的角度姿态传感器,在很多科创项目中被使用。我之前也接触过很多次这个器件,也收集了不少资料,趁此机会总结一下学习笔记。   MPU6050包含3轴陀螺仪和3轴加速度计,其中陀螺仪的主

    2024年01月25日
    浏览(35)
  • 上位机图像处理和嵌入式模块部署(开篇)

    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         图像处理是现实生活当中很实用的一门技术。工业上一般采用的是机器视觉,以传统算法和光源控制为主,部分采用了深度学习技术。而生活当中,则主要以二维码识别、人脸识别、

    2024年01月22日
    浏览(48)
  • 嵌入式外设集 -- GPS定位模块(ATGM336H)

    目录 一、模块介绍 关注微信公众号--星之援工作室 发送(GPS模块)  使用的注意事项  二、如何移植 usart2.c usart2.h 获取以及解析经纬度 显示经纬度 三、参考 ATGM336H是一种高性能的GPS模块,可以在较低功耗下提供高精度、高可靠性的位置信息服务。它采用了SiRFstarII

    2024年02月08日
    浏览(41)
  • 【蓝桥杯嵌入式】资源拓展板模块详解——数码管

    目录 一、原理 1.1数码管 1.2 74HC595 二、编码说明 2.1 数码管字模 2.2十六进制数字模编码参考 三、程序设计 3.1 原理图 3.2 逻辑分析 3.3 配置方法和参考代码 3.4 参考例程   1.1数码管   扩展板使用3位5161AS数码管。 5161AS数码管引脚图:     5161AS数码管原理图:     从上图可知,

    2024年02月04日
    浏览(42)
  • 上位机图像处理和嵌入式模块部署(自定义算法)

    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         我们在使用opencv的时候,虽然大部分算法都不需要我们自己重头开始编写,但是总有一些关于我们自己产品的know-how,是之前库里本来就不存在的。所以,这个时候,我们还是希望

    2024年01月24日
    浏览(42)
  • 【嵌入式Linux内核驱动】内核模块三要素与验证测试

    内核模块 Linux内核模块是一种可以动态加载和卸载的软件组件,用于扩展Linux操作系统的功能。Linux内核本身只包含了必要的核心功能,而内核模块则允许开发者在运行时向内核添加新的功能、驱动程序或文件系统支持,而无需重新编译整个内核或重新启动系统。 内核模块是

    2024年02月06日
    浏览(60)
  • 上位机图像处理和嵌入式模块部署(windows & opencv)

    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         opencv可以运行在多个平台上面,当然windows平台也不意外。目前来说,opencv使用已经非常方便了,如果不想自己编译,可以直接使用官方编译好的版本,直接下载接好。配置好include和

    2024年01月24日
    浏览(41)
  • 上位机图像处理和嵌入式模块部署(qt图像处理)

    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         很多人一想到图像处理,本能的第一反应就是opencv,这也没有错。但是呢,这里面还是有一个问题的,不知道大家有没有想过,如果我们为了降低成本,需要把图像放到mcu来处理,这

    2024年01月23日
    浏览(44)
  • 【嵌入式Linux】编译应用和ko内核模块Makefile使用记录

    在Makefile中,变量的赋值可以使用以下几种方式: = :最基本的赋值符号,表示简单的延迟展开(lazy expansion)方式。变量的值将会在使用变量的时候进行展开。 := :立即展开(immediate expansion)的赋值方式。变量的值在赋值的时候立即展开,并且在后续的使用中不再改变。

    2024年02月08日
    浏览(50)
  • 上位机图像处理和嵌入式模块部署(qmacvisual缺失的光源控制)

    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         有些场景下面,是不需要光源和光源控制的,比如说利用摄像头识别对应区域的库位,这部分直接利用红外光采集对应的图像就可以了。但是还有一些场景,是需要进行光源控制的,

    2024年04月16日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包