如何在Ubuntu16.04下配置移远RM500工业模组(5G工业模组)
如何在Ubuntu16.04下配置移远RM500工业模组(5G工业模组)
最近由于工作原因入手了移远的5G(RM500H工业模组)通信开发板,由于手头上没有树莓派等原装Linux内核系统,又需要使用ROS,因此使用了Vmware虚拟机安装了Ubuntu16.04进行调试。最终可以实现Ubuntu系统使用4G电话卡(手头没有5G的电话卡,只有一张闲置的4g电信卡)连接上网。
调试设备及文档:
1.PC机(已安装Vmware及Ubuntu)
2.移远5G工业模组开发板
3.《Quectel_LTE&5G_Linux_USB_Driver_User_Guide_V2.0》(移远官方文档,注意版本,一定要是最新版本)
连接调试步骤如下:
一、安装USB Driver
1.使用虚拟机,将5G开发板连接至PC机上,注意需要连接至虚拟机的Ubuntu上。
2.打开terminal,输入2.cat /proc/version查看Linux内核版本号(我的原始版本号是Linux version 4.15.0-96-generic )
3.更新升级功能:sudo apt-get update。
4.重新安装ubuntu源代码:sudo apt-get --reinstall install linux-source-4.15.0。由于Ubuntu在编译了Linux内核生成.ko和.o的执行文件后,将所有的源代码都删除了,所以如果需要编译内核,Ubuntu本身是不带Source文件的。
5.进入下载文件包并解压:
cd /usr/src/linux-source-4.15.0
sudo tar xvjf linux-source-4.15.0.tar.bz2
6. 使用查找命令查找两个文件所在:
find /usr/src/linux-source-4.15.0/linux-source-4.15.0 -iname Option.c -or -iname usb-wwan.h
会显示:
/usr/src/linux-source-4.15.0/linux-source-4.15.0/drivers/usb/serial/option.c
/usr/src/linux-source-4.15.0/linux-source-4.15.0/drivers/usb/serial/usb-wwan.h
这个时候就是为修改USB-driver作准备了,准备执行文档中——3.2. USB Serial Option Driver章节的内容。
7.进入/usr/src/linux-source-4.15.0/linux-source-4.15.0/drivers/usb/serial路径下 ,修改option.c文件。
7.1 添加模组的PID和VID
进入/usr/src/linux-source-4.15.0/linux-source-4.15.0/drivers/usb/serial/option.c.并用gedit打开文件,按要求在函数内添加相应的信息。
File: [KERNEL]/drivers/usb/serial/qcserial.c
{USB_DEVICE(0x05c6, 0x9215)}, /* Acer Gobi 2000 Modem device (VP413) */
File: [KERNEL]/drivers/net/usb/qmi_wwan.c
{QMI_GOBI_DEVICE(0x05c6, 0x9215)}, /* Acer Gobi 2000 Modem device (VP413) */
这两行一定要禁用,不然会报错。
7.2 Add the Zero Packet Mechanism
进入/usr/src/linux-source-4.15.0/linux-source-4.15.0/drivers/usb/serial/usb_wwan.c,并修改。
此处并不是所有修改内容,具体修改内容请参照User Guide。
7.3 Use MBIM, GobiNet or QMI_WWAN Driver
对应User Guide章节3.2.5
7.4 Modify Kernel Configuration(配置Kernel)
先进入/usr/src/linux-source-4.15.0/linux-source-4.15.0(Kernel所在包),
再输入sudo make menuconfig,启用 CONFIG_USB_SERIAL_OPTION。
[] Device Drivers →
[] USB Support →
[] USB Serial Converter support →
[] USB driver for GSM and CDMA modems
执行3.2.6的make menuconfig指令时会提示未安装ncurse,安装上。
命令:sudo apt-get install libncurses5-dev
8.执行3.2.7之前,Ubuntu的Linux内核版本为Linux version 4.15.0-96-generic,因此需要编译并修改内核版本,修改方法参考《[Linux Kernel]在ubuntu下编译内核过程》(链接为http://blog.sina.com.cn/s/blog_54f82cc201012czx.html)
make
Q1:执行make时会出现问题 scripts/sign-file.c:25:30: fatal error: openssl/opensslv.h: No such file or directory
S1:执行sudo apt-get install libssl-dev 安装
make modules_install
make install
/lib/modules下有生成新的内核名字,使用mkinitramfs -o initrd.img-4.15.18 4.15.18生成initrd 镜像文件
执行3.2.7步骤,reboot后连接开发板,就能在dev下发现
9.以下Tips在使用时可能会遇到,视个人遇到的情况而定
Tips:编译过程中的错误:
(1)显示:
drivers/usb/serial/option.c: In function ‘option_probe’:
drivers/usb/serial/option.c:2127:2: error: unknown type name ‘USB’
USB network device
^
drivers/usb/serial/option.c:2127:14: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘device’
USB network device
^
drivers/usb/serial/option.c:2127:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
USB network device
^
scripts/Makefile.build:330: recipe for target ‘drivers/usb/serial/option.o’ failed
make[3]: *** [drivers/usb/serial/option.o] Error 1
解决办法:option.c的2172行的USB被写进了程序中,本应该是注释
(2)用的Vmware虚拟机运行的Ubuntu程序,安装到最后硬盘大小出现问题
显示:No space left on device
查看:(1)df -h (2)df /home (3)ll -ah (4)删除大文件rm -rf /var/log/messages
解决办法:将硬盘容量从20G扩展到100G,虚拟机扩展方法参照博客:
https://blog.csdn.net/weixin_39510813/article/details/78387334
(3)按照文档《[Linux Kernel]在ubuntu下编译内核过程》中,如果执行第4步make后,
会有一些问题出现,可参照http://blog.chinaunix.net/uid-22676613-id-1771484.html解决。
(4)第9步中要求用编辑器打开/boot/grub/menu.lst文件,但Ubuntu版本自从10以后,已经没有menu.lst文件了,可以下载Grub Customizer工具进行配置,
在移远开发板内核配置的的时候是不需要按照这个步骤的,直接执行3.2.7就好。这个是为了切换内核用的。
安装:
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer
配置:
到这一步基本就安装完成了,然后就是重启就可以在/dev下发现ttyUSB0/1/2/3等几个驱动。
10、测试AT指令功能
连接好硬件,再将SIM卡插入开发板。
在Ubuntu下打开Terminal,输入busybox microcom /dev/ttyUSB2指令,再根据AT指令集输入所需指令即可完成测试。(AT指令集可查看给的官方手册或百度)
推荐几个测试命令:
检测Module与串口是否连通,能否接收AT命令: AT
查看SIM卡是否到位: AT+CPIN?
测试信号: AT+CSQ
查看运营商: AT+COPS?
获取模块标识: AT+CGMM
获取模块厂商标识: AT+CGMI
查看SIM卡是否到位: AT+CPIN?
网络注册。获得手机的注册状态: AT+CREG?
二、 配置GobiNet Driver
1.参考配置文档3.4章节进行配置,首先将GobiNet Driver放入usr/src/linux-source-4.15.0/linux-source-4.15.0/drivers/net/usb/中。其中,GobiNet Driver是文件夹《Quectel_WCDMA<E_Linux&Android_GobiNet_Driver_V1.3.0》中下载的(官方网站上驱动无法直接下载,供应商有提供版本是直接可用的)
2.进行到5.3的Step2时需要使用busybox udhpc,需要到官网上下载相应源代码,先在命令行输入busybox,查看其版本号;再在官网上下载对应版本。
参考:
http://wiki.friendlyarm.com/wiki/index.php/How_to_use_4G_Module_on_NanoPC-T4
并按照Quectel_LTE&5G_Linux_USB_Driver_User_Guide_V2.0文件中的3.6步骤进行操作。
在将下载好的源文件make后会生成quectel-CM的可执行文件,将可执行文件cp到/usr/bin下才可以调用。
3.调试
在root下输入/home/puer/Desktop/Quectel_QConnectManager_Linux_V1.6.0.6# quectel-CM &
出现结尾为
[04-23_00:56:33:997] Adding DNS server 222.66.251.8
[04-23_00:56:33:997] Adding DNS server 116.236.159.8
就是正常连接了。
然后就可以正常上网了
如何在Ubuntu16.04下配置移远RM500工业模组(5G工业模组)相关教程