Raspberry Pi 4で組込みLinuxを使って最新を維持する方法

Jan 23, 2023 Linux

Swetaa Suresh

はじめに

組込みシステムは、アップデートの必要なしに長期間稼働するよう設計されていますが、インテリジェントエッジの一部として接続されているものについては、定期的にアップデートが必要な場合があります。組込みシステムのイメージをアップデートするユースケースの一例として、IoTデバイスやホームオートメーションシステムなどの組込みLinuxベースのデバイスメーカーがあります。メーカーは、デバイス上で動作するオペレーティングシステムとアプリケーションの定期的なアップデートをリリースし、パフォーマンスの向上、新機能の追加、または発見されたセキュリティ脆弱性の修正を行います。また、お客様がこれらのアップデートを簡単にデバイスに適用できる仕組みを提供したり、新しいデバイスの製造プロセスの一部としてアップデートしたりすることもあります。そのためには、要件に合ったオペレーティングシステムを選択することが重要です。商用のサポート付き組込みOSは、自社で開発者が構築・保守するのに比べて、コスト効率を高くできます。

Ubuntu Coreは、IoT(Internet of Things)機器などの組込みシステムでの利用を想定したUbuntu Linuxオペレーティングシステムの1つ です。 IoTデバイスの実行に必要な必須コンポーネントとサービスのみを含む軽量かつ最小バージョンのUbuntuで、高い安全性と効率性を実現します。 Ubuntu Coreは、さまざまなセキュリティや管理機能を備え、ソフトウェアのパッケージングやシステムのデプロイメントに使用される独自技術「snaps」(システムコンテナ用の圧縮アプリケーション)によるカスタマイズを提供します。その汎用性、セキュリティ、使いやすさから、開発者に人気のある製品です。

Wind River Linuxは、ネットワーク機器、産業用制御システム、航空宇宙・防衛テクノロジーに見られる組込みシステムで使用するために設計された商用Linuxベースのオペレーティングシステムです。 Wind River Linux Distroは、市場をリードするWind River Linuxを使用した、一般的なコミュニティ主導のYocto Projectベースのバイナリディストリビューションです。Raspberry Pi 4をサポートしています。 Wind River Linux Distroのシステムアップデートをインストールするには、OSファイルのデプロイとアップデートを管理するオープンソーステクノロジーである、OSTreeが必要です。 OSTreeとは、オペレーティングシステムを構成するファイルの集合体であるオペレーティングシステムツリーの作成、展開、およびライフサイクル管理を行うためのツールです。 また、OSTreeは、複数のバージョンのオペレーティングシステムツリーを保存、管理することができ、オペレーティングシステムのアトミックなトランザクションアップデートを可能にし、複数のLinuxベースのオペレーティングシステムで使用されています。

目的

どちらのプラットフォームで、デプロイ後のメンテナンスがより容易かを判断するために、Raspberry Pi 4上のWind River Linux DistroとUbuntu Coreの両方でイメージアップデートを比較したいと思います。両プラットフォームの使用感に注目して、イメージとアップデートパッケージをカスタマイズしてみます。

使用した機材とプログラム

・Raspberry Pi Imager Raspberry Pi OS - Raspberry Pi - ストレージ(SDカード)にイメージをフラッシュするために使用

・Raspberry Pi 4 (RPi4)

・Micro HDMI ポート

・USB-C 電源

Wind River LinuxのDistro Imageのアップデート

1. Wind River Linux Distroのバイナリイメージが起動していること、rootでログインしていることを確認します。

2. OSTree アップグレードラッパースクリプトを実行し、システムをアップグレードし、以下のコマンドを実行します

3. システムを再起動し、イメージに再ログインします。

4. イメージのロックを解除します。イメージのロックを解除するために、以下を実行します。

5. DNFでパッケージのインストール、アップデート、削除をします。

* アップデートするには、パッケージフィードの変更をすぐに確認できるよう、キャッシュを明示的に更新する必要があります。

Ubuntuコアイメージのアップデート

1. Ubuntu Core イメージをアップデートするための最初のステップは、モデルアサーションを使用することです。入力は多くの場合、JSON 形式で行われます。

2. アサーションの設定をするには、snapcraftをインストールし、ログインする必要があります。

3. モデルのアサーション作成には開発者IDが必要です。

4. snapをサポートするLinuxシステム上にイメージをインストールする必要があります

5. イメージファイルそのものを出力するには、以下のスクリプトを実行します。

6. snapを実行するには、以下のスクリプトを使用します。

比較

Wind River LinuxとUbuntu Coreは、いずれもネットワーク機器、産業用制御システム、IoTデバイスなどに搭載される組込みシステム向けに設計されたLinuxベースのオペレーティングシステムです。両OSは、リアルタイム性、高度なセキュリティおよび信頼性などを必要とするアプリケーションに適した、さまざまな機能と性能を備えています。

大きな違いは、Wind River Linuxは、カスタマイズ可能なカーネルと特定のニーズに合わせてOSを設定するためのさまざまなオプションを備えており、高度な設定が可能なように設計されていることです。一方、Ubuntu Coreは、Snap Storeを使用して簡単にパッケージを追加、インストールすることができます。また、シンプルさとセキュリティに重点を置き、最小限のデザインでオペレーティングシステムとその上で動作するアプリケーションが常に最新で安全であることを保証するためのさまざまな機能を備えています。これは、2つのオペレーティングシステムのイメージアップデートとに使用される特定のツールやプロセスに影響を与えます。例えば、Wind River LinuxにはOSイメージの管理とデプロイのためのより高度なツールが含まれており、Ubuntu Coreはアップデートのための安全で使いやすいシステムを提供することに重点を置いています。

もう一つの違いは、Wind River Linux DistroはWind River Systemsが開発した商用OSであり、Ubuntu CoreはCanonicalが開発した人気の高いUbuntu Linuxディストリビューションのバージョンであることです。つまり、Wind River Linux Distroの新しいイメージの作成とデプロイのためのツールやプロセスは、Ubuntu Coreのそれとは若干異なる可能性があります。 Wind River Linuxは、商用ユーザー向けのツールやサービスの提供に重点を置いていますが、Ubuntu Coreには、OSイメージの共同作業やパブリックコミュニティとの共有のためのツールが含まれています。

まとめると、Wind River LinuxとUbuntu Coreの両方は、組込みシステムで使用可能なオプションですが、それぞれで固有の 機能や性能によって 、特定のタイプのアプリケーションや環境に対しては、どちらかのOSが より良い選択肢となるでしょう。カスタマイズ性と長期サポートを重要視するならば、Wind River Linux Distroが適切でしょう。一方、Ubuntu Coreは、シンプルさと最小限のリスクを重要視した場合に適しています。どのオペレーティングシステムを使用するかを判断する前に、プロジェクトの具体的なニーズと要件を慎重に評価することが重要です。

Swetaa Sureshについて
Swetaa Sureshは、ウインドリバーのプロダクトGo-to-Marketインターンとして、マーケティングおよびセールスチーム向けの製品発売計画の支援や、市場調査、競合分析に携わっています。ウォータールー大学で経営工学の学士号を取得予定です。テクノロジーとビジネスの関係性に関心をもっています。