前言

为了重新截取上一篇刷机教程的过程图,想着把路由器先刷回原系统,但是网上关于这款路由器的刷机资料很少,了解到XR30与移动另一款路由器RAX3000M的硬件配置相近,就想着用RAX3000M的固件来刷机,没想到后面直接开不了机了,然后就走上了漫长的救砖之路,希望能给遇到相同情况的网友一些参考。

当前状态

电源灯不亮

启动报错ERROR: BL2: Failed to load image id 3 (-5)

NMBM元数据被破坏

U-Boot环境被破坏

U-Boot的BL2和FIP部分仍然存活

img

解决方法

拆掉外壳,取出主板

img

找到TTL接口,从上往下顺序依次是GND、TX、VCC、RX

img

通过USB转TTL工具连接到电脑USB口

img

在设备管理器查看对应的COM口,这里是COM4(如果看不到的话有可能是没装驱动,装一下CH340驱动)

img

用网线连接电脑网口与路由器的LAN口

进入设置,修改电脑的IPv4网段为192.168.1.x(按以下例子修改就好),保存

img

打开MT798X串口TTL救砖命令.bat

img

输入COM口编号,这里输入4,回车

img

下载波特率选择1,回车

img

选择11这个uboot固件,回车

img

插上路由器电源,会自动下载uboot救砖固件

img

看到出现FIP SENT的时候,再等待一会

img

直到出现下面的页面(如果是空白的话按两下CTRL+C键)

img

输入以下命令擦除其他固件的数据:

1
2
3
4
5
nand erase 0x07fe0000 0x20000  # 擦除存放NMBM签名的物理块 (1023号块)

nand erase 0x07fc0000 0x20000 # 为了确保所有NMBM相关区域被清理,再擦除1022号块(通常存放备份)

nand erase 0x280000 0x1a00000 # 擦除从0x280000开始的固件分区(约26MB,覆盖RAX3000M数据)

img

通过TFTP的方式将固件下载到路由器的内存里,先执行以下命令配置网络

1
2
3
setenv serverip 192.168.1.2  # 你的电脑IP,也就是上面设置的静态IP

setenv ipaddr 192.168.1.1 # 路由器IP

img

打开tftpd64.exe

img

这个要允许

img

选择OpenWRT固件(这里是firmware.bin,其实就是之前的immortalwrt-mediatek-mt7981-cmcc_xr30-squashfs-factory.bin)所在的目录,选择IP对应的有线网卡

img

继续执行以下命令进行固件下载和写入

1
2
tftpboot 0x46000000 firmware.bin  # 通过TFTP下载固件到内存,firmware.bin是固件的文件名
nand write 0x46000000 0x280000 0x$filesize # 将内存中的固件写入

img

reset重启路由器

img

重启后报错变成了ERROR: BL2: Failed to load image id 3 (-2)

img

我们需要关闭NMBM只读模式并重建环境。先拔掉路由器电源,关闭这个窗口,重新打开MT798X串口TTL救砖命令.bat并重复前面的步骤,然后会出现这个界面

img

按两次CTRL+C回到命令行模式

img

输入以下命令关闭NMBM只读模式并重建环境

1
2
setenv nmbm_mode default
saveenv

看到OK后输入reset重启路由器

img

现在还需要修复U-Boot主程序(FIP)。重复前面的步骤,进入这个界面(不需要CTRL+C)

img

浏览器打开192.168.1.1/uboot.html这个页面

上传fip.bin固件

img

上传成功后点击更新,等待重启

img

拔掉路由器电源,关闭命令行窗口,重新打开MT798X串口TTL救砖命令.bat并重复前面的步骤

浏览器打开192.168.1.1,再次上传firmware.bin并更新,等待重启

img

img

重启完成后即可正常使用,完成救砖

img

结语

救砖完成后,把路由器装回外壳正常使用就可以了。建议定期对路由器进行备份,这样一旦出现问题重刷系统后也能通过备份文件快速恢复配置信息。

配套资源

本期配套资源下载:

123云盘:点击访问

百度网盘:点击访问

(部分素材来源于网络,如有侵权请联系作者删除)