本文转自迅为论坛:http://topeetboard.com 了解更多:https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-7744162139.10.QixXQ2&id=525502772842
平台:iTOP-4418开发板
1.首先要配置内核,这个一步和Android系统移植3G或者4G模块是一样的。一般模块的厂家会提供移植文档,按照文档配置内核的ppp协议,USB转串,wcdma等,添加PID VID即可。这一步严格按照模块内核修改就行。
这里主要分析qt文件系统的修改,对内核不做过多的分析。
配置好的内核在开机后可以在dev下找到ttyUSB0-3的设备节点。
2.准备工作;下载ppp-2.4.4.tar.gz,这个我会上传。
①.解压:tar -vxf ppp-2.4.4.tar.gz。
②.运行configure,生成Makefile:./configure
③.编译输入命令:make CC=arm-none-linux-gnueabi-gcc-4.4.1
这里说明一下,CC=arm-none-linux-gnueabi-gcc-4.4.1是指明编译器,这里可以输入arm然后双按tab键找自己的交叉编译器。
经过以上三步就会分别在chat、pppd、pppdump、pppstats中生成四个可执行文件chat、pppd、pppdump、pppstats ,用于拨号。
3.以下操作是在qt文件系统,这里使用迅为提供的qt文件系统:rootfs.tgz
①.解压rootfs.tgz:tar -vxf rootfs.tgz
②.在etc中新建文件夹ppp
③.把上面生成的四个可执行文件chat、pppd、pppdump、pppstats拷贝到ppp里面。
4.写配置文件
①.在etc/ppp下文件pap-secrets:vim pap-secrets
②.输入
# Secrets for authentication using PAP
# client server secret IP addresses
card * card *
在4G信号在通信时候有一个密码的比对,密码对了就可以通信了。上面显示用户是card 密码是card
③.在etc/ppp下新建文件夹peers:mkdir peers
在peers里面新建文件wcdma:vim wcdma
输入:
# /etc/ppp/peers/wcdma
# This is pppd script for China liantong
# Usage: root>pppd call wcdma
hide-password
noauth
connect '/etc/ppp/chat -s -v -f /etc/ppp/peers/wcdma-chat-connect'
disconnect '/etc/ppp/chat -s -v -f /etc/ppp/peers/wcdma-chat-disconnect'
debug
/dev/ttyUSB2
115200
defaultroute
noipdefault
novj
novjccomp
noccp
ipcp-accept-local
ipcp-accept-remote
local
lock
dump
nodetach
user "card"
password "card"
crtscts
remotename 3gppp
ipparam 3gppp
usepeerdns
这里需要注意的是/dev/ttyUSB2,这句话要根据自己的情况而定,4G模块手册上应该会有些那个是用于AT指令,ppp拨号的。看自己的手册决定是不是ttyUSB2。
另外:
user "card"
password "card"
这就对应了上面的用户和密码。
④.同样在peers中新建文件wcdma-chat-connect:vim wcdma-chat-connect 输入:
ABORT "BUSY"
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "ERROR"
ABORT "NO ANSWER"
TIMEOUT 120
"" AT
OK
ATZ
OK
AT+CGDCONT=1,"IP","3gnet",,0,0
OK-AT-OK ATDT*99#
CONNECT dc
在这里 OK
AT+CGDCONT=1,"IP","3gnet",,0,0
OK-AT-OK ATDT*99#
这两句话会根据移动联通或者是电信而变化,我这里用的是移动4G。
⑤.同样在peers中新建wcdma-chat-disconnect:vim wcdma-chat-disconnect 输入:
ABORT "ERROR"
ABORT "NO DIALTONE"
SAY "INSending break to the modem
"
""k"
""+++ATH"
SAY "
Good bye
"
致此就完成了大半部分可以先烧录进去试试。
测试方法:
开机后先输入:ifconfig eth0 down 将eth0关掉,因为他会和模块有冲突。
然后在/etc/ppp下输入指令:
pppd call wcdma&
使其一直在后台运行,如果移植成功将会打印一些信息,下面是截取的最后的部分:
CHAP authentication succeeded
CHAP authentication succeeded
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
rcvd [IPCP ConfReq id=0x0]
sent [IPCP ConfNak id=0x0 <addr 0.0.0.0>]
rcvd [IPCP ConfNak id=0x1 <addr 10.211.219.99> <ms-dns1 221.130.33.60> <ms-dns3 221.130.33.52>]
sent [IPCP ConfReq id=0x2 <addr 10.211.219.99> <ms-dns1 221.130.33.60> <ms-dns3 221.130.33.52>]
rcvd [IPCP ConfReq id=0x1]
sent [IPCP ConfAck id=0x1]
rcvd [IPCP ConfAck id=0x2 <addr 10.211.219.99> <ms-dns1 221.130.33.60> <ms-dns3 221.130.33.52>]
Could not determine remote IP address: defaulting to 10.64.64.64
local IP address 10.211.219.99
remote IP address 10.64.64.64
primary DNS address 221.130.33.60
secondary DNS address 221.130.33.52
在这里可以是一下ping ip地址,这里注意要是可以平通的ip地址,可先在电脑上试试能否ping通,然后在开发板上ping 。到这里输入ifconfig会有ppp0出现。
但是到这里,即使ping通了ip,域名应该也是ping不通的。因为有字数限制所有剩下的分另一个贴子。