因为WR703N的内存只有4M,这么一点小的空间里,我们需要安装USB Tethering相关的软件,还要安装WifiDog,那我们就只能舍弃Luci图形界面了。因此,我们必须制作自制固件,以实现固件体积压缩的目的。
首先,在虚拟机里安装Ubuntu16.04,配置好路由器固件的编译环境。这次我们用预集成的OpenWrt编译环境Image Builder来制作自制固件。
配置编译环境
sudo apt-get update sudo apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc
官网下载比较慢,这里再分享一个百度云的下载链接
链接:https://pan.baidu.com/s/1L1PpQyD1SJBhlT9diWDw7w
提取码:dipn
建议使用迅雷下载然后拷进去,节约时间
cd ~ mkdir opimagegen && cd opimagegen wget https://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/OpenWrt-ImageBuilder-15.05-ar71xx-generic.Linux-x86_64.tar.bz2 tar -xvjf OpenWrt-ImageBuilder-15.05-ar71xx-generic.Linux-x86_64.tar.bz2 cd OpenWrt-ImageBuilder-15.05-ar71xx-generic.Linux-x86_64
(以下这一段如果有海外服务器的话,不必这么麻烦,直接跳过,从下面的红色文字开始看。)
配置
根据需要修改 repositories.conf
## repositories.conf ## 说明:我把官网的packages文件夹整个镜像到自建服务器,所以文件内容改成下面的样子 ## 这个文件你也可以不改,保持默认,但是在编译时下载,国内会很慢,还可能会失败 ## Place your custom repositories here, they must match the architecture and version. # src/gz chaos_calmer http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages # src custom file:///usr/src/openwrt/bin/ar71xx/packages ## Remote package repositories src/gz chaos_calmer_base http://www.your-domain.xyz/openwrt/chaos_calmer/15.05/ar71xx/generic/packages/base src/gz chaos_calmer_luci http://www.your-domain.xyz/openwrt/chaos_calmer/15.05/ar71xx/generic/packages/luci src/gz chaos_calmer_packages http://www.your-domain.xyz/openwrt/chaos_calmer/15.05/ar71xx/generic/packages/packages src/gz chaos_calmer_routing http://www.your-domain.xyz/openwrt/chaos_calmer/15.05/ar71xx/generic/packages/routing src/gz chaos_calmer_telephony http://www.your-domain.xyz/openwrt/chaos_calmer/15.05/ar71xx/generic/packages/telephony src/gz chaos_calmer_management http://www.your-domain.xyz/openwrt/chaos_calmer/15.05/ar71xx/generic/packages/management ## This is the local package repository, do not remove! src imagebuilder file:packages
在这里,为了提高编译速度,我事先将远程的15.05cc版全部的软件包镜像到了自己放在公网的服务器(www.your-doumain.xyz/openwrt/)上
cd /openwrt wget --mirror --no-parent https://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/
上面说了一大堆,其实用一台海外服务器很快就可以搞定了,不要在本地编译固件,实在是太慢了!直接在海外搞一台VPS,用Debian也行。
cd ~ mkdir opimagegen && cd opimagegen wget https://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/OpenWrt-ImageBuilder-15.05-ar71xx-generic.Linux-x86_64.tar.bz2 tar -xvjf OpenWrt-ImageBuilder-15.05-ar71xx-generic.Linux-x86_64.tar.bz2 cd OpenWrt-ImageBuilder-15.05-ar71xx-generic.Linux-x86_64
生成镜像
用这个命令查看支持的profile
make info
703N对应的配置是TLWR703
制作固件,打包usb tethering所需软件
make image PROFILE=TLWR703 PACKAGES="kmod-usb-net kmod-usb-net-rndis kmod-usb-net-cdc-ether usbutils udev"
因为是用的ImageBuilder,所以编译速度很快,几分钟就生成自制固件了,新生成的固件在/bin/ar71xx文件夹下。
解锁,刷入不死U-Boot
我手里这台WR703N是V1.6的版本,所以,为了保险,我们需要刷入解锁固件,然后再刷入不死U-Boot,这样既可以随意刷固件,不担心机器变砖头了。这一步可以参考我之前的教程《从零开始改造路由器实现微信连WIFI的功能(二):更改路由器的固件为OpenWRT》完成。
刷入自制固件
刷入不死U-Boot之后,用网线连接WR703N和电脑(设置电脑IP为固定IP 192.168.1.88),在浏览器地址栏输入192.168.1.1,进入不死U-Boot的刷机界面,刷入新生成的15.05cc自制固件,然后等几分钟,待蓝色指示灯长亮之后,路由器重启完毕。
设置路由器
这个固件没有Luci图形界面,所以,我们需要按照下面的步骤完成路由器的设置:
1、用网线连接路由器和电脑,通过telnet 192.168.1.1连接上路由器,用命令passwd设置管理密码;
2、打开winscp,输入192.168.1.1以及root+管理密码,以SCP方式连接上WR703N,找到/etc/config 下的wireless文件,更改option disabled 1为option disabled 0,开启WR703N的Wi-Fi;
3、在winscp里替换 /etc/config 目录下的network为自己的network文件(这一步可参考我之前的教程《TL-WR703N刷官方OpenWrt固件(14.07)实现3G+wifidog(微信认证)》),将路由器的IP地址改成192.168.10.1;
4、用SecureCRT连接192.168.1.1(输入root及密码),然后执行reboot命令,重启WR703N;
5、重启完毕后,拔掉网线,用SecureCRT通过无线的方式连接192.168.10.1,再次连上WR703N,执行下面的命令:
opkg update opkg install wifidog
6、用winscp连接192.168.10.1,在/etc目录下新增 initwifidog 和 iptableswl 两个文件(这都是预先准备好的,请参考之前的教程《TL-WR703N刷官方OpenWrt固件(14.07)实现3G+wifidog(微信认证)》),替换 wifidog.conf 和 rc.local 这两个文件;
7、用SecureCRT重启路由,完成设置。
注意
过程中如果路由设置出现故障,可以进入failsafe模式(路由器断电,用牙签按住reset,路由器供电,连续快速按下reset按钮,指示灯狂闪则进入failsafe模式),用telnet连接192.168.1.1 执行
mtd -r erase rootfs_data
命令即可重设路由。参考《重設 OpenWrt 設定與進入安全模式(Failsafe Mode)》
其他
至此,路由器设置部分告一段落,下面要进入认证服务器和微信公众号后台的设置部分了,同样,可以参考我之前的教程完成相关设置。
采用USB Tethering的好处有以下几点:
1、不用再单独购买3G/4G无线网卡,用一般的手机就可以共享网络给WR703N;
2、3G/4G兼容,全网通,路由器上网速度得到很大的提升;
3、你甚至可以将一个已知密码的ssid转换成另一个认证模式的ssid,完全不用花钱即可实现网络共享的目的。