SWUpdateは、デバイス上で実行されるプログラムで、
ネットワーク/ストレージ経由でデバイスのソフトウェアを更新することができます。
Stefano Babic, DENX software engineering, Germany
によってオープンソースで開発が進められています。
Armadillo-IoT ゲートウェイ G4では、
SWUpdateを利用することで次のような機能を実現しています。
-
A/Bアップデート(アップデートの2面化)
-
リカバリーモード
-
ソフトウェアの圧縮、暗号化、署名付与
-
Web サーバー機能
-
hawkBit への対応
-
ダウングレードの禁止
swuパッケージは、SWUpdate独自のソフトウェアの配布フォーマットです。
SWUpdateでは、1回のアップデートは1つのswuパッケージで行われます。
swuパッケージには、次のような様々なものを含めることができます。
-
アップデート対象のイメージファイル
-
アップデート対象のイメージファイルのチェックサム
-
アップデート前後に実行するスクリプト
-
書き込み先ストレージの情報
-
U-Boot 環境変数の書き換え情報
-
ソフトウェアのバージョン情報
-
etc…
13.1.3. A/Bアップデート(アップデートの2面化)
A/Bアップデートは、
Flash メモリにパーティションを2面確保し、
アップデート時には交互に利用する仕組みです。
常に使用していない方のパーティションを書き換えるため次の特徴を持ちます。
-
○ アップデートによって動作中のソフトウェアは破壊されない
-
○ 書き込みが電源断などで中断後しても、すぐに復帰出来る
-
○ 機器が動作中に書き込みが出来る
-
× 使用Flashメモリ量が増える
リカバリーモードは、
不測の事態によりシステムが起動できなくなった際に、
A/Bアップデートの仕組みとは別のリカバリー用のシステムが起動するモードです。
万が一、システムが起動できなくなったとしても、
ネットワーク経由でのシステム復旧が可能です。