1. 准备工作
- 上一节讲了ec20的ppp拨号方式,那么在开始本节之前,需要关闭ec20的其他拨号方式。
- 查看qmi_wwan的驱动
// 使用下面指令
lsmod
出现如下图所示,说明内核已加载驱动
2. 移植拨号工具
- 拨号工具我已经上传资源qmi_wwan拨号工具
- 下载后在windows下解压出文件夹 quectel-CM,可以看见里面很多文件,需要放在Linux系统下编译
- 在树莓派下 /home/pi/ 路径(一般就是开机默认路径)下创建文件夹名为 ec20,名字可以随意
// 创建文件夹
mkdir ec20
创建完成如下图 将拨号工具文件夹传到树莓派下面,我们通过终端工具的 SFTP方式,如下图,双击打开 ec20 文件 将工具文件拖拽,传输到树莓派
// 此时再通过指令查看,树莓下的文件
cd ec20/
ls
此时可以看见 quectel-CM文件夹,进入quectel-CM文件夹查看
cd quectel-CM/
ls
传输完成后如下图
// 开始编译拨号工具
sudo make
编译完成后如下图,通过指令 ls查看 可以发现多了几个文件,绿色的,其中 quectel-CM 就是我们要用的拨号工具,到此拨号工具已经移植完成。
3. 拨号上网
// 开始拨号
sudo ./quectel-CM
如果拨号顺利会出现如下图所示,表示拨号成功,第一次可能拨号失败,等待第二次,应该会成功。
// 和上一节一样,此时在拨号进程无法进行其他操作,我们选择后台拨号
ctrl + c结束当前拨号经常
//将拨号置于后台
sudo ./quectel-CM& //后面多加一个&
注意:拨号时要在当前quectel-CM文件夹下,如果在其他文件加下加路径即可。
sudo ./home/pi/ec20/quectel-CM/quectel-CM&
此时拨号已经完成,我们查看以下网卡信息
ifconfig
发现wwan0网卡已经分配了地址,那我们再去查看一下路由列表
route -n
我们看见拨号工具已经自动添加了默认路由,那么此时已经可以使用ec20上网了,我们通过下面指令可以测试
sudo apt update //更新指令
ping baidu.com //ping指令
发现操作上面两条指令,ec20网络指示灯都闪烁频率加快,说明有数据交换了
注意:不管ppp0拨号还是qmi_wwan0拨号。设备重启后、4g模块重启、sim卡热插拔、sim卡断网续费,都需要重新拨号操作,重新拨号前,需要关闭之前拨号进程
// 针对拨号工具,杀进程的一些操作
ps -A //可以查看所有进程
//ppp0或qmi_wwwan杀进程
sudo kill -9 ppp0进程id/qmi_wwan进程id //发现通过这样操作,是无法杀掉拨号进程
原因是其存在父进程,需要先杀掉其父进程,在杀掉子进程,我们通过下面指令查看
ps -a //小写a
发现如下图所示的情况,其实sudo就是其父进程,我们只需要通过 kill -9 sudo前面的进程id就能关闭该进程
sudo kill -9 61612 //杀父进程
sudo kill -9 61613 //杀子进程
还有一种比较激进的方式
sudo pkill sudo //一次性就解决所有,就是杀掉所有sudo的进程,可能会波及无辜
至此qmi_wwan的拨号步骤已经讲解完毕,和上节一样,重启设备就会重置,对于生产环境是不合适的,因此我们需要编写脚本进行,自动检测,拨号等来解决这些问题,后面我会讲解两种拨号方式的自动连接脚本。
4.拨号中可能存在的问题(如果没出现问题就不需要看了)
1.之前拨号工具是在网上找的,不知道是那个版本,出现了很多问题,后面找移远的官方要了一份最新的拨号工具才解决。
2.如果你是用上面我发的资源,应该不会遇到什么问题,如果你用树莓派其他的linux系统或者其他拨号版本版本可能会出现下面的问题
- 提示缺少 udhcpc,这个是集成在busybox下的一款工具
// 下载安装即可
sudo apt install udhcpc
- 提示没有找到 /usr/share/udhcpc/default.script 文件
这是拨号用的脚本文件,其实有两个地方有这个文件
1.如果你系统中安装了udhcpc,那么在目录 /etc/udhcpc/下面可以看到这个文件。
2.我们移植的quectel-CM文件夹下面已经存在这个文件,在目录/home/pi/ec20/quectel-CM/下。
同样的,解决方式也有两种 1.修改拨号工具下的udhcpc.c文件
// 进入拨号工具的文件下,打开udhcpc.c文件
sudo vim udhcpc.c
找到下面的内容,如果你的拨号工具版本和我不一样,那么会有一点差异,我这里是两个路径都包含了,若你的路径只有一条是 “/usr/share/udhcpc/default.script”,那么修改为 “/etc/udhcpc/default.script” 即可
修改完工具后,先清理,再编译,再拨号
//在拨号工具文件夹下执行
sudo clean //先清理之前的编译
sudo make //再编译
sudo ./quectel-CM& //拨号
通过上面步骤应该可以成功拨号了,还有问题可以评论区见。
- 移植文件default.script
根据上面的 udhcpc.c里的文件路径,我们去查看一下
在 “/usr/share/udhcpc/default.script” 发现 “/usr/share/” 下根本没有 udhcpc文件夹,
也不存在default.script 脚本文件
// 既然没有我们就创建
1.先进入/usr/share/
cd /usr/share/
2.创建udhcpc文件夹
sudo mkdir udhcpc
3.修改udhcpc权限,这个必须的不然拨号会提示没有权限
sudo chmod 777 udhcpc
4.将拨号工具下的 default.script 拷贝到改文件夹下
sudo cp /home/pi/ec20/quectel-CM/default.script /usr/share/udhcpc/
//在拨号工具文件夹下执行
sudo clean //先清理之前的编译
sudo make //再编译
sudo ./quectel-CM& //拨号
按照上面的应该就可以拨号成功了,还有问题可以评论区见。
|