i.MX6系列加载华为ME901s-821模块使用PPP拨号上网
PPP协议
PPP(点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。
内核中添加PPP协议支持
需要添加的内容:
内核USB驱动支持
添加内容包括USB串口、CDC ECM、CDC MBIM驱动,参考《华为模块Linux内核驱动集成指导-(V100R001_V2.0, Chinese)》.
上述步骤完成后,make zImage重新编译内核,烧写到操作系统中
完成后,在开发板上通过cat /proc/devices | grep ppp 命令看到对PPP协议的支持,若显示108 ppp,则对PPP协议已支持。
插入设备后,lsusb命令和ls /dev/ttyUSB*查看USB接入情况,如果显示
则表示USB网络设备成功加载
同样通过 dmesg命令查看开发板驱动加载情况也可判断是否已经支持设备。
交叉编译PPP
从PPP官网下载PPP,本次试验使用ppp-2.4.5.tar.gz。
编译过程参考
Linux下ppp安装及“field ‘pppol2tp’ has incomplete type“解决:
https://www.linuxidc.com/Linux/2016-03/129580.htm
编译完成后,找到如下四个拨号时需要的软件:chat、pppd、pppdump、pppstats,并复制到开发板/usr/sbin目录下。在开发板中创建目录/etc/ppp、/etc/ppp/peers,在主机/etc/ppp目录下找到并复制文件chap-secrets、pap-secrets、ip-up、ip-down到/etc/ppp,内容如下:
chap-secrets、pap-secrets、ip-up、ip-down 可以在Fedora安装了PPP后的/etc/ppp文件夹中找到。
创建文本文件 gprs-connect-chat 内容如下:
#Chat script for China Mobile, used HUAWEI me909s-821 module.
TIMEOUT 15
ABORT "DELAYED"
ABORT "BUSY"
ABORT "ERROR"
ABORT "NO DIALTONE"
ABORT "NO CARRIER"
TIMEOUT 40
'' \rAT
OK ATS0=0
OK ATE0V1
OK AT+CGDCONT=1,"IP","CTNET"
OK AT+CGEQREQ=1,2,128,384,,,0,,,,,,
OK ATDT#777
CONNECT
在/etc/ppp/peers中创建文本文件gprsdial,内容如下
#/etc/ppp/peers/gprsdial
# This is pppd script for China Mobile, used HUAWEI Me909s-821 Module
# Usage: root>pppd call gprs
#Interface should be used is the interface which connects physics interface of S
/dev/ttyUSB0
115200
crtscts
modem
#noauth
debug
nodetach
#hide-password
usepeerdns
noipdefault
defaultroute
user "ctnet"
0.0.0.0:0.0.0.0
#ipcp-accept-local
#ipcp-accept-remote
#lcp-echo-failure 12
#lcp-echo-interval 3
#noccp
#novj
#novjccomp
#persist
connect '/usr/sbin/chat -s -v -f /etc/ppp/gprs-connect-chat'
#disconnect '/bin/chat -v -f /etc/ppp/gprs-disconnect-chat'
参考网址:https://www.linuxidc.com/Linux/2016-03/129581.htm 其中,运行商不同需要做一些调整,比如拨号号码,APN等。
拨号
上述步骤全部结束后,使用pppd call gprsdial &命令拨号,成功后可以直接通过ifconfig命令看到网卡已经被成功加载:
成功ping通外网:
关闭时,直接通过关闭进程的方式直接关闭killall -9 pppd。