[转载]迅为4418开发板Qt移植移动4G模块第一部分
本文转自迅为论坛:http://topeetboard.com
平台: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 \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 <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不通的。因为有字数限制所有剩下的分另一个贴子。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人