Skip to content

RTD129X救砖

练亮斌 edited this page May 29, 2021 · 8 revisions

术语解释

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

TTL/UART救砖

首先需要连接UART。(如果是Z9S/Z10可以参考这里

恢复FWTABLE签名

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

  1. 目标机关机

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

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

  4. 终端执行rtkemmc read 0x03000000 12544 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 12544 512,这一步是把fwtable的头写回到emmc中,成功的话没什么输出

  10. 关机

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

UART+U盘刷机

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

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

如果你能走到这一步,肯定已经尝试过官方的强刷教程了( 例如 X9SZ9S ),相信你已经有install.imginstall.img实际是一个TAR打包文件,解开它并把其中的bluecore.audioemmc.uImagerescue.emmc.dtbrescue.root.emmc.cpio.gz_pad.img复制到U盘根目录,将install.img也放到U盘根目录。

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

  • bluecore.audio
  • emmc.uImage
  • rescue.emmc.dtb
  • rescue.root.emmc.cpio.gz_pad.img
  • 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 0x01b00000 bluecore.audio
    fatload usb 0:1 0x03000000 emmc.uImage
    fatload usb 0:1 0x02100000 rescue.emmc.dtb
    fatload usb 0:1 0x02200000 rescue.root.emmc.cpio.gz_pad.img

    如果有报错,把0:1分别改成0:20:30:4等再试试,取决于U盘的分区

  6. 终端执行boot all,不出意外的话,很快就开始刷机了。

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用户参考这个

解开install.img并把其中的这些文件复制到TFTP根目录:

  • bluecore.audio
  • emmc.uImage
  • rescue.emmc.dtb
  • rescue.root.emmc.cpio.gz_pad.img

这样TFTP服务也准备好了。

刷机过程:

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

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

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

  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. 终端一步一步执行以下命令(把<TFTP服务器IP>换成TFTP服务器的IP):

    net tftp 0x01b00000 <TFTP服务器IP> bluecore.audio
    net tftp 0x03000000 <TFTP服务器IP> emmc.uImage
    net tftp 0x02100000 <TFTP服务器IP> rescue.emmc.dtb
    net tftp 0x02200000 <TFTP服务器IP> rescue.root.emmc.cpio.gz_pad.img

    如果出现卡死的现象,可能是TFTP服务有问题,或者防火墙拦截了TFTP通讯,排除这些问题以后需要从第一步重新开始。

  7. 终端执行boot all,不出意外的话,很快就开始刷机了。

UART刷UBOOT

如果前面的方案连Realtek>都不显示,要么你插反了TX/RX,要么uBoot已经坏了。如果之前只是按照官方的教程刷机或者OTA一般不会导致uBoot坏掉。

刷uBoot请参考 https://bbs.nas66.com/thread-5553-1-1.html

需要注意的是,教程中提到的dvrboot.exe.binhwsetting.config都不是唯一的,不同设备,不同功能都可能不是用同一个dvrboot.exe.bin

这里提供从Z9S中提取的相关文件:

USB线刷

参考

附件: