在许多领域,4G模块已成为现代通信技术的重要组成部分,如移动通信、车联网、物联网等,4G技术的应用越来越广泛。
如今,很多客户都需要用到4G模块来实现各种应用。为了帮助客户更好的使用4G模块,我司提供以下4G模块调试指导。
我司提供的SML750、320以及N720 4G模块都有现成的测试脚本,用户直接使用即可,本文档就不过多赘述。
本文档主要目的是帮助用户自主调试其它4G模块。
实现4G功能分为两步:
第一步:产生USB节点;
第二步:实现拨号上网。
调试前的准备
本文档以广和通的L610 4G模块为例。测试4G模块的文件主要有三个,分别是
主测试脚本:4G_XXX_TQ3568.sh,
拨号脚本:XXX_init,
连接脚本:tq_XXX_connect,
用户可直接在我司提供的4G测试脚本基础上进行修改。
首先,在开发板终端,进入/test_utils/4G目录:
cd /test_utils/4G
如下图所示:
可以看到本目录下主要放着4G模块的主测试脚本,我们随便拷贝一份,取名为4G_L610_TQ3568.sh
cp 4G_slm320_TQ3568.sh 4G_L610_TQ3568.sh
进入 /etc/ppp/peers目录
cd /etc/ppp/peers
可以看见,此目录下有着许多模块的拨号脚本以及连接脚本,(注:4G模块的拨号脚本以及连接脚本必须放在/ppp/peers目录下,用户不能随意更改此脚本位置)
随便拷贝一份4G模块的拨号脚本以及连接脚本,并取名为L610_init,tq_L610_connect
cp slm320_init L610_init
cp tq_slm320_connect tq_L610_connect
前期准备已经完成,接下来我们开始按照对应4G模块对脚本进行修改。
一、产生USB节点
1、查看L610模块的PID、VID
断电之后,把模块插到开发板上,重新上电进入系统后执行以下语句查看USB设备情况:
lsusb
由上图标红框的部分可知L610模块PID: 1782 ,VID:4d10
2、进入/test_utils/4G目录,打开4G_L610_TQ3568.sh文件
cd /test_utils/4G
vi 4G_L610_TQ3568.sh
上图标红框的部分为产生USB节点的代码,以下给出代码解释
modalias=$(cat /sys/bus/usb/devices/7-1:1.1/modalias) #从7-1:1.1目录下的modalias文件中获取
#L610模块的PID、VID,modalias文件内容如图1所示。
v=${modalias#*v}
p=${modalias#*p}
pid=${v:0:4} #截取'v'后的四位,即1782
vid=${p:0:4} #截取'p'后的四位,即4D10
echo $pid $vid > /sys/bus/usb-serial/drivers/option1/new_id #将L620模块的PID、VID写入此目录
#用于生成ttyUSB节点
echo 1782 4d10 > /sys/bus/usb-serial/drivers/option1/new_id
图一:7-1:1.1目录下的modalias文件内容
上图标红部分与lsusb查看的PID、VID相同,为了能让脚本自动取出正确的PID、VID,确定/sys/bus/usb/devices/7-1:1.1/modalias文件是关键。其中7-1:1.1设备目录由硬件决定。
因此,不同的开发板,该设备目录也会不同。而在TQ3568开发板中,此目录大概率为7-1:x.x或5-1:x.x。
若用户使用的不是TQ3568开发板,则该设备目录很大几率不是7-1:x.x或5-1:x.x,不过也不用担心,以下方法会帮助您精确找到对应目录。
①查看内核打印信息
断电,将4G模块插到开发板上。上电时,串口终端会打印出内核相关信息,可以判断4G模块对应的设备节点位于哪个设备目录。
由上图可知,在TQ3568开发板上,其4G模块对应的usb设备目录为7-1。
进入/sys/bus/usb/devices目录
cd /sys/bus/usb/devices
可以看见,有(7-1:1.0至7-1:1.6)七个关于4G模块的USB设备。值得注意的是,“:" 前的数字表示总线号,":"后表示设备号。
我们打开这七个设备目录下的modalias文件,可以发现其modalias文件内容(PID、VID)都为1782、4D10。
那么我们只需从这七个目录选择一个来获取PID、VID即可。本文档选择的是7-1:1.1。
若是T507平台,确定USB设备目录的方法与上文相同。
①查看内核打印信息
②进入/sys/bus/usb/devices目录
cd /sys/bus/usb/devices
标红的目录内的modalias文件都完全相同,我们任选其一即可。例如选择2-1:1.1,则将原7-1:1.1更改为2-1:1.1如下图所示:
综上,就是产生USB节点的方法。
若用户使用的不是TQ3568平台,请按照以上方法确定并修改USB设备目录,以此来获取对应4G模块的PID、VID,进而产生USB节点。
二、实现拨号上网
1、拨号上网需要在L610_init拨号脚本文件中指明USB设备,进入/etc/ppp/peers,打开L610_init文件如下图所示:
cd /etc/ppp/peers
vi L610_init
此文件由SLM320_init拷贝而来,由上图可知,原SLM320拨号使用的是ttyUSB5。至于为什么是使用ttyUSB5进行拨号,这由4G模块厂家决定。
2、通过查看SLM320对应手册可知对应模块使用的是哪个USB设备,如下图所示:
用于拨号的端口一般为Modem端口,故SLM320拨号使用的USB设备为ttyUSB5。
查看本例的L610模块的端口信息如下图所示:
故,L610拨号使用的ttyUSB设备为ttyUSB0。
3、因此,我们需要将ttyUSB5修改为ttyUSB0,如下图所示:
4、最后,我们将下图标红的部分,改为L610对应的连接文件。
更改前:
更改后:
三、测试4G模块
成功产生USB节点和配置号拨号文件后,接下来测试4G模块功能是否正常
进入/test_utils/4G目录,执行4G_L610_TQ3568.sh文件
cd /test_utils/4G
sh 4G_L610_TQ3568.sh
上方红框为产生的USB节点打印信息,下方红框表示4G模块功能正常!
综上所述,调试4G模块总体来说只需要修改两个文件,分别为
1.主测试文件:4G_XXX_TQ3568.sh,
2.拨号脚本文件:XXX_init。
用户在实际开发中可能会遇到以下两种情况:
①用户使用的是TQ3568开发板
第一步:查看主测试文件,确认USB设备目录是否为7-1:XX(是:无需修改,否:修改为7-1:XX或5-1:XX)具体修改为哪个,请根据上文进入/sys/bus/usb/devices目录查看后自行修改。
第二步:自行查看对应模块的手册,确定拨号使用的USB序号并修改拨号脚本文件。
②用户使用的不是TQ3568开发板
第一步:通过上文确定USB设备目录,并修改主测试文件。
第二步:自行查看对应模块的手册,确定拨号使用的USB序号并修改拨号脚本文件。