网件 AX8 RAX80 路由器探索 硬件·散热·改装·固件·救砖

引子

最近老的 RT-AC68U 老是断流,加之已经用了很久了,LAN 口也有点老化,不能发挥全部性能了,所以以 338.5CNY 的价格入手了一台网件的 AX8 RAX80 路由器万能拼多多,百分百官翻,这是一款支持 WiFi 6 的路由器。

硬件差异以及散热改装

这台路由器的硬件配置是:

  • CPU: BCM4908/BCM49408,4cores 1.8GHz.(终于不是A7的架构了)

  • 5G&2.4G: BCM43684,802.11ax support.

  • 5G RFFE,SKY85743.

  • 2.4G RFFE,SKY85331.

  • RAM: 1GB(512MB*2) DDR3@1866MHZ.

  • Flash: 512MB NAND.

这个配置与华硕 AX88U 基本一致,但是价格便宜了许多,意味着它可以使用梅林固件。

在一些文章中展示了它使用了一个台达风扇(EFB0505LA.),但是在我这台路由器上并没有看到风扇,可能是后期的版本取消了风扇。

参考 参考链接[1]、参考链接[2]、参考链接[3] 中有详细的硬件拆解和评测。可以看到路由器内部的构造。

无风扇版本手动添加风扇

我们可以手动添加风扇,但是不一定生效,需要刷写固件,这里按下不表。只先讲一讲怎么添加风扇。

但是有一些版本只是没装风扇,这种版本直接加装风扇连接主板即可。

但是有一些版本连风扇的电路都没有,所以需要注意。没有电路的版本需要你补齐电路,但是这不太容易。也可以从 DC 口上取电,使用降压模块(比如 MP1584EN、XL1509 等,)降压到 5V/12V 然后接风扇,这样风扇的选择就很简单了,两线风扇足可。

如果没有风扇电路,可以参考上图(PCB 背面)中的电路图,使用降压模块降压到 5V/12V,然后接风扇。

Netgear RAX80 评测 中讲解了详细的拆解过程,可以参考。

不需要与官方一样的型号,规格一致即可,原装的台达EFB0505LA. 5V 0.1A风扇,台达风扇大多是 OEM 的,不容易找到,台达一般不对外零售,淘宝上基本是假货,所以找同规格替代即可

购买一个 5010 规格的风扇,市面上许多风扇假装是 3 线风扇,实际上是 2 线风扇,所以需要注意。其实 2 线风扇也可以使用,只是没有PWM调速功能,但是某宝上的风扇大多都虚标,即使最快也没正版的快,所以不用太在意。也可以使用12v风扇,这样不能满血,但是也能降温,而且噪音更小,降压使用寿命更长。

关于风扇线序,一般是红线为正极,黑线为负极,黄线为转速信号线,蓝色线为PWM调速线,但是这个路由器没有 PWM 调速功能,所以不用管蓝线。

我DIY过很多,买过很多风扇,得出一个结论,除了拆机正品,其他的都是假的,所以不用太在意,挑便宜的买。

比如之前买过一个20块的,和一个2块的,结果都只能用一年(全天运行)…

没有风扇的版本,同样不带螺丝柱,所以需要自己安装螺丝柱,然后安装风扇。

当然,这个东西也不好找,可以使用胶水、热熔胶,或者是扎带固定。

也可以买一些子母铆钉,这个挺便宜也美观(盖上盖子没人看得到),也要注意规格,不要买太大的,最好配一些垫片,这样可以防止螺丝摩擦到主板。

参考 参考链接[4] 中讲解了详细的添加风扇的过程,可以参考。

参考 参考链接[5] 中讲解了被动散热的改装,可以参考。

被动散热改装

关于被动散热,成本比较高,因为是定制的散热片,所以不推荐(三百多的主机,散热花掉50块是很不划算的)。但是可以自己买铜带自己做,这个成本比较低(物料大概也就5块的样子),但是要比较全的工具,以及一些五金件加工的经验。

风扇控制固件问题

这里还有关风扇控制的问题,主要是固件的问题。

官方的固件也是有风扇控制的,但是极为保守,刚开机时可以看到转一下,然后就不转了;SWRT官改固件内置了自动风扇控制,但是不能调节,也没有开关,为此我从 koolshare 移植了该插件,详见梅林固件部分;koolshare 固件可以调节风扇转速,但是这个固件很久没有维护了。

不过,我还是没有添加风扇和被动散热,我直接在底座加了一个电脑用的散热风扇底座,就是那种老式的,里面6个小风扇,总功率大约2.5W,可以通过 USB 接口供电,我直接把它接线到 DC 适配器上,以前用AC68U的时候,一直插在路由器上,久而久之,USB接口接触不良了…好在还有一个3.0的接口,2.0的接口就不管了。

实测效果也不错,从 70 度降到 57 度,但是噪音有点大,不过我不在意(我把路由器放在电视机旁边的柜子上,那个柜子有 2.2m 高)。

博通设备在修改/刷写系统前请务必使用编程器备份

本文仅供参考!!!

如对设备造成损坏概不负责!!!

官方固件

如何下载官方固件?

参考链接[6]

官方固件下载地址:https://www.netgear.com/support/product/RAX80.aspx

这里只提供了最新版本的固件下载,如果需要下载旧版本的固件,可以通过以下方法获取:

  • 在网件的美国官网搜索页面中输入“RAX80 Firmware",然后点击搜索按钮,即可看到部分的固件版本。例如: https://www.netgear.com/search/?=&referrerPageUrl=&query=RAX80+Firmware+

  • 但是,这样得到的固件版本并不全,如果需要下载更多的固件版本,可以通过以下方法获取。前提是你需要知道具体的版本号,例如:1.0.1.40_1.0.221.0.0.30_1.0.17,然后补全到以下链接中:https://www.downloads.netgear.com/files/GDC/RAX80/RAX80-V1.0.2.76_1.0.35.zip替换其中的版本号即可下载到对应的固件版本。

据说 1.0.0.30_1.0.17 这个版本还支持 SuperWifi,以及不锁区,支持开启 telnet
网件的更新真是开倒车,越来越差了。

官方固件打开 telnet

打开网件路由器的telnet功能,可以通过以下方法实现:

固件后台页面打开 telnet

http://10.0.0.1/debug.htm

勾选上Enable Telnet,然后点击Apply按钮即可。

该方法只适用于部分固件版本,如果你的固件版本不支持,可以尝试回滚老版本固件,
1.0.1.40活着1.0.1.62活着1.0.1.64都可以,低于这几个版本的也可

开源工具打开 telnet

或者使用工具 netgear_telnet

按照要求,配置 python 虚拟环境,然后执行以下命令:

1
./telnet-enable.py <ip> <mac> <username> ['<password>']

例如:

1
./telnet-enable.py 192.168.1.1 A0:40:A0:69:B6:30 admin 'mypassword'

但是这个工具已经将仓库标记为存档状态,所以可能不再维护。

你也可以尝试拆机使用 TTL 线连接路由器,然后通过串口方式进入路由器的系统。只不过这样的方式比较麻烦,不推荐。

参考链接[7]

官方固件更改地区

开发者工具更改地区

可以尝试使用开发者工具,检查网页元素,将标签的disabled属性去掉,然后选择地区,点击Apply按钮即可。

还有進去看代碼有找到hid_telnet的部分,但 style=”display:none;” 的部分沒有看到找對應的地方硬改成 style=”display:center;

这种方式只适用于部分固件版本

telnet 更改地区

其次可以使用 telnet 进入路由器系统,然后通过命令行的方式修改地区。

1
2
3
telnet 10.0.0.1
cd sbin
artmtd -w region PR

PR是People’s Republic of China的缩写,其他区域代码NA、WW、GR、RU、BZ、IN、KO、JP、AU、CA、US,若想查询当前区域,可通过artmtd -r region命令。参考链接[8]

AU是澳大利亚区,功率最高。
WW是欧区,无线全区域可选。

然后 reboot 重启路由器即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
更新一些区域代码
0x001 is for region NA
0x002 is for region WW
0x003 is for region GR
0x004 is for region PR
0x005 is for region RU
0x006 is for region BZ
0x007 is for region IN
0x008 is for region KO
0x009 is for region JP
0x000A is for region AU
0x000B is for region CA
0x000C is for region US
1
2
burnsku 0x0002 # 解除地区限制
burnsku 0x0004 # 则可改回国区

梅林固件

截至24年11月,我收集到的固件有:官方固件,SWRT官改固件,koolshare 固件

这些在搜索引擎中搜索即可找到最新版

比较推荐使用 SWRT官改固件,这个固件是基于梅林固件的,但是有一些改动,添加了软件中心,可以安装一些插件。

具体的安装方法它们的发布页都有详细的说明。

SWRT 官改固件移植风扇控制插件

移植自 koolshare 的 rogsoft 项目中的 rog ROG 工具箱 插件

在软件中心离线安装主体部分

而其中的库文件需要解包固件,将压缩包中/rax80/文件夹中的文件复制到根目录,再打包成新的固件,然后刷入路由器。

解包打包固件的方法可以参考本文的 固件解析 部分。

救砖

使用 TFTP 救砖

据网友的经验,这个路由器的救砖方法比较简单,只需要使用 TFTP 协议,将固件上传到路由器即可。

参考链接[9] 中讲解了详细的救砖过程,可以参考。

注意上传的固件必须是 .chk 格式的固件,否则可能发生出乎意料的问题。

这个方法需要拆机 TTL,比较麻烦,所以有两个不需要拆机的方法。

参考链接[10] 中讲解了详细的救砖过程,可以参考。

主要方法

  • Windows 终端执行

1
nmrpflash.exe -i net24 -f RAX80-V1.0.0.30_1.0.17.chk -t 20000
  • linux命令在终端执行前加上sudo即可

注意-t 20000必须加否则上传必失败。

  • 关机后按住重置按钮并打开电源,当nmrpflash开始上传后松开,等待nmrpflash上传完成提醒重启,大概3分钟时间。

  • 系统启动后当可以打开192.168.1.1时按住重置按钮大约30秒恢复出厂,重启后即可完全恢复原厂系统。

  • 之后可以重新设置电脑为自动获取ip。

Koolshare 提供的救砖方法

另一种方法来自 koolshare,为防止他们网站关闭,我将其转载在这里。

一、打开TFTP功能
windows + R组合键,调出命令运行窗口,输入:OptionalFeatures后回车,打开windows功能窗口找到TFTP客户端功能,勾选后点击确定

二、准备救砖软件安装npcap后,才能正常使用nmrpflash,下载地址:npcap-1.50.exe
下载nmrpflash程序:nmrpflash.zip,解压得到nmrpflash文件夹,内有nmrpflash.exe程序。将nmrpflash文件夹放进C盘根目录中,方便以后使用。

三、准备救砖固件网件固件救砖必须使用.chk后缀的RAX80固件,既可以使用网件官方固件,比如RAX80-V1.0.0.30_1.0.17.chk,也可以使用RAX80梅林固件的chk版本本文使用梅林固件:RAX80_386.3_0_ubi_koolshare.chk进行救砖操作,救砖前将固件文件放进C盘的nmrp文件夹

四、网卡设置首先使用网线将RAX80的LAN口与电脑的网卡进行连接在windows操作系统中,将网卡的IP地址设置成192.168.1.2,掩码:255.255.255.0,网关:192.168.1.1注意,网卡的IP地址请严格按照以上进行设置

五、Powershell
打开3个Windows PowerShell窗口,分别为命令窗口1,命令窗口2,命令窗口3,将他们并排显示在桌面上在第二个和第三个PowerShell窗口内输入命令:cd C:\nmrpflash\,以切换到nmrpflash.exe所在的文件夹如果此时RAX80电源是开启的,请关闭RAX80电源在命令窗口1中,输入ping 192.168.1.1 -t并回车,此时应该会显示请求超时在命令窗口2中,输入.\nmrpflash.exe -L并回车,找到RAX80连接的电脑网卡编号,我的是net24
在命令窗口3中,输入以下命令,但是不敲回车执行,备用
tftp -i 192.168.1.1 PUT .\RAX80_386.3_0_ubi_koolshare

六、刷机在命令窗口2中,运行以下命令(其中,net24换成你自己的网卡编号,RAX80_386.3_0_ubi_koolshare.chk换成你要刷的固件):

.\nmrpflash.exe -i net24 A 192.168.1.2 -a 192.168.1.1 -f .\RAX80_386.3_0_ubi_koolshare.chk
以上命令运行后,立即按下RAX80开关,给RAX80通电,然后观察命令窗口1,是否出现TTL=100的回复(参考救砖教程图片版)

上面的命令运行后,观察命令窗口1,是否出现TTL=100的回复(参考救砖教程图片版)

如果命令窗口2中的nmrplfash命令已经执行结束,但是命令窗口1中还未出现TTL=100,或者是出现的TTL=100回复中断了,那么就在立即在命令窗口2中再执行一次上面的命令(可以使用键盘上的向上方向键,调出上一条命令后,直接按下回车执行)。

再次执行后,观察命令窗口1中是否稳定刷出TTL=100的回复,如果是,立即在命令窗口3中将之前准备好的命令执行(回车执行)

命令执行后等待二十秒左右,在命令窗口3中会出现传输成功字样,这就是TFTP刷机成功的标识

此时再等待2 - 3分钟后,可以手动将RAX80路由器断电再开启,即可进入你要刷的系统

请记得将最开始对网卡静态IP的设置更改为动态获取,以顺利访问路由器后台地址

救砖总结:

nmrp是网件自己的一个协议,可以用于网件固件的救砖,但是由于网件自己的nmrp软件过于老旧,必须在windows xp上运行,而nmrpflash是基于nmrp协议实现的第三方救砖工具,可以在windows 10、macOS、linux下运行。

理论上nmrpflash救砖只需要命令窗口2中的nmrpflash令执行后就可以了,不需要命令窗口3中的tftp命令参与,但是因为RAX80在开机后只有很短的时间会收到nmrp协议的广播,而且即使收到,也大概率会出现Timeout,从而无法成功上传固件(成功使用nmrpflash给RAX80上传固件的时间窗口很难把握)。

即使nmrpflash无法成功使用刷到固件,但也会触发RAX80进入TFTP模式,(TTL=100就是进入TFTP模式的标识,相信使用TFTP刷华硕机器的朋友并不陌生)。

那么就能利用TFTP命令进行固件的刷写了,所以以上步骤,如果完全没有偏差的执行,那么从ML固件刷回网件原厂是完全没有任何问题的。

固件解析

这台设备使用两种格式的固件,分别是官方的 chk 格式和华硕的 w 格式。

chk 格式

chk 格式的固件比较简单,只需要使用 binwalk 工具解析即可。

最新的 binwalk 使用了 rust 语言,不再是 pytohn 了,

所以我们使用 docker 来运行 binwalk

这里记录 windows 下的使用方法,linux 下的使用方法类似。

使用的前提是安装了 docker,以及 WSL2环境,不太推荐使用 Hyper-V

1
2
3
4
git clone https://github.com/ReFirmLabs/binwalk.git
cd binwalk
sudo docker build -t binwalkv3 .
sudo docker run -t -v.:/analysis binwalkv3 -Me firmware.chk

这里的 firmware.chk 是你的固件文件,运行完成后打开 extractions 文件夹即可看到解析的文件。

打包可以看 参考链接[11]、参考链接[12]

w 格式

w 格式的固件比较复杂,需要使用 ubi_reader 工具解析。

参考链接[13]

首先使用 python 创建虚拟环境

激活环境后,使用 pip 安装 ubi_reader

1
pip install --user ubi_reader

参考链接^11、参考链接[14] 中讲解了详细的解析过程,可以参考。

打开 CMD

1
2
3
4
ubireader_display_info firmware.w #获取UBI信息以及布局块等信息
ubireader_extract_images firmware.w #提取镜像
ubireader_extract_files firmware.w #提取文件内容
bireader_utils_info firmware.w #分析UBI镜像并创建shell脚本和UBI配置文件

在 Windows 下,到提取镜像这一步基本就结束了,因为 Windows 下没有类似 Linux 下的相关命令,而且基本上提取文件内容也是空的。这里得到了一个 .ubifs 文件,这个文件是一个 UBI 文件系统,需要在 Linux 下进一步解析。

提取镜像后转到 Linux 下,这里我是用的 WSL2,Ubuntu 22.04。

用file查看属性,发现是squashfs文件系统

1
file img.ubifs

可以发现是一个 squashfs 文件系统,使用 unsquashfs 解压就得到了文件系统。

先获取文件系统信息

1
unsquashfs -s img.ubifs

这里会输出一些信息,以及解压的文件目录。记住这些信息,因为这些信息会告诉你这个文件系统的一些信息。

然后解压文件系统

1
unsquashfs img.ubifs

打包文件

1
mksquashfs squashfs-root img2.squashfs -b 128K -comp xz

具体参考链接[15] [16]

更多有关固件逆向的信息可以参考链接[17]

为适配 asuswrt GPL 做准备

由于闭源固件的不可靠性和不稳定性,由于官方固件的封闭,适配 asuswrt GPL 固件是一个不错的选择。

配置对比[3:1],[18]

机构RAX80AX88U备注
CPUBCM4908/BCM49408BCM4908/BCM49408基本一致
RAMSAMSUNG K4B4G1646E-BYMA *2NANYA NT5CC256M16EP-DI *2两颗 DDR3 512MB
FlashWinbond W29N04GVSIAAWinbond W29N02GVSAF网件使用 512MB,华硕使用 256MB
WI1-chip1BCM43684BCM43684一致
WI1-chip2BCM43684BCM43684一致
PHY-modesabgn+ac+axabgn+ac+ax一致
CPUArch.CoresFreq.FCCNotes
BCM49408ARM v8 Cortex-B5341.8 GHz2018-02-142.5GbE PHY (SGMII+), SATA 3, 2x USB 3.0, 3x PCIe, 5x GbE PHY/SW, XStream, 28nm
BCM4908ARM v8 Cortex-A5341.8 GHz2017-01-30 (CES 2016)2.5GbE PHY (SGMII+), SATA 3, 2x USB 3.0, 3x PCIe, 6x GbE PHY/SW, XStream, 28nm

BCM49408

  • Low power quad core B53, 64-bit ARM @ 1.8 GHz

  • 1MB shared L2 cache w/ ECC

  • IPSEC Crypto support

  • 32-bit DDR3-1600

  • 3x PCIe Gen2, USB3, SATA3

  • 2.5G-phy support (SGMII+)

  • 5 Integrated GE PHYs and switch

BCM4908 查看下方资料

[19]

下载文件

下载

可以确定,BCM4908 和 BCM49408 是同一代的处理器,BCM49408 是 BCM4908 的升级版。[20]

使用 BCM4908 + BCM43684 的 SoC 方案,最大是 AX11000,而可以阉割出 AX5700,AX6000,AX6600 等变种。

可以在华硕的官网上找到 AX88U 的 GPL 代码包。

适配 asuswrt GPL 固件可能需要的工作

  • GPIO

  • LED

  • USB

  • NAND

  • UBI

  • etc.

适配 asuswrt GPL

未完待续。。。

思路:不必纠结于机型名称,进行单独适配,直接在 AX88U 的基础上进行修改。

结束

我把它卖了,博通大火炉实在难用,即便是华硕系统也没啥可玩性,太笨重了

然后就是我的体验其实感觉不太好,虽然是 AX6000,但是我实际用下来,并没有赢 mt7981 AX3000 太多

虽然 CPU 性能很强,但是我日常用不到,但是优点也是有的,很多网口,以及有两个 USB3,可以做轻度 NAS

但是缺少 2.5G 网口是个硬伤,再结合价格,性价比不高,但虽说如此,网件这么多年了,还是有情怀价值的

至于做工,呵呵,越南产。


至此,该篇博客完结,以后可能会有小修改,但是不太能有实际内容上的更新了。

25年7月31日

参考链接


  1. 小白教程:Nighthawk RAX80轻松突出千兆极限,重要资料全备份 ↩︎

  2. 實際使用心得| NETGEAR Nighthawk RAX80 – 消失的風扇! ↩︎

  3. Netgear RAX80 评测 ↩︎ ↩︎

  4. 一次改造成功仍然翻车的经历—网件RAX80加装风扇 ↩︎

  5. Rax80被动散热加强 ↩︎

  6. RAX80 — Nighthawk AX8 8-Stream WiFi Router ↩︎

  7. netgear_telnet ↩︎

  8. 【硬件升级】 NETGEAR RAX系列wifi6路由器锁区解决办法 ↩︎

  9. NETGEAR RAX80 救砖修复刷回原厂固件教程 ↩︎

  10. 网件RAX80救砖文字教程 ↩︎

  11. 【k3】【假装是大佬系列】官改魔改教程~站在A大的肩膀上改固件其实超级简单 ↩︎

  12. binwalk ↩︎

  13. ubi_reader ↩︎

  14. 固件提取——ASUS.w格式固件提取遇到的问题 ↩︎

  15. squashfs重打包和ubi重打包 ↩︎

  16. 华硕 路由器固件解包打包 ↩︎

  17. 路由器固件逆向&&AFL 入门 ↩︎

  18. 华硕RT-AX88U路由器评测,性能表现优异,路由玩家专属 ↩︎

  19. BROADCOM 802.11AX Solution:BCM4908+BCM43684wifi主板定制 开发板研制ODM ↩︎

  20. Broadcom SoC ↩︎