WR886N_V5刷OpenWrt固件

WR886N路由器是由TP-LINK公司出品的,在国内存量很大,有多个版本号,这次要用于刷机的是V5,即TL-WR886N-V5,外壳有水蓝和宝蓝两种颜色。

这个版本的硬件相比早期的版本有很大的缩水,价格也会更便宜,通常各大网络公司在客户申请安装宽带时都会送这款路由器,但因为配置低、网络速度跟不上,近几年已遭淘汰,你在家里可能不小心就能翻到这款路由器。这次我们就准备把这款在你家里“吃灰”的路由器,经过硬改后再刷上OpenWrt固件,让它重返生机。

闲话少叙,拆机先(注:如果你的路由器是从二手处购买的,或者你无法确定硬改前路由器的好坏,建议你先测试路由器可正常使用后再进行拆机)。为方便后续硬改,将三根天线连接也先断开了,同时将准备更换的闪存、内存电路周边做好相应保护,见图。

拆机后我们可以发现这款路由器的闪存Flash只有2M,内存RAM也只有16M,已不满足OpenWrt建议的8M/64M的最小配置要求,本次硬改我们要将其更换成16M/64M的配置。像这种sop封装结构的芯片,我通常采用拖焊的方式进行拆焊,如果你还不清楚拖焊是怎么回事,则可以上网搜索相应的教学视频进行提前学习。关于两种芯片的拆焊顺序,通常有一定的原则。由于内存芯片的引脚多,拆焊时失败概率较大,同时可能会导致整块板报废,为了避免做无用功,因此通常会先进行内存芯片的拆焊(因为如果先换闪存芯片,再换内存芯片,若在内存芯片更换时不小心导致主板损坏,那前面闪存芯片的更换工作也是白做了)。

焊下原内存芯片,换上新的64M内存芯片,再通电检查路由器是否工作正常。如果指示灯显示不正常,或路由器工作不正常,则多半是因为拖焊技术还有待提高,对各焊点进行补焊后,一般都能恢复正常。

新内存测试通过后,断电再进行下一步:更换闪存芯片,路由器的固件就安装在这个小芯片里(上图左边的那个sop8芯片)。 先焊下闪存芯片。注意:不要将换下的闪存芯片随意丢弃,后面还有用呢。

焊下原闪存芯片后,不是跟刚才更换内存芯片时一样,将新的芯片换上就可以了,需要先将bootloader固件先写入(注:bootloader相当于电脑主板上的BIOS程序,没有它系统无法运行)。上一篇中我们已经简要介绍过Breed,这次我们就是要将Breed作为bootloader写入新的16M闪存芯片。先到相应网站(https://breed.hackpascal.net/),下载与自己的CPU或路由器型号吻合的最新版Breed(breed-tp9343.bin),再通过编程器(我用的是XTW100Pro)将下载的breed写入闪存芯片,现在可以将新闪存芯片焊到主板上了,确认OK后通电测试。

正常情况下路由器指示灯在通电几秒钟后会处于闪烁状态,将电脑通过网线连接到路由器,然后在浏览器地址栏输入:192.168.1.1,就能进入Breed Web恢复控制台页面。

点击控制台页面左边菜单栏中的“TP-LINK设置”,进入PIN码及MAC地址的设定。

这款路由器不需要设置PIN码,只需要设定MAC地址即可。将路由器背面的原MAC地址写入后,点“修改”按钮“。再点”固件更新“菜单,进入OpenWrt固件及ART参数的写入。

这里要勾选固件,然后要选择输入的相应的固件文件。这一步对于这款路由器来说是比较复杂的,因为目前的OpenWrt官网还没有支持886N,只能找相近的(一般指CPU完全相同,其它配置尽可能多的相同的)、OpenWrt官网支持的路由器,通过修改固件编译源码中的个别程序,再重新编译生成新的特殊的固件。我这里采用了TL-WR940N-V4的OpenWrt18.06.8固件作为原始固件(编者注:如果将这个固件不做修改直接刷入TL-WR886N-V5,程序也能正常运行,但路由器电源指示灯指示没有、网口指示灯指示错乱),修改编译平台中~/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr940n-v4.c文件中指示灯的GPIO值(注:TL-WR886N-V5的值可参考TL-WR882N-V1的值,网络上可找到),再重新编译固件,生成新的、与官网发布程序不一样的tl-wr940n-v4固件:openwrt-ar71xx-tiny-tl-wr940n-v4-squashfs-factory.bin。自编译的过程比较复杂,可以考虑在以后专门设立一个课题来进行说明。如果你在跟着我的讲解进程在做DIY,可以通过网站的”DIY专栏-下载中心”下载到相应固件(百度网盘提取码:lyzj)。

选择输入固件以后,再勾选ART,然后选择输入相应的ART文件。ART文件是无线参数设定文件,每个路由器的ART文件都可能是不一样的。这样我们就必须把原路由器闪存上的ART文件读出,然后再写入新的闪存中,否则有可能无线部分工作不正常或性能变差。将焊下的原闪存放入XTW100Pro编程器上,读出2M原始固件,保存到电脑中。再从2M原始固件中分离出ART文件,这个过程也比较复杂,大家可以参考本网站的”从原始Flash中提取ART文件“这篇文章。

准备后固件及ART文件后,就可以点“上传”,将相应文件写入新的闪存芯片了,写好后路由器会自动重启。重启完成后,在浏览器地址栏再次输入:192.168.1.1,你会发现OpenWrt的LuCI界面出现了,路由器指示灯显示及工作状态都正常,成功!!

OpenWrt固件刷入方法概述

在上一篇文章“将OpenWrt固件刷入路由器”中,我们讲解了如何将OpenWrt固件刷入TL-WDR4310路由器中,是不是觉得非常非常简单。但是我要告诉你,这种刷入方法只能算是一种特例,而大部分的刷入方法都要比它复杂的多。

实际上,所有第三方固件的刷入方法都取决于原路由器bootloader部分的设定。有些带web刷入界面,有些带tftp服务器,有些给你安装了mtd命令等等。有些可能啥刷入方式都没给你留,对,啥方式都没有,那怎么办?只能把它原来的bootloader部分也一起改掉,改成带以上某种方法的特制bootloader。

然而,改bootloader的方法又有很多种,有不需要拆机的,伪装成厂家的升级程序,在升级的同时把bootloader也一起改了,这方面比较有代表性的是dd-wrt固件。因此有时候直接刷OpenWrt固件不行,可以先刷dd-wrt固件,再刷OpenWrt固件就OK了,典型的“曲线救国”路线。但大部分的改bootloader方法还是需要通过拆机才能完成,拆机后看主板上是否有相应的接口(注:有些板上需要自己焊接上接口,部分还需要添加一些元器件,接口才能正常工作),再通过TTL方式或者JTAG方式写入特制的bootloader,或者采用更直接的编程器写入方式,将闪存焊下或者直接将编程器连接进行特制bootloader的写入,当然做这些工作的前提是你需要有一些电子方面的知识储备以及掌握一些基本的焊接技术。

对于一些早期的路由器,由于其配置偏低,在刷入OpenWrt固件之前需要对其进行硬改(注:最新版的OpenWrt固件将不再支持4M闪存/32M内存系统,最低要求8M/64M,建议16M/128M及以上)。像这种情况,在换闪存的同时,就可以通过编程器将新的bootloader,如u-boot改进版、breed等先写入闪存,再通过其web刷入界面刷入OpenWrt固件。像breed这种定制的bootloader,自身包含“刷不死”系统,对于初学者来说非常实用。Breed允许你刷入各种版本的固件:可以是OpenWrt的官方固件,或者是自编译固件,或者是别人定制好的固件;也可以选择DD-WRT等其它第三方固件,你不用担心刷入新系统后路由器变砖,因为刷入新系统后,如果路由器工作不正常,可以继续进入breed的web刷机界面刷入其它测试的固件,直至运行正常为止。

由于固件刷入的方式多种多样,在这里不能一一详述,以后会配合特定的路由器来讲解特定的方法。为了让大家对刷机过程有一个更深入、更全面的了解,下一篇将再导入一款新的路由器TL-WR886N-V5,它的OpenWrt固件刷入方法相对上次讲解的TL-WDR4310那要复杂的多,涉及的范围也会更广,就算是给DIY初学者的“抛砖引玉”之作。

将OpenWrt固件刷入路由器

特别申明:此过程有一定的风险性,如果操作不当有可能将原来的路由器变砖。建议拿一些老式的、家里已经不用的或者直接从二手市场购买便宜的路由器来进行练手,即使变砖了也不心疼。

路由器刷入新固件的方法有很多,有很简单的,也有非常复杂的,这主要取决于原路由器厂家的原始设定。有些厂家为了让用户使用原厂固件,它会给刷第三方固件设置重重障碍,让刷入新固件过程变得非常困难。也有一些厂家对第三方固件持开放态度,那它的刷入过程就会变得非常简单,跟升级原厂固件一样(So easy)。

实际上单单讲刷入方法就可以分很多篇幅的,但是现在是入门阶段,讲得太复杂,有些人就要打“退堂鼓”了,所以我会先向大家推荐一款,二手价格便宜、固件刷入方法又简单的路由器来做详细说明。TP-LINK公司出品的TL-WDR4310(国外类似型号为TL-WDR4300),配置情况如下:5个千兆网口(1个输入,4个输出),满足大部分家庭网络需求;750M双频无线(2.4G、5G),兼顾无线传输速度及穿墙能力;8M闪存加128M内存,支持最新版openwrt固件;2个usb2.0(要是有一个usb3.0会更好),便于后续功能拓展;当然最要紧的是,该型号路由器国内存量大,二手价格有吸引力(9成新,价格在50元左右)。上个图片先,再介绍具体刷入方法。

 

OpenWrt固件刷入过程:

1、根据上一篇文章”下载合适的OpenWrt固件“,下载最新支持固件:openwrt-19.07.4-ath79-generic-tplink_tl-wdr4310-v1-squashfs-factory.bin;

2、将下载的固件更名为:wdr4310v1_en_3_14_3_up_boot(201009).bin,名称不一定完全一样,但大致是这个格式,路由器自带的升级程序才能识别,允许进行升级;

3、路由器通电后连接电脑,在浏览器地址上输入:192.168.1.1,输入账号和密码(初始账号为admin,密码也为admin),进入tp-link设置页面;

4、点击左列菜单中的”系统工具“,再点”软件升级“,再点”选择文件“,将更名后文件选中,见下图:

      注意:如果原固件进行过升级,有可能无法进行OpenWrt的固件升级。我测试时原厂固件版本是3.13.31,按以上方法升级没问题。

5、点”升级“按钮,就可以刷入新的固件了,系统会自动重启,重启完成后,再回到浏览器界面,输入:192.168.1.1,就能进入OpenWrt的设置界面了。

怎么样?是不是感觉还是挺简单的。

 

下载合适的OpenWrt固件

要了解OpenWrt系统,最好的方法就是找一个路由器,然后刷入OpenWrt系统,然后在系统中一步一步了解其具体功能。

一般来说,每个家庭都会有一些以前淘汰下来的路由器,因为无线路由器的速度一直在升级,因此我们也必须对路由器进行更新换代。找一个以前的路由器,记下它的生产厂家及型号,然后到OpenWrt官网(https://openwrt.org/)去查询一下是否支持该路由,应该来说大部分的路由器OpenWrt都支持,除非你的路由器很特殊或年代很久远了。

OpenWrt官网主页面

进入OpenWrt官网后,点“Table of Hardware”(红色框注的地方)

OpenWRT支持路由器列表搜索框

分别输入路由器品牌及型号,就可以发现OpenWrt系统是否支持了。以TP-LINK的WR710N为例:

tp-link的wr710n路由器查询结果

在最后的查询结果输出表大家可以发现,该型号的某些版本的路由器OpenWrt是支持的,同时不同的路由器版本其支持的OpenWrt版本号也有所区别,有些最新的19.07.3版本支持,有些只支持到17.01.4或17.01.5版本为止。另外,眼尖的朋友可能已经发现,支持的版本号怎么多是欧盟EU或美国US的呢?因为买到中国的版本很遗憾硬件都给阉割过了(为什么?当然是为了降低成本了,资本家的逐利性看出来没),需要进行硬改才可以刷OpenWrt系统,这在以后的内容中会详细讲到,这里就不再累述了。

根据自己路由器的版本号,选择相应的行,再点击“View/Edit data”,进入详细配置页

WR710N详细配置页

再点击红线所划那行的链接,下载相应的OpenWrt固件,这里下载的是首次安装用的固件,其它的固件在以后的章节中再展开说明。

现在你已经有适合你路由器的OpenWrt固件,接下来就是要把这个固件刷入原路由器,而替换掉原路由器固件系统,即厂家出厂时自带的系统。刷入OpenWrt系统后,你就拥有了对该路由器操作的所有权限了,可以按你自己的想法来配置和优化你的路由器了。