要远程控制设在郊外的设备,设备附近没有有线网络也没有WIFI无线信号;坐高铁出差途中突然有公事须处理,需要用到网络又不想共享手机移动网络;家里宽带突然断网,一家子人等着上网看剧、玩游戏、查信息,碰到这些问题怎么办?最简单的方法就是,将4G移动网络接入OpenWrt路由器,利用移动网络信号来帮助完成这些工作。
为什么选择采用4G移动网络?是因为其速度可以满足大部分应用的需要,另外目前的4G模块的价格还是比较便宜的,相比3G、5G网络具有更高的性价比。市场上4G模块有多种输出模式,因为我们要选择接入路由器,所以需要购买带usb接口的4G模块,目前比较常见的有宽翼通信BroadMobi的BM806U、移远通信QUECTEL的EC20、龙尚的U8300C、芯讯通SIMCom的SIM7600CE等等。
这次我们的讲解就以BroadMobi的BM806U为例。OpenWrt路由器选用TL-WR720N,选择这款路由器主要是考虑其体积小,方便布置及携带;另外带Micro-usb供电,有移动充电宝就可以让路由器运行起来。
一、安装4G模块的驱动程序
1、安装必要的程序包
opkg update opkg install usb-modeswitch kmod-mii kmod-usb-net kmod-usb-wdm kmod-usb-net-qmi-wwan uqmi
2、重启路由器
reboot
3、测试
ls -l /dev/cdc-wdm0 # 判断返回的信息是否与下面内容类似: crw-r--r-- 1 root root 180, 176 Oct 1 12:03 /dev/cdc-wdm0
如果返回的信息有问题,可以运行以下两个命令看一下问题具体出在什么地方:
dmesg 或 cat /sys/kernel/debug/usb/devices
4、插上SIM卡查看
将中国移动SIM卡(注:BM806U说支持全网通,但是我用电信4G卡测试没有通过,联通的没试,移动是可以的,所以不知道是不是还需要额外的配置),插入usb dongle的4G模组,最好把天线也接上。一般4G模块的指示灯会亮,不亮的话可以将路由器再重启一下试试。然后运行如下命令:
uqmi -d /dev/cdc-wdm0 --get-data-status # 返回信息 "disconnected" uqmi -d /dev/cdc-wdm0 --get-signal-info # 返回类似信息就表明驱动安装成功 { "type": "lte", "rssi": -71, "rsrq": -9, "rsrp": -94, "snr": 70 }
二、设置拨号程序
1、采用命令方式,这种方法可靠性好,建议使用
uqmi -d /dev/cdc-wdm0 --start-network cmnet --autoconnect # 返回程序运行的进程号,例如: 90268320
同理,也可以通过命令确认一下连接状态:
uqmi -d /dev/cdc-wdm0 --get-data-status # 返回信息 "connected"
2、第2种方法,采用Luci界面设置
这种方法需要知道移动网络提供商的APN、鉴权模式、拨号用户名及密码等,比较复杂,而且不太稳定,不推荐使用。
先在Luci界面增加4G拨号协议支持:
opkg update opkg install luci-proto-qmi
再在“Network – Interfaces”界面新增一个wwan0的拨号协议接口:
配置相应参数:
最后添加防火墙到wan区域:
保存并应用后,4G拨号就成功了。
三、添加4G移动网络
新增4G移动网络接口wwan:
vim /etc/config/network # 在打开的文本最后加上如下语句 config interface 'wwan' option ifname 'wwan0' option proto 'dhcp'
再添加防火墙到wan区域(在Luci设置界面完成):
配置完成,点“Save & Apply”后,就可以看到连接状态了:
>> 因为有wan和wwan两个网络输入接口,所以为避免冲突,最好配置mwan3,具体可参考OpenWrt的负载均衡及多线多拨控制应用mwan3一文。
至此,将4G移动网络接入OpenWrt路由器的具体实施方法就讲解完成了,你学会了吗?更详细的说明,你也可以参考如下英文网址:
https://openwrt.org/docs/guide-user/network/wan/wwan/ltedongle
如果你手头有的4G模块不是BM806U,而是移远通信的EC20,那对不起,上面的拨号程序没有用,我们需要专门为其编译拨号程序,这个比较复杂,留给以后在固件自编译部分再讲解。