RTD1619救砖

2021/03/01
Read this page in a different language:

目前只提供Z9X的救砖教程

作者本人并没有Z9X,这个教程是在帮助坛友救Z9X砖过程中形成的

有问题请到github反馈

术语解释

术语 释义
目标机 需要被刷机的设备,这里是指你的盒子
宿主机 执行交互的设备,也就是你在用的PC机

TTL/UART救砖

首先需要连接UART。 这是坛友 Markswift2003 提供的照片: Z9X UART链接

恢复FWTABLE签名

如果强刷过程卡死,很可能只是破坏了fwtable(功能类似分区表)签名,导致无法再刷机,这时只要恢复fwtable签名就行了。

  1. 目标机关机

  2. UART连接好以后,在终端按住ESC键并开机,直到终端显示*** ESC Pressed *** (可能不是最后显示)或者终端不再滚动时再松开ESC键,这时按几次回车键应该会显示Realtek>

  3. 终端执行help会显示所有支持的命令,确认下其中是否包含rtkemmcdwmw这几个命令,如果没有说明版本不一样,不要继续了

  4. 终端执行rtkemmc read 0x03000000 20744 512,这一步把fwtable的头读到内存里,成功的话没什么输出

  5. 终端执行dw 0x03000000 8。如果显示43534552 5f5f4555,那么继续下一步;如果显示4f524556 5f5f414e,则说明fwtable签名未损坏,不需要继续了,尝试UART+U盘刷机;如果两者都不是,那就不知道咋回事了,也不要再继续后面的步骤了。

  6. 终端执行mw 0x03000000 0x4f524556

  7. 终端执行mw 0x03000004 0x5f5f414e

  8. 终端执行dw 0x03000000 8。这时应该要显示4f524556 5f5f414e才对

  9. 终端执行rtkemmc write 0x03000000 20744 512,这一步是把fwtable的头写回到emmc中,成功的话没什么输出

  10. 关机

fwtable签名已经恢复了,现在可以按照官方的强刷教程刷机,如果还是无法进入刷机那就尝试UART+U盘刷机

UART+U盘刷机

通常可以用这个方法恢复固件,除非uBoot坏了。

准备一个2GB以上的U盘,如果不是FAT32格式则格式化成FAT32。

如果你能走到这一步,肯定已经尝试过官方的强刷教程了( Z9X ),相信你已经有install.img。 将install.img放到U盘根目录。

下载 z9x_flash_rescue.zip,并解压到U盘根目录。

确认下U盘根目录现在至少应该有这些文件:

  • z9x_flash_rescue.bin
  • install.img

这样U盘就准备好了。

刷机过程:

  1. 目标机关机,把U盘插上目标机

  2. UART连接好以后,在终端按住ESC键并开机,直到终端显示*** ESC Pressed *** (可能不是最后显示)或者终端不再滚动时再松开ESC键,这时按几次回车键应该会显示Realtek>,这表示进入了uBoot控制台

  3. 终端执行help会显示所有支持的命令,确认下其中是否包含usbfatloadboot这几个命令,如果没有说明uBoot版本不一样,不要继续了,请尝试下一个方案

  4. 终端执行usb start,这一步启用USB并扫描设备,需要几秒钟,完成后会显示Realtek>。看看前面的输出中有没有出现Storage Device(s) found 字眼,如果没有,那就换个USB插槽,重新执行这一步

  5. 终端执行fatload usb 0:1 0x20000000 z9x_flash_rescue.bin,如果有报错,把0:1分别改成0:20:30:4等再试试,取决于U盘的分区

  6. 终端执行rtkemmc write 0x20000000 20744 172032000,这一步是把刷机环境写到emmc中,可能需要一点时间

  7. 终端执行rtkemmc erase 7704968 7737736,这一步清除开机LOGO的数据,以免校验失败

  8. 终端执行boot r,不出意外的话,很快就开始刷机了。如果刷机失败,可以按官方的教程再试一次

UART+TFTP+U盘刷机

通常可以用这个方法恢复固件,除非uBoot坏了。

请先尝试 “UART+U盘刷机” 方案,如果不行再尝试这个方案。

这个方案需要:

  • U盘
  • 网线(用于目标机访问TFTP)

如果 “UART+U盘刷机” 方案中uBoot不支持usb或者fatload命令,但是支持net命令,并且执行net命令有出现tftp,这时可以采用tftp加载刷机环境。

准备一个2GB以上的U盘,如果不是FAT32格式则格式化成FAT32。

将前面提到的install.img复制U盘根目录,这样U盘就准备好了。

准备一个TFTP服务器,也可以在宿主机上部署TFTP服务,Windows用户参考这个,Mac用户参考这个

下载 z9x_flash_rescue.zip,并解压到TFTP根目录。确认TFTP根目录有z9x_flash_rescue.bin

这样TFTP服务也准备好了。

刷机过程:

  1. 目标机关机,把U盘插上目标机,用网线将目标机连接到能访问TFTP服务器的网络中(如果TFTP服务器在内网则跟TFTP服务器同一个交换机或者同一个路由器的LAN网络)

  2. UART连接好以后,在终端按住ESC键并开机,直到终端显示*** ESC Pressed *** (可能不是最后显示)或者终端不再滚动时再松开ESC键,这时按几次回车键应该会显示Realtek>,这表示进入了uBoot控制台

  3. 终端执行help会显示所有支持的命令,确认下其中是否包含netboot这两个命令,如果没有说明uBoot版本不一样,看下本节后面的PS

  4. 配置目标机网络。首先尝试DHCP自动配置,终端执行net dhcp_client,应该会输出DHCP client start,等待几秒钟,如果有输出netif en ip ...,那就进入下一步;如果没有任何输出,那么手动配置网络,执行net ifconfig <IP地址> <掩码> 0.0.0.0,注意把<IP地址><掩码>换成合适的值(如果TFTP服务器在内网则只要跟TFTP服务器同一个网段就行)(如果你的TFTP服务在外网,则需要把0.0.0.0换成真正的网关地址,通常是路由器的IP)

  5. 终端执行net ping <TFTP服务器IP>(把<TFTP服务器IP>换成TFTP服务器的IP),如果网络配置没问题的话,会输出多个ping: send ...ping: recv ...,当不再输出时按一下回车回到控制台。如果没有输出ping: recv ...,应该是网络配置有问题,请自行解决。

  6. 终端执行env set tftpblocksize 1468; net tftp 0x20000000 <TFTP服务器IP> z9x_flash_rescue.bin(把<TFTP服务器IP>换成TFTP服务器的IP)。如果出现卡死的现象,可能是TFTP服务有问题,或者防火墙拦截了TFTP通讯,排除这些问题以后需要从第一步重新开始。

  7. 终端执行rtkemmc write 0x20000000 20744 172032000,这一步是把刷机环境写到flash中

  8. 终端执行rtkemmc erase 7704968 7737736,这一步清除开机LOGO的数据,以免校验失败

  9. 终端执行boot r,不出意外的话,很快就开始刷机了。如果刷机失败,可以按官方的教程再试一次

PS: 某些版本的uBoot没有net命令,但是有tftp命令,第3到6步可以换成执行:

   env set ipaddr <IP地址>
   env set serverip <TFTP服务器IP>
   env set tftpblocksize 1468
   tftp 0x20000000 z9x_flash_rescue.bin

PPS: 某些版本的uBoot没有boot命令,但是有go命令,则boot all可以换成go all

附件:

Post Directory