[OTA] 基于swupdate的OTA系统更新解决方案

1. OTA更新方案简介

OTA系统更新 = OTA下载 + 系统更新
OTA下载:比较容易,也比较灵活,ftp,http, web,samba 下载都可以,也可以接入第三方OTA 下载程序。
系统更新:这个比较有难度,当前来看系统更新的方案有recovery 更新,和 A/B系统方案。两者各有优缺点,根据实际需求选择。

2. 基于swupdate 的recovery 实现

swupdate 是一个比较著名的用于嵌入式的OTA解决方案。常见OTA 解决方案有OTA recovery 方案 和 OTA A/B系统解决方案。
通过对swupdate 的源码进行研究,得出一下结论:

  1. swupdate 似乎更倾向于使用者将其用于OTA A/B系统解决方案。
  2. swupdate 除了web GUI 外,没有成熟的本地GUI用于显示OTA update 的信息(尽管有lua写的gui,但感觉可移植性不是很好,跑起来一直有错误)。
  3. 本地系统更新,更倾向于从U盘更新系统,如果本地已经存在了OTA包,对OTA 包的更新将会很浪费系统空间。
  4. swupdate 不支持recovery 模式的系统更新。
  5. 显示进度的client 程序和server 发布进度的同步逻辑存在一些bug,导致进度显示存在异常。

为了让swupdate 支持recovery模式 和修正以上的问题,我对原有的swupdate做了一些改进和修正,现将源码开源于GitHub。
yocto 整合可参考meta-yocto

你可能感兴趣的:(嵌入式移植专栏,armlinux,uboot,swupdate,OTA,recovery)