kernel - uBoot - 压缩数据错误 - Synology DS418J
问题描述
我买了损坏的 Synology DS418j,其中硬盘迁移破坏了闪存上的固件。使用串行 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
以下是 Synology 的 ZIP 文件的内容:
这是来自 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环境并强制固件升级来修复这个单元。
如果您需要更多信息,请告诉我。
解决方案
好的,它又可以工作了 =) 我复制了我工作中的 DS418J 的转储并将其编程到砖块的 DS 中。
更改序列号和 MAC 后,设备再次工作。
推荐阅读
- r - 从数据框中不明确的列中仅提取年份
- html - Textarea Autosize 在 iPhone 上无法与 RTL 波斯值一起正常工作
- c# - AddScoped:如何调用正确的构造函数?
- c++ - 在 C++ 中调用多重继承的比较运算符的不同行为
- .net-core - Net core 3.1 SAML2 Web-sso,需要帮助/工作示例代码
- android - 如何在flutter中获取自己的热点IP地址
- c# - 如何在碰撞解决方案中对推出向量进行排序?
- scheme - 我将如何编写一个采用列表并返回通过切换列表中的连续元素创建的列表的 Scheme 过程?
- c++ - Node 中的 C++ WebAssembly:instance.sum 不是函数
- grpc - grpc 如何允许客户端和服务器语言之间的不同版本