5GRM500U-CN在ubuntu20.04上的驱动安装

  • 简述
    • 问题发现
    • 问题的解决
  • 续集

简述

记录在ubuntu20.04上安装RM500U-CN驱动的过程

问题发现

将5g模块接入USB接口后无法自动拨号上网,使用命令查看串口信息:

ls /dev/tty*

发现没有usb串口信息,再使用命令

lsusb

发现已经识别到了5g模块的接入,因此推断可能是已经识别到了串口的连接,但是没有相应的驱动

问题的解决

查看linux内核版本并找到对应的驱动安装包,使用此命令查看内核版本:

uname -r

找到对应的安装包后,使用命令查看5g模块对应的ID号:

看到倒数第二行的ID号为2C7C:0900,在./drivers/usb/serial文件夹下的option.c文件中找到如下代码并加入相应的ID:

static const struct usb_device_id option_ids[] = {#if 1 //Added by Quectel{ USB_DEVICE(0x05C6, 0x9090) }, /* Quectel UC15 */{ USB_DEVICE(0x05C6, 0x9003) }, /* Quectel UC20 */{ USB_DEVICE(0x05C6, 0x9215) }, /* Quectel EC20(MDM9215) */{ USB_DEVICE(0x2C7C, 0x0125) }, /* Quectel EC20(MDM9x07)/EC25/EG25 */{ USB_DEVICE(0x2C7C, 0x0121) }, /* Quectel EC21 */{ USB_DEVICE(0x2C7C, 0x0191) }, /* Quectel EG91 */{ USB_DEVICE(0x2C7C, 0x0195) }, /* Quectel EG95 */{ USB_DEVICE(0x2C7C, 0x0306) }, /* Quectel EG06/EP06/EM06 */{ USB_DEVICE(0x2C7C, 0x030B) }, /* Quectel EG065K/EG060K */{ USB_DEVICE(0x2C7C, 0x0514) }, /* Quectel BL EG060K RNDIS Only */{ USB_DEVICE(0x2C7C, 0x0512) }, /* Quectel EG12/EP12/EM12/EG16/EG18 */{ USB_DEVICE(0x2C7C, 0x0296) }, /* Quectel BG96 */{ USB_DEVICE(0x2C7C, 0x0700) }, /* Quectel BG95/BG77/BG600L-M3/BC69 */{ USB_DEVICE(0x2C7C, 0x0435) }, /* Quectel AG35 */{ USB_DEVICE(0x2C7C, 0x0415) }, /* Quectel AG15 */{ USB_DEVICE(0x2C7C, 0x0452) }, /* Quectel AG520 */{ USB_DEVICE(0x2C7C, 0x0455) }, /* Quectel AG550 */{ USB_DEVICE(0x2C7C, 0x0620) }, /* Quectel EG20 */{ USB_DEVICE(0x2C7C, 0x0800) }, /* Quectel RG500/RM500/RG510/RM510 */{ USB_DEVICE(0x2C7C, 0x0801) }, /* Quectel RG520/RM520/SG520 */{ USB_DEVICE(0x2C7C, 0x6026) }, /* Quectel EC200 */{ USB_DEVICE(0x2C7C, 0x6120) }, /* Quectel UC200 */{ USB_DEVICE(0x2C7C, 0x6000) }, /* Quectel EC200/UC200 */##此处加入RM500U-CN相应的ID{ USB_DEVICE(0x2C7C, 0x0900) }, /* Quectel RM500U-CN */{ .match_flags = USB_DEVICE_ID_MATCH_VENDOR, .idVendor = 0x2C7C }, /* Match All Quectel Modules */
#endif

保存后在Makefile文件的目录下进行编译:

sudo make install

在Makefile文件中可以看到,将驱动模块.ko文件放在了./drivers/usb/serial文件夹下,在对应文件夹下找到三个驱动文件:
1、option.ko
2、usb_wwan.ko
3、qcserial.ko
之后将三个驱动文件移植到内核即可。有两种方法:
(1)方法一 :进入test.ko驱动模块文件所在的目录,然后直接 insmod test.ko (在我的笔记本上始终行不通)
(2)方法二 :将test.ko文件拷贝到/lib/module/#uname-r#/目录下,这里,#uname -r#意思是,在终端中输入“uname -r“后显示的内核版本及名称。(只能在终端里sudo cp 命令来复制)

然后 sudo depmod(会在/lib/modules/#uname -r#/目录下生成modules.dep和modules.dep.bb文件,表明模块的依赖关系)
最后 sudo modprobe test(注意这里无需输入.ko后缀) 即可(一定要加sudo,不然不成功)

注:两种方法的区别:modprobe和insmod类似,都是用来动态加载驱动模块的,区别在于modprobe可以解决load module时的依赖关系,它是通过/lib/modules/#uname -r/modules.dep(.bb)文件来查找依赖关系的;而insmod不能解决依赖问题。也就是说,如果你确定你要加载的驱动模块不依赖其他驱动模块的话,既可以insmod也可以modprobe,当然insmod可以在任何目录下执行,更方便一些。而如果你要加载的驱动模块还依赖其他ko驱动模块的话,就只能将模块拷贝到上述的特定目录,depmod后再modprobe。

最后再次使用命令:

ls /dev/tty*

看到如图所示的usb串口信息:

断开wifi和网线,发现仍有以太网接入,证明5g模块已经可以正常使用,到此为止,驱动安装结束。

续集

在我的另一台笔记本上总是insmod出错,忍无可忍,重装系统,直接超度了它,最后问题解决!

5G模块RM500U-CN在ubuntu20.04上的驱动安装相关推荐

  1. Ubuntu20.04上3090显卡安装Nvidia驱动和CUDA11.1及cuDNN8.0.4

    前言 GeForce RTX 3090是最新显卡,CUDA支持也只支持到最新版本11.0及以上.本文记录了GeForce RTX 3090安装驱动和CUDA11.1.cuDNN等过程,CUDA11.1 ...

  2. Ubuntu20.04下显卡驱动安装的完整过程(超详细)

    1.首先查看硬件:显卡是否安装 lspci | grep -i vga lspci | grep -i nvidia 注意:如果没显示显卡信息则看显卡是否安装好(看下显卡风扇是否在转,图中是显卡位置) ...

  3. Ubuntu20.04 USB网卡驱动安装 - MT7601u

    型号:TL-WN725N 1.0 免驱版 芯片:MT7601u 具体型号可使用`lsusb`命令查看 确认型号为mt7601u后. 执行如下命令. sudo apt install git build ...

  4. ubuntu20.04上安装和使用frp内网穿透的方法

    ubuntu20.04上安装和使用frp内网穿透的方法 第一步:下载frp软件 frp_0.36.2_linux_amd64.tar.gz 下载地址:https://download.csdn.net ...

  5. 在Ubuntu20.04上安装二进制ros2 foxy

    在Ubuntu20.04上安装二进制ros2 foxy 设置语言环境的支持,确保支持UTF-8 sudo locale-gen en_US en_US.UTF-8 sudo update-locale ...

  6. 在Ubuntu20.04上安装MySQL8.0及正确配置[已验证]

    在Ubuntu20.04上安装MySQL8.0及正确配置[已验证] 安装MySQL 验证 登陆MySQL 创建db 解决workbench连接的问题 小结 常用操作 如何新增用户 对新增的用户更改加密 ...

  7. 【OpenStack】在ubuntu20.04上部署openstack(Ussuri版)

    在ubuntu20.04上部署openstack(Ussuri版) 文章目录 在ubuntu20.04上部署openstack(Ussuri版) 一.在虚拟机上安装的网络配置(服务器看二) 二.在服务 ...

  8. linux ubuntu 安装git服务器,[linux] Ubuntu20.04上安装搭建私有Git服务器Gitea

    [linux] Ubuntu20.04上安装搭建私有Git服务器Gitea [linux] Ubuntu20.04上安装搭建私有Git服务器Gitea Gitea 是相比于gitlab更加轻量化,而且 ...

  9. Ubuntu20.04上安装部署Elasticsearch

    一.背景 在我们开发ElasticSearch相关功能的时候,想要本机部署一个ElasticSearch服务.想采用apt-get install 的方式来安装.本文在Ubuntu20.04上安装部署 ...

最新文章

  1. centos中用MySQL创建新表_CentOS下使用Shell批量创建数据库表
  2. CS中实现简单的注册验证窗体程序
  3. 从变分编码、信息瓶颈到正态分布:论遗忘的重要性
  4. matplotlib库绘图基础
  5. 自学Java和Java培训班的学习效果
  6. VS高版本编写C程序的C4996错误
  7. C# linq Expression left join如何使用
  8. [LeetCode][Python][C#]刷题记录 26. 删除排序数组中的重复项
  9. 查找 - 计算式查找法 - 哈希法
  10. Zabbix---1 监控主机磁盘空间
  11. python统计字符串中某个字符出现的次数_【面试题总结】1、统计字符串中某个字符出现的次数(2-Python实现)...
  12. Linux dirname、basename 指令
  13. shell获取git最近一次提交信息_我低估了PowerShell:一个提取Git提交记录并生成文件Diff列表的脚本案例...
  14. 中维云视通网络监控系统
  15. html字体白色边框黑色效果,css完整总结:第二篇(尺寸,外补白,内补白,边框,背景,颜色,字体,文本,文本装饰)...
  16. MySQL 按照天数查询数据
  17. DS homework-队列
  18. 11月全球浏览器份额:IE蝉联霸主 份额继续下降
  19. 第五章 树16 AcWing 1628. 判断红黑树
  20. 火火火---12幅算法生成火的图像

热门文章

  1. 【幻灯片动画制作】Focusky教程 | 如何在Focusky中批量修改字体与换色?
  2. IMT-2020(5G)推进组发布《5G-Advanced 场景需求与关键技术白皮书》
  3. 用户态TCP协议栈的调研
  4. [统计]_通俗地讲一类错误和二类错误
  5. js获取当前日期时间 YYYY-MM-dd HH:MM:SS
  6. 深入学习高频脉冲变压器GDT的设计
  7. [Errno 14] PYCURL ERROR 22 - The requested URL returned error: 416 Requested Range Not Satisfiable
  8. SRE学习笔记2:衡量系统稳定性的指标
  9. 2016深度学习统治人工智能?深度学习十大框架
  10. 高等教师资格证考试复习笔记-高等教育学-(9)- 高等学校的教学