MT7981B+GD5F1GM7UE路由器救砖
MickeyMikii
2024年06月30日 16:01

需要拆外壳

需要TTL适配器

不需要拆nand芯片

1、下载mtk_uartboot-v0.1.1-x86_64-pc-windows-msvc工具

https://www.cnblogs.com/p123/p/18046679

感谢蝈蝈大佬开发的 mtk_uartboot 工具

适用系列:MediaTek MT7622、MT7981、MT7986、MT7988 SoC

2、下载预编译的BL2镜像,链接在上述网页中:

详细的可阅读该网页内容。

感谢昵称为 暗云的网友!

3、 连接好TTL线,先断电。

输入如下命令:mtk_uartboot.exe -s COM4 -p mt7981-ddr4-bl2.bin -a -f uboot_ori2.bin

“COM4”更换为你的COM口;

“mt7981-ddr4-bl2.bin”是下载的预编译BL2二进制文件(注意是下载的)

“uboot_ori2.bin”是原机提取的uboot二进制文件(从网友提取备份的原机镜像中用HxD截取,该uboot支持nmbm、GigaDevice的闪存);

4、 确认文件放在执行文件目录中,准备好后按下回车,然后对设备上电。

等待执行结束且没有报错,画面如下。此时该工具已断开串口。

5、 此时打开串口调试工具,比如putty,打开串口,注意波特率为115200。

键盘按下Ctrl+C进入uboot命令行

6、 电脑上准备Tftp服务端,比如Tftpd64,开通防火墙端口,将电脑的IP地址设置为192.168.1.2(设备默认192.168.1.1),路由器网线插在LAN口上,确保电脑和路由器处于同一交换机上。

7、 准备BL2的flash镜像(从网友提取备份的原机镜像中用HxD截取,偏移地址0x0,长度为0x100000,内容以“SPINAND”字符串开头,另存为bl2.bin文件,放在Tftpd64.exe的目录中);

8、 准备原厂uboot镜像(从网友提取备份的原机镜像中用HxD截取,偏移地址0x380000,结束位置如下图,分界处为数据和0xFF之间,复制,粘贴为新文件,保存为uboot.bin,放在Tftpd64.exe的目录中)。

9、 在串口助手中输入

MT7981> tftpboot bl2.bin

BL2的二进制数据会被记录在内存0x46000000处。

10、        擦除NAND中原无效的数据

nmbm nmbm0 erase 0x0 0x100000

11、写入新BL2数据,注意长度是bl2的实际长度,可在上一步看到为0x3a2d4

nmbm nmbm0 write 0x46000000 0x0 0x3a2d4

显示Succeeded则成功。

12、类似地,输入tftpboot uboot.bin

把前文截取的uboot二进制数据从电脑下载到路由器的RAM中。

13、擦除uboot区域

nmbm nmbm0 erase 0x380000 (uboot的实际长度)

14、写入uboot数据

nmbm nmbm0 write 0x46000000 0x380000 (uboot的实际长度,我这里是0xc9e49)

15、对机器重新上电,我的机器如下图所示。(因为我的机器UBI有损坏,所以系统会反复重启)。