之前尝试在 Netgear Nighthawk X6 R8000 上刷 LEDE 这个开源路由器固件却发现配置起来非常麻烦而且 Wifi 有问题。听说 AdvancedTomato 固件定制得完善,于是尝试了一下,非常简单。AdvancedTomato 的功能很强大,进一步定制的空间也很大。本文是简单的记录。
目前针对 R8000 的最新版本的 AdvancedTomato 固件是 3.5-140 (AIO build)。刷机的流程比 LEDE 的稍稍复杂了一点。感谢开源社区的贡献,操作还是非常简单的。有三个下载文件,第一个 R8000-1.28.AT-ARM7-3.5-140-initial-64K.chk
相当于「预处理」(initial),是必须的;第二个 R8000-AT-ARM7-3.5-140-AIO-64K.trx
才是我需要的 AIO 版本。(嗯,暂时还不知道 AIO 和 VPN 版本的区别。反正 VPN 版本的下载量小,估计我也不会用得上。)
刷机前可导出保存当前配置。位于「Advanced 高级」标签页里面的「Administration 管理」栏目下的「Backup Settings 备份设置」页面。单击「Backup 备份」按钮会看到下载保存配置文件的提示。
刷机¶
下载的 .chk
格式的固件 R8000-1.28.AT-ARM7-3.5-140-initial-64K.chk
可以直接通过 R8000 默认的网页管理界面上传刷机。位于「Advanced 高级」标签页里面的「Administration 管理」栏目下的「Router Update 路由器更新」页面。浏览定位到下载的那个固件文件,然后单击「Upload 上传」并「Apply 应用」,然后等待几分钟后重启路由器即可(不需要重置)。
重启之后就可以进入到 Tomato 固件的界面了。如果不能自动连接到有了新固件的路由器,可以通过网线来连接路由器和电脑。默认的路由器 IP 是 192.168.1.1。只要将电脑的网络连接手动配置一个同网段 IP,如 192.168.1.100,就可以通信了。
然后通过 Tomato 预处理固件的界面刷(或者叫升级)最终固件 R8000-AT-ARM7-3.5-140-AIO-64K.trx
。登录网页管理界面后打开「Administration 管理」栏目下的「Upgrade 升级」页面。点击「Browse 浏览」选择下载好的 AIO 固件,再单击旁边的「Upgrade 升级」。确认后等待刷机完成并重启路由器。如果没有自动刷新到 Tomato 管理界面,直接在浏览器输入 http://192.168.1.1 来访问即可。
到这里基本上就算完成了。网上有人说需要双清 NVRAM 内存,实际上似乎无所谓。Reddit 上说变砖可能是因为没有清 NVRAM。操作一下以图心安。在「Administration 管理」栏目下的「Configuration 配置」页面,选择「Restore Default Configuration 恢复默认配置」下面的「Erase all data in NVRAM memory (thorough) 彻底清除 NVRAM 记忆体里面的数据」,然后单击后面的 OK。路由器完成操作后会再次重启。
彻底完成了。下面就是像新买了路由器一样来配置使用 TomatoUSB 固件了。
关闭 LED 指示灯¶
才发现刷机后那个控制 LED 的开关不管用了。不过网上有人分享了 R7000 中控制 LED 的代码,同样也适用于 R8000。
## Turn off all the LEDs but the Power indicator # ref: https://www.reddit.com/r/TomatoFTW/comments/5ab3cj/netgear_r7000_advanced_tomato_turning_off_led/ # sleep 20s since it is too early and killing blink and setting power LED will not work otherwise sleep 20 # kill blink to stop interfering with LEDs killall blink # Disable WAN and LAN LEDs et robowr 0x0 0x18 0x1ff et robowr 0x0 0x18 0x0 et robowr 0x0 0x1a 0x0 # disable WPS button LED gpio disable 14 # disable WLAN button LED gpio disable 15 # turn on power LED red 打开红色电源指示灯 gpio disable 3 # turn off power LED white gpio enable 2 # turn off 2.4GHz LED gpio enable 13 # turn off 5GHz LED 1 gpio enable 12 # turn off 5GHz LED 2 gpio enable 16 # disable USB 2 LED gpio enable 18 # disable USB 1 LED gpio enable 17
到「Administration 管理」中的「Scripts 脚本」页面,点击「Init 初始化」标签页,将将上面的代码粘贴进去,然后「Save 保存」并重启即可。不需要的部分可以将指令前面加上 #
号来注释掉。
注:不知道是不是因为增加了一些其它的服务,20 秒的等待时间不够,最后导致已经关闭的电源和 2.4G、5G 1 以及 5G 2 这个四个指示灯又亮了起来。改成 sleep 60
就没问题了。但这样一来无线热点上线的时间就又推迟了。最短等待时间应该在 20s 到 60s 之间,不过不想进一步测试了。
回退到原厂固件¶
能够回退到原厂固件还是很好的,以防万一。操作过程也是很简单,也需要分两步。第一步刷上面的第一小步里的提到的那个 initial 固件,然后以类似上面第二小步的方式再刷回原厂固件。
如果变砖¶
如果刷机失败导致无法通过简单的方式访问路由器了(路由器变砖),还可以有特别的刷机方法。可以参考这里的官方指南。©
本文发表于水景一页。永久链接:<https://cnzhx.net/blog/flash-advancedtomato-firmware-on-netgear-nighthawk-x6-r8000/>。转载请保留此信息及相应链接。
引用通告: 在 Tomato 固件上配置虚拟客人网络 | 水景一页
引用通告: Tomato 固件里安装 Entware 到 Netgear R8000 上的外接 U 盘 | 水景一页
引用通告: Tomato 固件上配置 Shadowsocks + GFWList | 水景一页
引用通告: 使用 Linode VPS 部署自己的动态域名 | 水景一页
引用通告: 打造家庭服务器 | 水景一页
请教一下,用了这个AdvancedTomato以后,usb连的打印机能共享成网络打印机给iPhone之类的用吗?
我没有连过打印机,不敢确定。但是根据网络打印机的原理,只要在同一个局域网段里能够互相通信就可以了吧。而且如果不行的话你可以很容易的恢复到原厂的固件 :D
多谢及时回复。
我理解设备的固件得有打印服务功能,且能安装驱动识别打印机才可以吧。不知道这个tomato是否能够支持这些。
我也查一查文档吧。谢谢了。
在我安装的 AdvancedTomato 中的 USB & NAS 的 USB Support 一节中有 USB Printer Support 的选项,但是不知道能用不。
这里有人安装成功了。在 Optware 中使用 CUPS 服务,然后配置 AirPrint/CloudPrint 服务。
然后,似乎还可以直接在路由器上连接打印机(但是不配置网络打印服务),然后在手机上安装 Printer Pro 应用来搜索并配置打印机来打印。见这里。
多谢,我正好要自己尝试一下呢。
欢迎多多交流心得 :)
惨了,不小心变砖了….tftp2试了半天也没啥反应…
太惨了。跟这个问题(reddit)一样吗?准备对它开刀了吗?
引用通告: 更新 Entware 遇到错误 | 水景一页
第一步刷入initial image的时候显示“The firmware is not compatiable with your router. Error code -1.”怎么办……我本来以为是我固件太新,降级之后还是会遇到这个问题。
我是第一次听说这个错误。刚搜了一下,最近好像挺多的。据说是因为 Netgear 的新固件加入了安全检查,不让大家随意刷机。可参考 这里 和 这里。目前还没有统一的定论,不过后一个链接那里给了一个通过 sftp 和 putty 刷成功的例子。然后 这里 还有一个利用网线连接刷成功的例子。
引用通告: 从 AdvancedTomato 恢复到 Netgear 原厂固件 | 水景一页
引用通告: 给 Netgear R8000 装上了 OpenWrt | 水景一页