龙尚3G模块在arm板上的应用

最近项目需要在arm板上装一块3G的无线模块,于是查了很多资料,弄了很久才发现是资料中出了些问题,故将整个调试过程写成博客,以后方便查阅。

一、3G模块
现在手上的这块模块是龙尚U7309系列(o(╯□╰)o,没有打广告)的,淘宝上这个系列好像都没得买了。以前没接触过这类东西,于是各种查找资料……

二、移植步骤
简单说一下这个模块的拨号流程,具体原理性的知识不作展开。这个模块通过USB接口与开发板相连接,在连接过后会在 /dev目录下生成3个串口设备节点,一般是ttyUSB0,ttyUSB1与ttyUSB2,然后我们需要通过ppp对这几个设备进行拨号即可。

但是有些开发板上会识别并将模块上的USB转换为串口,并可以进行ppp拨号,但是也有很多arm并没有现成的功能,需要我们自己去移植。下面是针对最杯具的情况进行说明。

1、添加USB转串口支持
首先将arm开发板启动,将模块通过USB连接至开发板,如果/dev目录下出现了ttyUSB0,ttyUSB1与ttyUSB2,那么恭喜你可以直接跳过该步骤。如果没有的话,linux会打印出相关的信息,其中包括模块的制造商与产品号,idVendor=1c9e, idProduct=9603,记下这两个号,后面会用到。

接下来需要对内核进行编译,需要开发板上运行内核的源码,当然也可以单独对内核模块进行编译,因为后面需要ppp模块,这里采用编译整个内核。在编译内核之前需要对个别文件进行修改,修改的文件为/linux/drivers/usb/serial/option.c。

这里写图片描述

这里写图片描述

然后,在编译内核的时候选上与USB转串口相关的选型,与PPP拨号相关的,注意是编译进内核,是编译成模块。然后重新编译内核即可。

这里写图片描述
这里写图片描述

2、编译ppp程序
要在arm板上进行ppp拨号,还需要pppd程序与chat等程序,这里我选择自己进行交叉编译。这里版本号为ppp-2.4.5,一开始使用ppp-2.4.1进行编译没有成功,换用了2.4.5很顺利的就编译成功了。

首先下载ppp-2.4.5.tar.gz解压,然后进入解压后的文件夹目录,执行以下配置及编译语句。执行前将交叉工具链添加至.bashrc并进行同步。

./configure  
make CC=arm-linux-

之后将chat、pppd、pppdump、pppstats目录下对应的可执行文件拷贝出来,放置在开发板中的/bin目录(先执行pppd,看会不会出现乱码,有的话就对了,如果按Ctrl+C关不掉乱码,就只能另开一个终端啦~有些开发板chat是放置在/usr/sbin目录,具体可以看拨号出错提示)。

3、添加拨号脚本
以上各种准备好之后,我们只要准备好拨号脚本就行了。这里我给出的是联通的拨号脚本。
首先如果/etc下没有ppp目录,那么新建一个,之后的ppp目录下需要有chat目录与peer目录。

chat目录新建gprs-connect-chat与gprs-disconnect-chat文件,文件内容如下。
gprs-connect-chat:

TIMEOUT 15
ABORT 'NO CARRIER'
ABORT 'ERROR'
ABORT 'NODIALTONE'
ABORT 'BUSY'
ABORT 'NO ANSWER'
"" 'AT'
OK AT+CGDCONT=1,"IP","3gnet",,0,0
OK 'ATDT*99#'
CONNECT ''

gprs-disconnect-chat:

ABORT "ERROR"
ABORT "NO DIALTONE"
SAY "\nSending break to the modem\n"
'' "\k"
'' "+++ATH"
SAY "\nGood bye\n"

peer目录下新建cdma_gprs文件,文件内容如下,如果需要调试,请将nodetach与debug前的‘#’去掉。
cdma_gprs:

lock
/dev/ttyUSB2
115200
#nodetach
crtscts
modem
#debug
usepeerdns
noipdefault
defaultroute
user "3gnet"
password "card"
noauth
novj
novjccomp
noccp
ipcp-accept-local
0.0.0.0:0.0.0.0
ipcp-accept-remote
connect '/usr/sbin/chat -v -s -f /etc/ppp/chat/gprs-connect-chat'
disconnect '/usr/sbin/chat -v -s -f /etc/ppp/chat/gprs-disconnect-chat'

之后只要执行pppd call cdma_gprs即可,如果拨号失败,将cdma_gprs文件中的/dev/ttyUSB2更改为/dev/ttyUSB0或者/dev/ttyUSB1重新尝试。出现

primary DNS address 一个IP
secondary DNS address  一个IP

说明拨号成功。此时如果只能ping通IP的话,查看是否是DNS配置错误,或者关闭以太网卡重新尝试。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值