大家都知道传统的路由器无非基于以下几种方式上网:
首先运营商会将网线拉入居室,该网络可以是传统的电话线/双绞线/光纤。
入户的信号线,需要通过调制解调器(猫)转换为数字信号,通过网线输出。
早期的电话上网或者无路由上网的情况,将猫出来的网线直接插入电脑,然后,使用操作系统中的,ADSL 拨号,拨号成功后,windows 右下角就会显示可以链接上网了。
而现在基于无线上网的范围不断扩大,对于不方便布线的地方或者端口不够的地方4G无线路由器又是一个很好的选择,利用现在流量无限的情况对多用户同时连接起到一个很好的应急补充。从而可大量应用于农村,城镇,医院,单位,工厂,小区等无线网络接入,能节省铺设有线网络的费用进行。
下面我基于高通QCA4531搭载Openwrt 15.05 QSDK4.1上面来实现4G模块上网功能。4G模块基于我们公司代理的移远4G模块EC20CEFAG-512-SGNS。
1.USB Serial驱动
首先修改内核,内核文件在
Mp3/qsdk_4.0_cs/qsdk/build_dir//target-mips_34kc_uClibc-1.0.14/linux-ar71xx_generic/linux-4.4.60目录下,需要事先编译过系统。当模k块连接到USB串行驱动时,驱动程序将在目录/dev中创建设备文件,
ttyUSB0/ttyUSB1/ttyUSB2…
接下来就是讲解如何移植USB Serial。
1.1增加PID&VID
要想识别模块,客户应该在下面添加模块维和PID信息.
[KERNEL]/drivers/usb/serial/option.c 中添加:
{ USB_DEVICE(0x2C7C, 0x0125) }, //EC20 R2.1 &EC25
1.2添加零包处理
根据USB协议的要求,客户需要添加处理零数据包的机制。
For Linux Kernel Version Linux 4.4.60
File: [KERNEL]/drivers/usb/serial/usb_wwan.c
1.3添加QMI WWAN驱动
添加Add VID and PID
QMI WWAN driver source file is
[KERNEL]/drivers/net/usb/qmi_wwan.c.
File: [KERNEL]/drivers/net/usb/qmi_wwan.c
具体修改详细代码我已经打好了对应的patch。
openwrt_linux4.4.60_Quectel_EC20_usb.patch
2.修改配置
第一步:进入配置环境
$make menuconfig
第二步:配置
3.编译测试
以上操作完成后就是编译源码了。
$ make V=S
将固件烧写进入板子中,插入4G模块,启动板子会看到以下信息:
同时也可以在Dev目录下面查看:
有以上信息表示驱动配置成功,接下来就拨号了。
4.拨号上网
拨号程序我使用使用移远提供的quectel-CM,这是一个4G连接管理程序,通过交叉编译编译成bin文件,修改makefie文件即可。同时环境变量指定openwrt交叉编译器。
生成bin文件后,push到板子里面。插上4G联通卡,执行命令: ./quectel-CM &
这就是拨号成功了,接下来就是ping一下看是否可以联网。
$ping 47.106.72.113
出现如下界面就表示可以上网了。
文章来源:润欣科技Fortune微信公众号