问题描述
我购买了损坏的 Synology DS418j,其中 HDD 迁移破坏了闪存上的固件。使用串行 USB 适配器,我可以访问 uBoot 控制台。这个 uBoot 版本只有基本的命令。
为了恢复“正确”的固件,我从 Synology 下载了固件包并解压了里面的数据。我通常需要两个文件“zImage”(内核)和“rd.bin”(RAMdisk)。 https://global.download.synology.com/download/DSM/release/6.2.2/24922/DSM_DS418j_24922.pat?model=DS418j&bays=4&dsm_version=6.2.2&build_number=24922
这是来自 uBoot 的 ENV 打印:
我可以通过命令 tftp [addr] [filename]
从我的 tftp 服务器加载这些图像,并使用命令 bootm [addr]
引导这些文件。但这是我的问题:当我启动不同的图像时,出现错误:
Realtek> bootm 0x01500000
bootm 0x01500000
## Booting kernel from FIT Image at 01500000 ...
Bad FIT kernel image format!
ERROR: can't get kernel image!
也许有人可以帮助加载内核和 ramdisk,这样我就可以启动到 Synology 环境并强制固件升级来修复此设备。
如果您需要更多信息,请告诉我。
解决方法
小更新。我已经用由 UBOOT + KERNEL + RAMDISK + Vendor + uBoot Config 和 FIS_directory 组成的转储重写了 EEPROM。
供应商、uBoot 配置和 FIS_directory 是原始的。
现在的问题是,我收到以下错误:
U-Boot 2015.07-g428cfe7-dirty (May 16 2018 - 10:33:51 +0800)
CPU : Cortex-A53 Quad Core
Board: Realtek QA Board
DRAM: 1 GiB
mapping memory 0x20000000-0x40000000 non-cached
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
rtk_plat_set_fw not port yet,use default configs
Not raw Image,Starting Decompress Image.gz...
Error: Bad gzipped data
Decompress FAIL!!
ERROR do_booti failed!
Realtek>
现在可以正确闪烁 Image.gz 什么? Image.gz 是内存盘吗? 如何在 flash 中找到正确的地址?
,好的,它又起作用了 =) 我复制了我正在使用的 DS418J 的转储并将其编程到砖砌的 DS 中。
更改序列号和 MAC 后,设备再次工作。