linux - 用于选择最新镜像的 U-Boot 脚本

标签 linux flash embedded-linux u-boot

我有一个 u-boot,它可以将一个多镜像(Linux 内核+rootfs+dts)从串行闪存复制到 DDR。该设备是远程供电的。该设备需要故障安全远程固件升级,它可以在电源故障时幸存下来。我总是在 FLASH 上保存两张图片。当我将新固件写入闪存时,闪存上总会有另一个较旧的固件镜像。上电后的 U-boot 将启动最新的固件。

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

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

还有其他解决问题的方法吗?

最佳答案

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

关于linux - 用于选择最新镜像的 U-Boot 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33209475/

相关文章:

linux - 在内核模块中获取文件系统挂载点

linux - G-WAN 和 Amazon EC2 错误

javascript - 在服务器端截取 Flash 游戏/动画的屏幕截图? (或者客户端?)

C#:在没有临时文件的情况下将嵌入式 swf 加载到 flash activex

c - 为什么拔掉 USB 线后 select 返回?

linux - Linux(Ubuntu 服务器)上带有 Apache 的 Lua 错误?

linux - 解压目录和子目录中的所有 .gz

javascript - 使用 javascript 播放完 youtube flash 视频后捕获事件

c - 如何在设备驱动程序编程中添加用户空间头?

linux - dbus启动错误!通过 NFS 启动 ARM Linux 时