2015-10-19 20 views
2

我有一个u-boot,它将多图像(Linux内核+ rootfs + dts)从串行FLASH复制到DDR。该设备是远程供电的。该设备需要故障安全远程固件升级,可以在电源故障后继续使用我总是在FLASH上保留两张图片。当我向FLASH写入新的固件时,FLASH上总是会有另一个较旧的固件映像。启动后启动U-boot应启动最新的固件。用于选择最新映像的U-Boot脚本

引导时间很重要,但并不重要。例如,我想让u-boot引导第一个“有效”的图像。 Linux应用程序将决定是否需要重新引导并修改u-boot环境。

我可以修补u-boot - 添加一个在FLASH上找到最新固件的命令。我希望有人已经解决了这个问题,可能比我更好。是否有u-boot的补丁/脚本允许自动选择基于某些元数据的最新固件?

该问题的其他方法?

+0

*“我总是在FLASH上保留两张图像”* - 通过将内核和dtb图像作为文件存储在rootfs的**/boot **目录中,我可以改进该方案。然后你就可以获得闪存的耐磨级,更新对以前的版本没有破坏性,并且可以有不止两个版本。电源故障的漏洞可以简化为几个重命名操作,而不是整个更新过程。 – sawdust

+0

@sawdust这是一个很棒的建议。谢谢! – Larytet

回答

1

是的。 使用Uboot的​​功能。 它增加每次启动重试。并且应该在内核启动后由文件系统上的应用程序清除。 如果达到某个阈值。您可以从uboot启动另一个映像。