树莓派——4G网卡华为ME909s-821 4G上网及开机自启动(1)

树莓派——4G网卡华为ME909s-821 4G上网及开机自启动(1)


硬件设备

  使用的树莓派为树莓派3B,操作系统为Ubuntu Mate 16.04

  使用的4G网卡模块为华为ME909s-821 4G全网通模块,购买模块时一定要购买带底座的模块,方便开发。

  使用的SIM卡为普通的移动手机卡,需要带大卡套才方便插入,如下图所示。不一定必须是移动卡,理论上移动、联通、电信都可以,只不过我自己测试使用的是移动卡。
SIM卡


测试ME909s模块

  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

配置wvdial.conf

打开配置文件

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指令集下载

在Linux下配置4G网卡PP上网,可以通过以下步骤实现: 1. 确认4G网卡已经插入并被系统识别:可以使用lsusb命令查看4G网卡是否被识别,例如: ``` $ lsusb Bus 001 Device 005: ID 12d1:1c05 Huawei Technologies Co., Ltd. E173s 3G broadband stick (modem on) ``` 上述输出表示系统已经识别了一个华为4G网卡。 2. 安装ppp拨号软件:在Linux中,ppp是一种拨号协议,用于通过串口、网卡等方式连接到网络。安装ppp软件,例如在Ubuntu中可以使用以下命令进行安装: ``` sudo apt-get install ppp ``` 3. 配置拨号参数:需要编辑ppp的配置文件/etc/ppp/options和/etc/ppp/peers/provider,将以下内容添加到这两个文件中: /etc/ppp/options: ``` # Serial port configuration /dev/ttyUSB0 # 4G网卡所在的串口 115200 # 波特率 noauth # 关闭认证 connect "/usr/sbin/chat -v -f /etc/ppp/peers/provider" # 拨号时执行的脚本 ``` /etc/ppp/peers/provider: ``` # Connection parameters connect "/usr/sbin/chat -v -f /etc/ppp/peers/provider.chat" disconnect "/usr/sbin/chat -v -f /etc/ppp/peers/provider.chat" defaultroute noipdefault user <username> password <password> # Dialing parameters connect-delay 5000 # 5秒后开始拨号 idle 7200 # 空闲2小时后断开连接 lcp-echo-interval 60 # 每分钟发送LCP echo请求 lcp-echo-failure 10 # 连续10次LCP echo失败后断开连接 persist # 持续尝试拨号 ``` 注意:这里的`<username>`和`<password>`需要替换为4G运营商提供的用户名和密码。 4. 运行ppp拨号:配置完成后,可以使用以下命令启动ppp拨号: ``` sudo pon provider ``` 运行成功后,可以通过ifconfig命令查看ppp0网卡是否已经被创建,例如: ``` $ ifconfig ppp0 Link encap:Point-to-Point Protocol inet addr:10.178.66.123 P-t-P:10.64.64.64 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:340 errors:0 dropped:0 overruns:0 frame:0 TX packets:346 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:23006 (23.0 KB) TX bytes:25275 (25.2 KB) ``` 上述输出表示ppp0网卡已经被创建,并且已经获取到了IP地址。 5. 断开ppp连接:可以使用以下命令断开ppp连接: ``` sudo poff provider ``` 运行成功后,ppp0网卡会被释放。 需要注意的是,不同的4G运营商可能需要不同的拨号参数,需要根据实际情况进行配置。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值