如今市面上一两百元的双频(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 python wget

$ sudo apt-get install libncurses5-dev

$ sudo apt-get install zlib1g-dev

$ sudo apt-get install build-essential unzip xz-utils

# 因为OpenWrt不能在root用户下编译,所以先创建一个用户。

# 如果已经在非root用户下,也可忽略此步骤。

$ useradd –g root –m openwrt

$ passwd openwrt

# 输入密码

$ su – openwrt

# 创建一个用于下载软件包的目录(便于多个编译目录共用),如果从网上下载了我打包的软件包,可以解压到此目录,减少因下载软件包而浪费时间。

$ mkdir /opt/develop/openwrt/download -pv

$ cd /opt/develop/openwrt

# 克隆官方最新的发行版本

$ git clone git://git.openwrt.org/15.05/openwrt.git 15.05

$ cd 15.05

# 创建下载目录的软链接,几个不同的编译共享使用同一个下载目录。

$ ln -s /opt/develop/openwrt/download dl

$ make menuconfig

# 选择以下三项即可

# Target System -> Ralink RT288x/RT3xxx

# Subtarget -> MT7620 based boards

# Target Profile -> Default Profile

# 如下图所示,最后退出,并保存。

# 开始编译,使用V=99可以显示更多编译日志,便于排除错误,

# 使用–j2可以使用两个CPU核编译,加快编译速度。

$ make V=99 –j2

# 这期间你可以出去玩几把游戏了,具体时间取决于电脑速度和网速。

# 如果中间有下载出错(如果实在下载不下来,可以看一下他的url,然后手动下载后放在dl目录下即可),重新make即可。

# 如果是编译错误,仔细看是少了什么包,使用apt-get安装一下即可。

# 如果一切顺利,就会在bin/ramips目录下看到编译好的固件

# 其中的openwrt-ramips-mt7620-Lenovo-y1-squashfs-sysupgrade.bin就是我们编译好的固件,通过共享文件夹复制到Windows中的tftp服务器根目录下即可。

三. 烧写固件

Newifi没有使用螺丝固定外壳,所以直接使用一个平口螺丝刀撬开既可。

如下如所示线序焊接TTL线:

最终效果图:

接线时,Newifi的RX接TTL线的TX,TX接RX,USB转TTL不要连接VCC。如果使用的是RS232转TTL则必须连接VCC。

打开Tftp服务器,保证之前编译的固件放在tftp所设定的根目录处。

在PC上使用Xshell或者minicom之类的串口软件使用115200 8n1,无硬件控制流模式打开对应的串口,然后连接Newifi电源,就会看到Uboot的打印信息。

在出现菜单时快速按键盘上的“2”键进入tftp烧写模式,然后按“y”键,最后分别输入Newifi的IP,本机的IP(Tftp服务器IP),以及要下载的固件名称“openwrt-ramips-mt7620-Lenovo-y1-squashfs-sysupgrade.bin”。

如果一切正常,烧写完毕后会重启进入Linux。当屏幕不再滚动时按下回车,当看到如下画面时,就可以宣告成功了。

四. 基本配置

(“Newifi”开头的操作为Newifi的串口,“Host”开头的操作为PC的命令终端)

# 配置防火墙,由于是Newifi的WAN口接在路由器上,PC是通过外网访问

# Newifi的,所以要全部打开WAN口的防火墙,方便SSH登陆等操作。

Newifi $ vi /etc/config/firewall

# 把红色框内全部改为ACCEPT,然后重启防火墙。

Newifi $ /etc/init.d/firewall restart

# 设置Newifi的WAN口IP,以及打开无线网络。

Newifi $ vi /etc/config/network

# 改为

Newifi $ vi /etc/config/wireless

# 改为(注意:注释掉红框最上面一行),使用WAP的PSK2加密方式,密码自己改。

# 最后保存并重启网络

Newifi $ /etc/init.d/network restart

# 测试一下网络

Newifi $ ping 192.168.99.1

# 如果这个不通,检查一下WAN口IP掩码配置是否正确。

Newifi $ ping 114.114.114.114

# 如果这个不通,检查一下网关是否正确,以及路由是否能连接到Internet。

Newifi $ ping www.baidu.com

# 如果这个不通,检查一下WAN口的DNS是否配置正确。

# 如果都没问题,可以继续了下面的。

# 设置root用户密码,以便可以使用ssh登陆

Newifi $ passwd

# 如果是在Windows下,可以使用Putty和Xshell之类的软件登陆。

Host $ ssh root@192.168.99.9

使用手机连接Wifi试试是否可以正常上网。

如果都没问题,这个固件就初步完成了(当然,功能还很简陋)。

五. 遗留问题

这个固件虽然可以“使用”,但还有许多问题:

1. 只能通过命令行进行配置修改,最好能有一个Web管理界面;

2. 不支持5G信号,因为OpenWrt官方的Wifi驱动使用的是compact-wireless项目提供的,里面没有MT7612EN的驱动;

3. 没有QoS、PPPoE拨号、离线下载等功能。

还有很多很多,未完待续。。。。。。

六. 相关资源

  1. OpenWrt官方文档 http://wiki.openwrt.org/doc/start

自己动手制作路由器固件之快速开始相关推荐

  1. 使用FirmAE 对zyxel路由器固件仿真实践 | 信息安全

    一.FirmAE简介 FirmAE 是一个执行仿真和漏洞分析的全自动框架.FirmAE 使用五种仲裁技术显著提高仿真成功率(从Firmadyne的 16.28% 提高到 79.36%). FirmAE ...

  2. 动手制作Dos、WinPE、Slax Linux|winpe+dos+Mini Linux U盘启动盘

    动手制作Dos.WinPE.Slax Linux|winpe+dos+Mini Linux U盘启动盘 一.概述 U盘的价格越来越便宜,容量也越来越大,携带也方便,在工作中可以把一些自己常用的工具整和 ...

  3. 如何自制圆环_如何自己动手制作环形变压器?

    环形变压器对大多数人来说并不是很陌生,但它手工绕制方法很多人都不知道,很少人会亲自绕制环形变压器的,下面小编就介绍下如何自己动手制作环形变压器. 家用功放机大都采用环形变压器供电.环形变压器有漏磁小. ...

  4. 虚幻4学习笔记(8)动手制作一个小游戏

    动手制作一个小游戏 新节点介绍 前期准备 搭建场景 门蓝图 灯蓝图 创建关卡蓝图 B站UP谌嘉诚课程:https://www.bilibili.com/video/BV164411Y732 新节点介绍 ...

  5. 第三方路由器固件的简单介绍

    近期比较关注路由器的功能,查阅了不少资料,结合自己以前的经验,总结一下自己对第三方路由器固件的看法. 现在大多数第三方路由器固件,如Tomato.DD-WRT等等都是基于OpenWRT. 这些第三方路 ...

  6. 连载:涂鸦智能动手制作一款智能宠物喂食器(一)

    涂鸦智能动手制作一款智能宠物喂食器(一) 简介 制作过程中测试了很多次,也算是边学选练.遇到了一些问题,本着理顺的思路,做一些记录.一些过程中的图片没注意截图,幸好另一个大佬用小熊派STM32把这个项 ...

  7. 如何使用TFTP客户端工具修复路由器固件

    如何使用TFTP客户端工具修复路由器固件 编号:12083       来自:NetGear       更新日期:2013-10-14       访问数量:24650 NETGEAR无线路由器中, ...

  8. 市面上有没有靠谱的PM2.5检测仪?如何自己动手制作PM2.5检测仪

     市面上能买到的11中常见的pm2.5检测仪 网上大佬实测并不是很准,我这里没测过(全买下来有点贵,贫穷限制了我的想象力) 这些检测仪多数是复合式.多功能的空气质量检测仪.具体就不一一介绍了.这篇文章 ...

  9. 自己动手制作笔记本SP2系统安装光盘

    自己动手制作笔记本SP2系统安装光盘                                                               作者:何晓龙        微软发布官 ...

最新文章

  1. python教程书籍-推荐python机器学习实践的书籍?
  2. jpa query oracle 参数int为空_撸一个预言机(Oracle)服务,真香!—中篇
  3. java 中的堆和栈
  4. js关闭setInterval及终止ajax请求
  5. mapgis中6.7属性结构_不知道如何组织项目结构,这个项目也许可以给你启发
  6. webworker应用场景_典型应用场景 · OpenResty最佳实践-最新版 · 看云
  7. 【旅行】1月17日镇江自驾游
  8. C/C++ debug(四)
  9. 得到 jason中 string 的值_简单高性能的Json解析器: Jason
  10. 来自Transformer + Bert + GPT 的灵魂拷问
  11. c语言ds12c887,ds12c887引脚图 DS12C887中文资料.doc
  12. Rootkit Hacking Technology Defence Strategy Research
  13. 2017阿里巴巴校招在线笔试——货架格子编号
  14. FSMC驱动TFT显示屏(和驱动触摸屏)
  15. godot引擎学习10
  16. Video IP:Video_In_to_AXI4-stream
  17. 蜂蜜橙文案:水果蜂蜜橙的文案图片,水果蜂蜜橙朋友圈卖货文案
  18. linux lvm 8e下继续划分分区,linux下LVM学习_逻辑卷管理
  19. python microbit typeerror_Microbit python无效语法
  20. mysql 中文模糊查询_解决mysql中文模糊查询问题的方法

热门文章

  1. 2020大学生网络安全知识总决赛模拟题错题集(9)
  2. 《通用版CISCO交换机配置命令及释义》——【全面、通用,含部分功能的注释】
  3. 【HDU】 4833 Best Financing DP
  4. 沃伦·巴菲特 | 成功的 10/10/10 法则
  5. linux系统的监控工具名称,Linux下几款系统监控工具介绍
  6. python调用各个分词包
  7. 密码学实验题_03.3_AES实验_利用Sage构建AES的S盒和逆S盒(基于阅读Sage数学库的Python代码)
  8. 服务器系统通用串行总线控制器,win7系统usb设备不能用通用串行总线控制器无法启动的解决方法...
  9. C++11 for(auto x : s)statment 和 for(auto amp; x:s)statment
  10. Unity开发元宇宙多人交互XR应用