树莓派——4G网卡华为ME909s-821 4G上网及开机自启动(1)
使用的树莓派为树莓派3B,操作系统为Ubuntu Mate 16.04
使用的4G网卡模块为华为ME909s-821 4G全网通模块,购买模块时一定要购买带底座的模块,方便开发。
使用的SIM卡为普通的移动手机卡,需要带大卡套才方便插入,如下图所示。不一定必须是移动卡,理论上移动、联通、电信都可以,只不过我自己测试使用的是移动卡。
ME909s模块与树莓派主要通过USB连接,使用串口协议通信,因此可以使用查看串口的命令看模块是否成功被读取,输入下述命令
lsusb
树莓派显示结果如下
Bus 001 Device 008: ID 12d1:15c1 Huawei Technologies Co., Ltd.
Bus 001 Device 007: ID 1c4f:0026 SiGma Micro Keyboard
Bus 001 Device 006: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 001 Device 004: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 005: ID 0781:5597 SanDisk Corp.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
其中Bus 001 Device 008: ID 12d1:15c1 Huawei Technologies Co., Ltd.
即为ME909s模块,看到该消息说明模块成功被树莓派识别读取。
如果未显示该语句,查看模块与电脑的连接,等待几十秒时间等待模块初始化,并多输入几次lsusb
命令查看。
主要是用wvdial
库,在联网状态下,输入下述命令安装库
sudo apt-get install wvdial
打开配置文件
sudo vim /etc/wvdial.conf
输入下列配置信息
[Dialer hw1]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0
Init3 = AT+CGDCONT=1,"IP","3gnet"
Modem Type = Analog Modem
Baud = 9600 # 波特率常见的是9600 115200 460800
New PPPD = yes
Modem = /dev/ttyUSB0
ISDN = 0
Phone = *99#
Password = guest
Username = guest
Auto DNS = on
保存并退出。
输入下述命令测试ME909s模块拨号情况,拨号成功则证明手机卡可以借助ME909s模块使用。
sudo wvdial hw1
若配置wvdial.conf文件时没有修改文件名,即wvdial.conf文件开头
[Dialer Default]
则拨号测试命令为
sudo wvdial
输入该命令后需要等待一段时间,一般30s左右,如果没有错误信息或停止,一直等下去
模块正常通信时,返回数据如下:
--> WvDial: Internet dialer version 1.61
--> Initializing modem.
--> Sending: ATZ
ERROR
G
EATZ
TPO
OK
RT
--> Sending: ATQ0 V1 E1 S0=0
MATQ0 V1 E1 S0=0
OK
--> Sending: AT+CGDCONT=1,"IP","4gnet"
AT+CGDCONT=1,"IP","4gnet"
O
OK
D
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
EATDT*99#
CONNECT 150000000
--> Carrier detected. Waiting for prompt.
--> Don't know what to do! Starting pppd and hoping for the best.
--> Starting pppd at Tue Oct 23 15:21:28 2018
--> Pid of pppd: 1264
--> Using interface ppp0
--> pppd: €[01]a
--> pppd: €[01]a
--> pppd: €[01]a
--> pppd: €[01]a
--> pppd: €[01]a
--> local IP address 10.140.14.89
--> pppd: €[01]a
--> remote IP address 10.64.64.64
--> pppd: €[01]a
--> primary DNS address 221.179.38.7
--> pppd: €[01]a
--> secondary DNS address 120.196.165.7
--> pppd: €[01]a
Caught signal 15: Attempting to exit gracefully...
--> Terminating on signal 15
--> pppd: €[01]a
--> Connect time 0.5 minutes.
--> pppd: €[01]a
--> pppd: €[01]a
--> pppd: €[01]a
最后显示多个pppd则表明拨号成功,此时可以查看路由表信息,使用下述命令
route -n
使用ping
命令测试是否可以与外网链接
ping www.baidu.com
若显示则证明网络已经连通
64 bytes from 61.135.169.125: icmp_seq=1 ttl=54 time=23.3 ms
64 bytes from 61.135.169.125: icmp_seq=2 ttl=54 time=27.0 ms
64 bytes from 61.135.169.125: icmp_seq=3 ttl=54 time=13.5 ms
64 bytes from 61.135.169.125: icmp_seq=4 ttl=54 time=23.1 ms
若与外网测试失败,可以尝试下列方法:
1.断开有线网和WIFI,重启树莓派
2.修改后路由信息
2.1.查看网卡信息
ifconfig
若出现名字为ppp0
的网卡设备,并且已经获得IP地址,证明ME909s模块初始化成功,是WIFI或有线网的影响导致,则修改路由表:
2.2.查看路由表
route -n
信息可能如下:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 eth0
10.64.64.64 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.1.0 0.0.0.0 255.255.255.0 U 202 0 0 eth0
可以看出访问未知目标时,使用的是eth0的网卡,此处我们将其修改为使用ppp0来访问未知目标:
2.3.删除eth0的第一条路由信息:
sudo route del –net 0.0.0.0 eth0
新增一条ppp0的路由信息:
sudo route add –net 0.0.0.0 ppp0
修改后路由信息为:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
10.64.64.64 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.1.0 0.0.0.0 255.255.255.0 U 202 0 0 eth0
此时再次尝试ping外网。
点击ME909s AT指令集下载