組み込みLinuxのOTAアップデート、パート2 –既成のアップデートシステムの比較
前回の記事では、組み込みLinuxアップデートシステムの基本と実装について説明しました。ここでは、今日の組み込みLinuxプロジェクトと統合するために利用できる既製のオープンソースアップデートシステムの選択について説明します。
メンダー
この更新システムは、非常にプロフェッショナルで、箱から出してすぐに使用できると感じています。これは、前の記事で説明したものと非常によく似たデュアルrootfs更新システムを使用しています。 U-Bootと緊密に統合されているため、起動していないイメージの場合にフォールバックできます。
さまざまなコンポーネントのセットアップと統合の方法に関する明確なステップバイステップのドキュメントがあるため、Menderの使用を開始するのは非常に簡単です。これらは、RaspberryPiやBeagleBoneBlackなどの一般的なプラットフォームでのリファレンス実装を提供します。これらは、プラットフォームで動作させるために必要な作業量についてのアイデアを提供します。
統合して機能するまでに約3日かかることがわかりました。私のYoctoビルドセットアップ(Mortyに基づく)で動作させるために多くの小さな変更がありました。これらの問題を回避するには、OpenEmbeddedの専門知識が必要です。デュアルブートメカニズムを正しく統合するには、U-Bootの専門知識が必要です。
この最後に、ブートローダーとファイルシステムを含む「sdimg」を出力します。これは、フラッシュメモリに何らかの方法で書き込む必要があります。これを行う方法は、ターゲットハードウェアによって異なります。また、新しいファイルシステムイメージとさまざまなメタデータを含む「アーティファクト」と呼ばれるものも出力します。
アーティファクトは、手動インストール用のMenderコマンドラインツールを介してインストールできます(理論的には、USBスティックからの自動インストールに拡張できます)。アーティファクトは、Webインターフェイスを介してバックエンド更新Webサービスにアップロードすることもでき、ここから個々のユニットにプッシュダウンできます。
バックエンド更新サーバーを制御するWebインターフェイスは、適切に設計されており、使いやすいです。セットアップはDockerを介して行われるため、初期セットアップは非常に簡単です。完全な本番環境に対応したシステムでは、Dockerの専門知識が必要になります。このWebインターフェイスから、フィールドに現在展開されているすべてのデバイスを確認し、それらに個別にまたはグループで更新をプッシュできます。
クリックして大きな画像を表示
図1:Menderには、デバイスに更新をプッシュするための特注のWebインターフェイスが含まれています(出典:Mender)
Menderの大部分はGoプログラミング言語で書かれています。長期的な採用と製品リリースには、Goに関するある程度の専門知識が必要になります。これは組み込みの世界ではまだ珍しい言語ですが、将来さらに広く使用されるようになる可能性があります。
ハードコードされた単一のブートデバイス(例:/ dev / mmcblk0)に関連付けられているため、複数のメディアからのブートを許可する簡単な方法はありません。また、ブートローダーやカーネルのさまざまなオプションなど、システムについて多くの仮定を行います(たとえば、特定のファイルシステムのサポートを含む)。重要なのは、systemdが必要なため、一部のプロジェクトに適さなくなる可能性があることです。
SWUpdate
この更新システムは高度に構成可能です。ほとんどの組み込みLinux開発者に馴染みのある「kconfig」システムを使用して構成します。構成オプションのいくつかの例については、いくつかのブートローダー(U-Boot、GRUB、EFI Boot Guard)をサポートしています。特定の公開鍵に基づいて、署名された画像に署名して検証できます。対称鍵暗号化を使用した画像の暗号化をサポートできます。
図2:SWUpdateの構成システム(出典:SWUpdate)
埋め込み
- 組織に最適なAWSコンテナオーケストレーションプラットフォームはどれですか?
- デバッグとは:組み込みシステムのタイプとテクニック
- 自動車における組み込みシステムの役割
- 組み込みシステムとそのリアルタイムアプリケーションとは
- マイクロコントローラと組み込みシステムのIC技術に関する簡単な説明
- 自動車用マイクロコントローラ用のSTサンプリング組み込み相変化メモリ
- Cervoz:産業用組み込みアプリケーション向けの超薄型NVMeストレージ
- ロボットシステムのモーター制御の設計
- Windows、Linux、Mac 向けの 10 の最高の C# IDE (2021 年更新)
- モジュラー設計のための組み込み技術の利点
- 3D ビジョン システム – あなたにぴったりのシステムは?