はじめに
組込みソフトウェア開発者は、新しいアプリケーションやプロジェクトを開発するために、信頼できるプラットフォーム(ハードウェアとオペレーティングシステム)を常に探しています。ハードウェアの選択において、Raspberry Piは多くの理由から魅力的な選択肢となりえます。Raspberry Piは、安価で多様な使い方ができるため、組込みコンピューティングの初心者にとって最適な選択肢となります。また、アプリケーションの開発だけでなく、製品プロトタイプのような本格的なエンジニアリングプロジェクトにも対応可能です。インテリジェントエッジの普及に伴い、ハードウェアリソースの制限は、ネットワーク接続、グラフィックス、AI/機械学習機能に対する要求の高まりと対照的であり、最短のブートタイムを達成することができます。Raspberry PiをどのOSと使うかを考えるとき、ボード自体に搭載されているRaspberry Pi OS(通称「Raspbian」)がデフォルトの選択肢になるでしょう。RaspbianはDebian GNU/Linuxをベースにしており、お使いのデバイスで起動できる数多くのLinuxディストリビューションの一つに過ぎません。
各OSが特定のリソースやパッケージを提供するため、開発ニーズに合ったOSを選択することが重要です。また、自社でOSを構築するよりも、検証済みのOSを使用する方がコスト面でも有益です。開発者を雇ってシステムを構築し、継続的に保守・更新することは困難であり、コストがかかります。
Raspberry Pi OSは、主にデモ用のプラットフォームですが、より体系的なライフサイクルメンテナンスを提供する代替オプションとしては、Canonical社のUbuntu CoreやWind River Linux Distroなどがあります。
Ubuntu Coreは、Canonical社がリリースしたLinuxディストリビューションで、人気の高いUbuntu Desktopをベースに、セキュリティ、アップデート、最小限のフットプリントに焦点を当てた、組込みデバイス用のバイナリ互換オプションを提供しています。また、ソフトウェアのパッケージングやシステムのデプロイのための「スナップ」(基本的にシステムコンテナ用に圧縮されたアプリケーション)によるカスタマイズが可能です。
Wind River Linux Distroは、市場をリードするWind River Linuxを使用して構築され、人気の高いコミュニティ主導のYocto Projectと互換性があり、Raspberry Pi 4sもサポートしているバイナリディストリビューションです。
目的
組込みソフトウェア開発者の視点に立ち、組込みソフトウェアプロジェクトの2つのプラットフォームを比較検討し、選択肢を分析したいと思います。Raspberry Pi 4でUbuntu CoreとWind River Linux Distroを起動する基本的なプロセスをご紹介します。その上で、どちらのOSがよりスムーズな起動を実現し信頼性の高いアプローチを提供できたか、具体的な開発作業やデプロイ後のメンテナンスに最適なOSを総合的に判断するという、私の経験をご紹介します。
使用機材とプログラム
・Raspberry Pi Imager Raspberry Pi OS - Raspberry Pi - ストレージ(SDKカード)にイメージを保存するために使用
・Raspberry Pi 4 (RPi4) モデルB
・マイクロ HDMI ポート
・64GBのマイクロSDカード
・USB-C電源
Ubuntu Coreを起動
1. 下記のリンクから、デバイスに対応したUbuntu Core with Raspberry Pi 4 イメージをダウンロードしてください。リンク:Raspberry PiにUbuntuをインストールする|Ubuntu
a. 64ビット版をダウンロードすることをおすすめします。
2. SDカードをパソコンに挿入してください。
3. Raspberry Pi Imagerを起動します。オペレーティングシステム(OS)イメージのアップロードと、ストレージ(SDカード)の選択が求められます。
4. OS(オペレーティングシステム)をアップロードします。
a. OSは、一番下の「custom」を選択し、ubuntu用の画像をアップロードします。
5. ストレージ(挿入したSDカード)を選択します。
Wind River Linux Distroの起動
1. Get Wind River Linux Download リンク | Wind River Linux | Distro無償版ダウンロード
a. お客様情報を入力し、Linux Boardとして「Raspberry Pi 4」を選択します。
b. 使用許諾契約書の内容に同意し、フォームを送信します。
2. 「Your Wind River Linux Download Links」というタイトルで、ダウンロードのリンクがメールで送信されます。
a. ダウンロード可能なファイルは4つです:Minimal Image、Full Image、Development SDK、Source Codeの4つのファイルがダウンロードできます。Minimal Imageは、Full Imageに比べ、デフォルトパッケージの数が少なくなっています。フルダウンロードとミニマムダウンロードを選択することで、ユーザーは、不要な追加パッケージのために容量が消費されることなく、作業中のストレージを効率的に使用することができます。- サイズ (Minimal: 124 MB、Full: 317 MB)
3. 「Minimal Image」または「Full Image」をダウンロードする。
a. これらは、WR Linuxをメモリカードにフラッシュするために必要なイメージファイルです。
b. 「'target-[full or minimal]-bcm-2xxx-rpi4.tar'」が表示されます。
4. ファイルを展開し、イメージファイルを取得します。
a. ファイルを識別しやすくするために、ダウンロードディレクトリに新しいフォルダを作成します。例:'WR Linux’
b. ダウンロードした画像ファイルをフォルダーに移動します。
5. ファイルを2回解凍します。
a. Windows10では、WRイメージファイル>右クリック> 7-Zip>Extract filesを選択します。
b. 作成されたファイルの中で、前のイメージファイルと同じ名前で、接尾辞がtarでないものを探します。
c. ファイルを解凍します。
d. 7つくほどのファイルがあるはずですが、一番重要なのは画像ファイルが表示されることです。末尾は「.ustart.img.gz」で、ファイルにはRaspberry Piのロゴが表示されます。
6. SDカードをパソコンに挿入します。
7. Raspberry Pi Imagerを開き、OSを選択します。
a. 一番下までスクロールして、「Use custom(カスタムを使用)」を選択します。
b. イメージファイルを選択します:wrlinux-image-[full or minimal]-bcm-2xxx-rpi4.ustart.img.gz
8. 「Storage」は、SDカードを選択します。
9. 「Write」をクリックし、WR Linux イメージファイルがメモリカードにフラッシュされるのを待ちます。
比較
Wind River Linux Distroは最初から、Raspberry PiにOSをブートできるようになるまで、いくつかの追加手順を含んでいたのに対し、Ubuntu Coreのダウンロードからブートまでのプロセスは、より合理的でした。しかし、機能面では、この2つのLinuxディストリビューションは、異なるニーズに対応して動作しています。Wind River Distroは、Yocto ProjectやOpen Embeddedなどの一般的な技術との互換性に依存する組込みシステムの開発者のニーズを満たしています。Yocto Projectを活用することで、ウインドリバーは余計なものを排除して必要なものだけを含むカスタマイズされたLinuxプラットフォームを開発することができます。また、組込みプロセッサの幅広いサポート、セキュリティの脆弱性の継続的な監視、長期的なサポートを提供するなど、組込み機器に携わるものにとって最適な選択肢となっています。一方、Ubuntu Coreは、すでにエンタープライズ向けのUbuntu Desktopに慣れていて、汎用Linuxアプリケーションを組込みデバイスにデプロイするための代替手段を必要としている人に適したオプションです。この場合、開発者は、Linux Assembly Tool (LAT)を使ったカスタマイズや設定よりも、スナップストアを使ったパッケージの追加のしやすさを重視するかもしれません。
組込みソフトウェア開発者としては、Raspberry Pi4のような手頃で信頼性の高いハードウェアを利用できる一方で、その上での構築には複数の選択肢があることを知っておくとよいでしょう。
Ashley Tranについて
Ashley Tranは、ウインドリバーのプロダクトGo-to-Marketインターンとして、マーケティングおよびセールスチームのために、発売計画の策定、市場調査、競合分析に携わっています。南カリフォルニア大学でコンピュータサイエンスと経営管理の学士号を取得予定です。技術、デザイン、ビジネスに興味があります。