最近使用到了树莓派以及EC20模块,想使用EC20的4G上网功能以及GPS功能。 并且能开机自启动
前言
最初使用了网上的方法,使用了wvdial软件进行拨号
但这个方法需要在命令行里输入命令拨号并维持程序运行
sudo wvdial lan1
为了实现开机自启动,创建了一个启动服务(systemctl)来运行这条命令。但拨号成功后还是无法上网,因为还需要使用命令配置路由
sudo ip route add default via 10.64.64.64
故在启动服务里加上了这条配置路由的命令,但发现还是无法上网。发现在sudo wvdial lan1
拨号成功前,不会在路由表中创建10.64.64.64这个路由,且将两个命令写在同一个启动服务中,即时sudo wvdial lan1
命令拨号成功,就会维持在此,不会结束进入下一条命令,故更改路由的命令无法生效。
故又创建了第二个启动服务来执行配置路由的命令,并且执行之前等待2分钟,用以等待wvdial拨号完成
# route.sh
sleep 2m
sudo ip route add default via 10.64.64.64
用这个方法成功实现了树莓派开机自启动,4G拨号并配置路由,使用4G访问互联网
但,当我尝试使用EC20的GPS功能时,发现发送AT命令的串口发送命令后无法生效。
所以另寻他法。
正文
直接使用EC20提供的USB网卡模式,实现树莓派通过USB网卡访问网络。
连接树莓派与EC20
这里使用到了:
- 树莓派4B
- 移远EC20 mini PCIE模块
- usb转mini PCIE模块
- ipex1代转sma内孔转接线
- sma内针4G天线
检查连接
在命令行里输入,查看与树莓派连接的usb设备
lsusb
看到Quectel Wireless…EC25 LTE
dmesg | grep ttyUSB
说明EC20连接好了
使用串口配置EC20
安装cutecom
Cutecom,Linux系统可视化串口应用软件
sudo apt-get install cutecom
启动cutecom
sudo cutecom
选择串口:/dev/ttyUSB2 ,点击Open
发送命令前需要把串口的结束符换成CR/LF
使用cutecom配置EC20
设置EC20的USB网卡模式
AT+QCFG="usbnet",1
收到OK,表示设置成功
配置APN
AT+CGDCONT=1,"IP","Network APN"
"Network APN"t替换为自己sim卡使用运营商的APN
APN可以百度获得
比如我的电信卡配置为:
AT+CGDCONT=1,"IP","ctnet"
重启模块
AT+CFUN=1,1
愉快使用
查看是否成功
看到模块的蓝色指示灯常亮,偶尔闪一下,说明模块就以及给我们拨好号,连接上互联网了。
命令行输入
ip route
发现多了一个usb0的路由,并且前面有一个default
,这个就很关键,说明就不需要我们再手动配置路由了,如果没有连接网线,没有连接wifi,那么树莓派就会通过usb0设备,也就是我们的EC20模块访问互联网。
测试能否通过EC20上网
上面的图片看到,ip route
中有两个default
设备,一个是我网线的路由,一个是EC20的路由,这时候访问网络是通过网线访问的,测试4G就需要删掉网线的默认路由。命令行输入
sudo ip route delete default via 192.168.1.1
"192.168.1.1"是上面ip route里面default via 192.168.1.1的ip地址
再次输入ip route
检查
可以发现192.168.1.1的default被删除了,只剩下EC20的usb0了。
ping百度测试一下
ping baidu.com
至此,模块已经配置好usb网卡,并且能成功上网了。
结语
本人是新人小白,文中有些术语只是我自己的理解胡编乱造,还请大佬们轻喷。
发文只是将自己在使用过程中塘的坑发出来。