树莓派内核现在已集成了EC20的驱动,不需要再去进行驱动移植,虽然没有MiniPcie的接口,但用usb转minipcie也是一样。
1. 准备工作
- ec20模块
- sim卡一张,我用的是移动的
- 插入4g模块,检查驱动
//查看usb驱动
lsusb
说明驱动已经有了
2.安装软件
- 拨号软件我们选择linux下智能拨号工具wvdial
// 安装拨号工具
sudo apt install wvdial
- 安装完拨号工具,开始修改配置,配置文件在 /etc/wvdial.conf
// 打开配置文件
sudo vim /etc/wvdial.conf
打开后默认如下图
修改完如下图,Defaults可改任意名字
修改完成后:wq 保存
3.上网测试
// 先查看网卡
ifconfig
// 开始拨号
sudo wvdial Defaults //如果上面你改了名字就用自己改的
等待片刻,时间可能较长,4G天线一定要接
出现如上图,说明拨号成功
// 此时无法进行其他操作
ctrl + z 可将拨号置于后台
我们观察到使用ctrl + z后出现[1]+ Stopped,是因为使用拨号后,停留在拨号进程,无法使用其他指令才这么做的
如果要回到刚才拨号的进程,可以使用指令
fg 1 //回到刚才的进程,后面的数字1就是[1]+ Stopped里面的数字,[X]里面是什么,就用fg X 回去
ctrl + z 是将进程置于后台
ctrl + c 就可结束当前的进程
我们可以使用以下指令后台拨号
sudo wvdial default&
就是在指令后面加一个&
// 再次查看网卡
ifconfig
出现ppp0,就已经拨号成功了,看见已经自动分配了ip。现在我们测试一下网络。
使用ppp0去ping一下百度
ping -I ppp0 www.baidu.com
出现如下图,说明可以连接外网了,此时可以观察ec20模块上的网络指示灯闪烁频率加快,也就是有数据交换
ctrl + c 可结束ping指令
此时只是拨号成功,并非使用ec20网络,我们可以测试一下,
使用更新指令
sudo apt update
发现更新正常但是,ec20上的网络指示灯并没有闪烁频率加快,说明没有数据交换
问题就是:此时树莓派的默认路由使用的是其他网卡,并非ec20
我们先查看一下路由列表,使用下面指令
route -n
查看列表发现,默认路由是eth0,因为我接了网线,又连了WiFi,路由有这么多。这里eth0是网口。wlan0是WiFi,
ppp0才是ec20的路由,只需要把ppp0变成第一个就可以使用ec20上网。
// 我们可通过以下指令设置默认路由
sudo route add default dev ppp0 //意思是添加ppp0网卡设备为默认路由
//或者通过ip地址,ip地址是通过上面ifconfig指令查看所得,或者换成10.64.64.64,上面路由表里的Kernel IP
sudo route add default gw 10.72.158.47
sudo route add default gw 10.64.64.64
//这里顺便给出删除默认路由指令,就是把上面的add换成del
sudo route del default dev ppp0
此时再查看路由表
route -n
ppp0网卡已经排在第一位
我们再用之前的方式,更新指令
sudo apt update
我们发现再更新时,ec20网络指示灯闪烁频率变快,可以多试几次验证一下
此时已经实现ec20 ppp0拨号正常上网
注意:拨号和设置默认路由,在树莓派重启后都会失效,所以每次开机都需要上面的步骤,因此我们可以写一个脚本,开机
拨号和设置默认路由,这个我后面再说写脚本的事,到时再解决这个问题。
最后,其实ppp0拨号,是4g时代以前所使用的拨号方式,也限制ec20的入网速度,对于现在4g/5g时代,ppp0拨号已经无法发挥模块的性能,官方也不再建议使用ppp0拨号,目前最常用的GobiNet,而且树莓派内核已经支持了qmi_wwan的驱动,我们下一节,讲解使用qmi_wwan拨号