如今市面上一两百元的双频(2.4G和5G,802.11ac)智能路由,几乎全部都是联发科的MT7620(2.4G+交换机)加上MT7612EN(PCIE接口,5G)的解决方案,软件也几乎千篇一律是OpenWrt(可以看做是一个专门针对路由器做的Linux发行版)定制而成,所以这就大大降低了我们玩机的门槛。国内又有OpenWrt的变种Pandroabox,但可惜的是,很多关键的定制内容并未公开,只提供一个二进制文件(其部分主要贡献者也就职于相关商业公司),所以这里使用OpenWrt官方的源码构建。既然是快速开始,就废话少说,动手为先。这里就以Newifi为例制作固件,其他的做法都是差不多的。
一. 相关准备
1. 电脑:安装有Ubuntu(建议使用14.04 LTS的x64版本;当然,使用Fedora之类的发行版也是可以的,前提是你能解决所有可能遇到的编译问题)发行版的PC,或者安装Windows(或者OSX)的PC(或者Mac)加上安装Ubuntu的虚拟机(VMware、VirtualBox或者Qemu)。并在其中安装有tftp服务(用于路由下载固件),以及串口和SSH工具(如超级终端、minicom、Xshell、SecureCRT、Putty等)。至少准备30G的空余硬盘空间,8G的内存,可以连接国外的互联网。
2. 网络:最好有一个路由器组建一个局域网,将Newifi和PC处于一个子网内,这样的话,烧写程序时也可以访问外部网络。我这里路由器ip为192.168.99.1,电脑的IP为192.168.99.10,Newifi的IP为192.168.99.9。
3. 工具:电烙铁等焊接拆机工具,杜邦线若干,USB转TTL电平串口(PL2303或者FT232均可)
推荐的配置示意图(后面的操作均以该图为例):
二. 编译固件
在安装有Ubuntu的虚拟机中打开一个命令行终端($开头为命令,#开头为注释):
# 安装必要的软件包
$ sudo apt-get install git-core libssl-dev
$ sudo apt-get install subversion g++
$ sudo apt-get install ccache gettext
$ sudo apt-get install make gawk pyt