2 btuin37 Btuin37 于 2017.09.04 09:55 提问

迅为imx6开发板怎么移植移动4G模块

这俩天遇到疑问,迅为imx6开发板怎么移植移动4G模块,求解答

2个回答

mucheni
mucheni   2017.09.05 09:46

迅为IMX6开发板Qt移植移动4G模块第一部分
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 \rATZ
OK \rAT+CGDCONT=1,"IP","3gnet",,0,0
OK-AT-OK ATDT*99#
CONNECT \d\c

在这里 OK \rAT+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\n"

""\k"

""+++ATH"

SAY "\nGood bye\n"
致此就完成了大半部分可以先烧录进去试试。
测试方法:
开机后先输入:ifconfig eth0 down 将eth0关掉,因为他会和模块有冲突。
然后在/etc/ppp下输入指令:
pppd call wcdma&
使其一直在后台运行,如果移植成功将会打印一些信息,下面是截取的最后的部分:

CHAP authentication succeeded
CHAP authentication succeeded
sent [IPCP ConfReq id=0x1 ]
rcvd [IPCP ConfReq id=0x0]
sent [IPCP ConfNak id=0x0 ]
rcvd [IPCP ConfNak id=0x1 ]
sent [IPCP ConfReq id=0x2 ]
rcvd [IPCP ConfReq id=0x1]
sent [IPCP ConfAck id=0x1]
rcvd [IPCP ConfAck id=0x2 ]
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不通的。因为有字数限制所有剩下的部分我会跟帖。

mucheni
mucheni   2017.09.05 09:46

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 \rATZ
OK \rAT+CGDCONT=1,"IP","3gnet",,0,0
OK-AT-OK ATDT*99#
CONNECT \d\c

在这里 OK \rAT+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\n"

""\k"

""+++ATH"

SAY "\nGood bye\n"
致此就完成了大半部分可以先烧录进去试试。
测试方法:
开机后先输入:ifconfig eth0 down 将eth0关掉,因为他会和模块有冲突。
然后在/etc/ppp下输入指令:
pppd call wcdma&
使其一直在后台运行,如果移植成功将会打印一些信息,下面是截取的最后的部分:

CHAP authentication succeeded
CHAP authentication succeeded
sent [IPCP ConfReq id=0x1 ]
rcvd [IPCP ConfReq id=0x0]
sent [IPCP ConfNak id=0x0 ]
rcvd [IPCP ConfNak id=0x1 ]
sent [IPCP ConfReq id=0x2 ]
rcvd [IPCP ConfReq id=0x1]
sent [IPCP ConfAck id=0x1]
rcvd [IPCP ConfAck id=0x2 ]
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不通的。因为有字数限制所有剩下的部分我会跟帖。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!