32blogby StudioMitsu
yocto10 min read

SWUpdate vs Mender vs RAUC:YoctoのOTA更新ツール徹底比較

Yocto Scarthgap対応のOTA更新ツール3種(SWUpdate・Mender・RAUC)を、アーキテクチャ・ライセンス・Yocto統合の観点から比較する。

yoctoembedded-linuxotaswupdatemenderraucscarthgap
目次

組み込みLinux製品にOTA(Over-The-Air)更新が必要な時代になった。セキュリティパッチの適用、EU CRAの脆弱性対応義務、フィールドでのバグ修正——出荷後にソフトウェアを更新できない製品は、もはやリスクだ。

Yoctoエコシステムで実績のあるOSSのOTA更新ツールは3つ。SWUpdateMenderRAUC だ。この記事では、3ツールをアーキテクチャ・ライセンス・Yocto統合の観点から比較し、プロジェクトに合った選択を助ける。

なぜOTA更新が必須になっているか

組み込み機器のOTA更新は「あると便利」から「必須」に変わりつつある。

セキュリティ: CVEは毎日公開される。フィールドの機器にパッチを当てる手段がなければ、脆弱性が放置される。SBOM/CVE管理でCVEを検出しても、更新手段がなければ意味がない。

規制: EU CRAは2027年から、製品のセキュリティ更新能力を求める。FDAは医療機器のソフトウェア更新計画を審査する。

コスト: 物理的な回収・再書き込みは、OTA更新の数百倍のコストがかかる。

この3ツールはいずれもA/Bパーティション方式(デュアルコピー)をサポートし、更新失敗時に自動ロールバックできる。これが手動書き込みとの最大の違いだ。

3ツール早見表

項目SWUpdateMenderRAUC
ライセンスGPL-2.0Apache-2.0(クライアント)LGPL-2.1
最新バージョン2025.125.0.4v1.15.1
実装言語CGo / C++C (GLib)
更新形式.swu(cpioアーカイブ).mender(Artifact).raucb(バンドル)
サーバーhawkBit(OSS)Mender Server(OSS/SaaS)なし(自前構築)
デルタ更新OSS(rdiff)Enterprise限定OSS(casync)
署名オプションオプション必須
Scarthgap対応meta-swupdatemeta-mendermeta-rauc
フットプリント最小

アーキテクチャ比較

SWUpdate — 柔軟性重視

SWUpdateは「何でもできる」タイプのツールだ。

更新の仕組み: .swu ファイル(cpio形式)をストリーミング処理する。先頭の sw-description ファイルに更新手順が記述されており、ハンドラが各コンポーネントを処理する。

強み:

  • Luaスクリプトでカスタムハンドラを書ける(FPGA、MCUファーム、個別ファイルなど)
  • hawkBitサーバー(Eclipse IoT)との連携が組み込み済み(Suricattaデーモン)
  • イメージ更新だけでなく、個別ファイル更新にも対応
  • デルタ更新がOSS(rdiffハンドラ)

弱み:

  • 設定の自由度が高い分、初期構築の学習コストが高い
  • sw-description の記法に独自形式(libconfig)を使う
  • サーバーサイドは自分で構築する必要がある(hawkBitは別プロジェクト)

Mender — SaaS一体型

Menderはクライアントとサーバーが一体設計されたツールだ。

更新の仕組み: .mender Artifact形式を使い、A/Bパーティションにイメージを書き込む。4パーティション構成(boot / rootfs-A / rootfs-B / data)が標準。

強み:

  • Hosted Mender(SaaS)を使えば、サーバー構築なしで即座にOTA環境が手に入る
  • Web UIでデバイス管理・更新配信・ログ確認が完結する
  • Update Modulesで.deb/.rpm/Docker/単一ファイルなどの更新にも対応
  • ドキュメントが充実しており、チュートリアルが手厚い

弱み:

  • デルタ更新はEnterprise/Professionalプランのみ(OSSでは使えない)
  • 4パーティション固定レイアウトの制約がある
  • Go実装のため、他の2ツールよりフットプリントが大きい
  • SaaS利用は月額$34〜(50デバイス Basic)。大規模運用はEnterprise(要問い合わせ)

RAUC — セキュリティ重視・最軽量

RAUCは署名を設計の中心に据えたツールだ。Steam Deckでも採用されている。

更新の仕組み: .raucb バンドル(squashfs形式)をD-Bus経由でインストールする。署名検証は必須であり、署名なしのバンドルは受け付けない設計だ。

強み:

  • 署名が必須なので、セキュリティが設計レベルで保証される
  • フットプリントが3ツール中最小
  • D-Bus + systemd との統合が深い
  • Adaptive Updates(v1.8〜)でOSSのデルタ更新に対応
  • LGPL-2.1なので、プロプライエタリ製品に組み込みやすい

弱み:

  • 公式の管理サーバーがない。サーバーサイドは自前で構築する
  • Web UIやデバイス管理ダッシュボードがない
  • 個別ファイル更新はイメージベースほどスムーズではない
  • 日本語の情報が少ない

Yocto統合の実際

3ツールそれぞれの、Scarthgapでの統合手順を比較する。

SWUpdate + meta-swupdate

bash
# bblayers.conf
BBLAYERS += "/path/to/meta-swupdate"

# conf/local.conf
IMAGE_INSTALL:append = " swupdate"

sw-description ファイルと更新イメージの構成を自分で定義する。柔軟だが、最初のセットアップに時間がかかる。

hawkBitサーバーとの連携を有効にする場合:

bash
# conf/local.conf
IMAGE_INSTALL:append = " swupdate-www"
SRC_URI:append:pn-swupdate = " file://defconfig"

Mender + meta-mender

bash
# bblayers.conf
BBLAYERS += "/path/to/meta-mender/meta-mender-core"

# conf/local.conf
INHERIT += "mender-full"
MENDER_ARTIFACT_NAME = "release-1.0"

INHERIT += "mender-full" を追加するだけで、パーティションレイアウト・ブートローダー統合・クライアントインストールが一括で設定される。Hosted Menderとの接続にはテナントトークンが必要。

RAUC + meta-rauc

bash
# bblayers.conf
BBLAYERS += "/path/to/meta-rauc"

# conf/local.conf
IMAGE_INSTALL:append = " rauc"

Scarthgapでは、プラットフォーム設定(system.conf、キーリングなど)が rauc-conf.bb レシピに分離された。bbappendを使って自分のシステム設定を上書きするのが標準的なやり方だ。

bash
# system.conf の設定例
[system]
compatible=my-product
bootloader=uboot

[slot.rootfs.0]
device=/dev/mmcblk0p2
type=ext4

[slot.rootfs.1]
device=/dev/mmcblk0p3
type=ext4

どのツールを選ぶべきか

プロジェクトの条件に応じた選択フローを示す。

ライセンスで絞る

条件推奨
プロプライエタリ製品に組み込むRAUC(LGPL-2.1)またはMender(Apache-2.0)
GPL汚染を避けたいRAUC > Mender > SWUpdate
ライセンスは問題にならない3ツールとも候補

SWUpdateはGPL-2.0だ。ツール自体をリンクしない限り問題にはならないが、法務部門の判断が必要な場合がある。

サーバー要件で絞る

条件推奨
サーバー構築の余裕がないMender(Hosted Mender)
既存のhawkBitを使いたいSWUpdate
サーバーは自前で構築できるRAUC / SWUpdate
サーバー不要(USBやローカル配信)3ツールとも可能

チーム・製品特性で絞る

条件推奨
とにかく早くOTAを導入したいMender(SaaS + ドキュメント充実)
セキュリティが最優先RAUC(署名必須設計)
FPGA/MCUなど多様なコンポーネントを更新SWUpdate(Luaハンドラ)
フットプリントを最小化したいRAUC
デルタ更新をOSSで使いたいSWUpdate(rdiff)/ RAUC(casync)
Web UIでデバイス管理したいMender

まとめ

3ツールの特徴を一言でまとめると:

ツール一言で向いているチーム
SWUpdate柔軟な万能型カスタム要件が多い・hawkBitを使いたい
MenderSaaS一体型早く導入したい・サーバー運用を避けたい
RAUC軽量・署名必須セキュリティ重視・フットプリント最小化

3ツールともYocto Scarthgapで成熟しており、「どれを選んでも大きな間違いはない」レベルだ。差がつくのはライセンス、サーバー要件、チームの得意分野。

OTAの導入は、SBOM/CVE管理と組み合わせることで真価を発揮する。CVEを検出し、パッチを作り、OTAでフィールドに配信する——この一連のフローが、これからの組み込み製品の標準になる。

PRMastering Embedded Linux Development 4th Ed (2024)Amazonで見る
PREmbedded Linux Development Using Yocto Project 3rd Ed (2023)Amazonで見る
PRYocto Project Customization for Linux (Apress, 2025)Amazonで見る