ボードサポートパッケージ
ボードサポートパッケージ(BSP)は、SiMa.ai ボードを電源投入から利用可能な Linux ユーザー空間まで立ち上げる低レベルのソフトウェアです。認識パイプライン、ROS 2 ノード、カスタム C/C++ アプリケーションなどの上位レベルのワークロードは、その上で動作します。
SiMa.ai の BSP には次のものが含まれます。
- ブートローダー(U-Boot):DRAM を初期化し、ブートメディアを読み取り、カーネルを読み込みます。
- カーネル:SoC 上の MLA、CVU、ISP、PCIe、ネットワーク、ストレージの各 IP に対応する SiMa.ai ドライバーを含む Linux カーネル。
- デバイスツリー:ボード固有の周辺機器(MIPI カメラ、GMSL2 デシリアライザー、GPIO ヘッダー、M.2 スロット)を記述し、カーネルが起動時にそれらをプローブできるようにします。
- ルートファイルシステム:ユーザー空間のツール、システムサービス、およびオンチップアクセラレーターと通信する SiMa.ai ランタイムライブラリ。
- ファームウェアバイナリ:セキュリティプロセッサー(tRoot)やその他のコプロセッサー用。
Modalix BSP
Modalix BSP は、Modalix DevKit、Modalix Early Access キット、および Modalix PCIe カードを対象としています。Debian 派生のディストリビューションである eLxr をベースに構築されています。ユーザー空間は apt で管理されるため、Modalix イメージのカスタマイズは、Yocto レシピの作成よりも Debian ソフトウェアのパッケージングに近い作業になります。既存の Yocto DevKit を eLxr に変換するには、eLxr に変換を参照してください。
ソース:simaai-linux(カーネルとデバイスツリー)、sima-ai-uboot(U-Boot)、および meta-simaai(Yocto レイヤー)。
eLxr と Yocto
ボードの立ち上げには eLxr を推奨します。meta-simaai レイヤーとそのイメージビルドマニュアルを使用して、Yocto でボ ードを立ち上げることもできます。どちらも同じカーネルと U-Boot のソースを同じカーネル構成でビルドするため、ドライバーやデバイスツリーの作業はそのまま引き継げます。
| 作業 | eLxr(推奨) | Yocto |
|---|---|---|
| カーネル、U-Boot、デバイスツリー、オーバーレイ、カーネルモジュールのビルド | BSP をソースからビルドする | イメージビルドマニュアル |
| ユーザー空間ソフトウェアの追加 | eLxr にパッケージとサービスを追加する | レシピを作成 |
| ソースから完全なイメージをビルド | まだ文書化されていません | Yocto で完全なイメージをビルドする |
| アップデートパッケージのビルド | まだ文書化されていません | アップデートパッケージのビルドと適用 |
| セキュアブートとプロビジョニング | まだ文書化されていません | まだ文書化されていません |
現時点でソースから完全なイメージをビルドする必要がある場合は Yocto を選択してください。それ以外の場合は eLxr を使用してください。
BSP ソースでできること
ソースは、次のような場合に役立ちます。
- カスタム周辺機器を追加する:新しい MIPI カメラ、GMSL2 センサー、または HAT ボード用のデバイスツリーオーバーレイを作成します。
- カーネル機能を有効にする:標準イメージに含まれていないカーネルオプション(ファイルシステム、ネットワークプロトコル、USB ガジェットドライバーなど)を有効にします。
- rootfs を置き換える、または拡張する:独自のアプリケーション、ライブラリ、またはシステムサービスを組み込みます。
- リリースをローカルで再現する:監査や改変のために、DevKit に搭載されているものとまったく同じイメージを再ビルドします。
カスタムビルドをボードに導入するには、ビルドをデプロイするを参照してください。ファームウェアのアップデートでインストールされるのは SiMa.ai の標準イメージであり、独自のビルドではありません。
ソースとマニュアル
以下はすべて公開されています。イメージのビルド、ボードへの書き込み、独自ドライバーの追加に、 NDA や営業窓口への問い合わせは必要ありません。
| 内容 | 場所 |
|---|---|
| ビルド手順:ビルド環境、カーネルと U-Boot のビルド、デバイスツリー、カーネルモジュール | BSP をソースからビルドする |
| 各プラットフォームリリースに対応するソースコミット | リリースの互換性 |
| Modalix ビルドコンテナー | Dockerfile.modalix |
| Linux カーネルソース | simaai-linux |
| U-Boot ソース | sima-ai-uboot |
| Yocto レイヤー(ボード固有のオーバーレイソースを含む) | meta-simaai |
このセクションの内容
- BSP をソースからビルドする:ビルド環境、 カーネル、U-Boot、デバイスツリー、およびアーティファクトのインストール。
- デバイスツリーとオーバーレイ:オーバーレイの選択または作成と、 ドライバーのバインドの確認。
- リリースの互換性:各プラットフォームリリースの基になっている カーネルと U-Boot のコミット。
- eLxr にパッケージとサービスを追加する:パッケージのインストール、独自のサービスの パッケージ化、アップデートが変更に与える影響。
- Yocto で完全なイメージをビルドする:公開されている Yocto レイヤーによる、 ソースからのイメージ全体のビルド。
- イメージを eMMC に書き込む:独自ビルドの ボード eMMC への書き込み。
- アップデートパッケージのビルドと適用:Yocto イメージ用の アップデートのパッケージ化と、ボードのフォールバックの仕組み。
- 工場でのビルドとテスト:量産時の ボードへの書き込みとテスト。
BSP の作業に関係するハードウェアのトピックについては、 キャリアボードの立ち上げと 低速 I/O を参照してください。
まずは BSP をソースからビルドするから始めてください。Docker ビルド環境、 カーネルと U-Boot の取得と構成、両者のビルド、ボードへのインストール、そしてデバイスツリー、 オーバーレイ、ツリー外カーネルモジュールの扱い方を説明しています。