eLxr にパッケージとサービスを追加する
Modalix のイメージは、Debian 派生のディストリビューションである eLxr をベースにしています。
ボードへのソフトウェアの追加は Debian と同じ方法で行います。つまり、apt でインストールする
パッケージとして追加します。このページでは、パッケージのインストール方法、独自のサービスを
パッケージ化する方法、ファームウェアのアップデートが変更に与える影響を説明します。
このページは、公開されている SiMa.ai のリポジトリをもとに作成しています。例のパッケージは Debian のコンテナー内でビルド し、インストールしました。ここに記載した手順をそのまま ボード上で実行したわけではありません。
パッケージをインストールする
-
パッケージリポジトリに到達できるネットワークにボードを接続します。
-
パッケージリストを更新します。
sima@modalix:~$ sudo apt update -
パッケージをインストールします。たとえば、I2C ツールをインストールするには次のようにします。
sima@modalix:~$ sudo apt install i2c-tools
SiMa.ai は、自社のソフトウェアを Debian パッケージとしてボードに提供しています。ボード上の SiMa.ai パッケージを一覧表示するには、次のようにします。
sima@modalix:~$ dpkg -l | grep simaai
独自のサービスをパッケージ化する
独自のプログラムをサービスとして実行するには、そのための Debian パッケージをビルドします。
パッケージがファイルをインストールし、インストール後スクリプトがサービスを有効にします。
この例では、my-app という名前のプログラムをパッケージ化します。
-
ビルドホストで、次のディレクトリツリーを作成します。プログラムは
usr/bin/my-appに 配置します。ボード上で動作する必要があるため、arm64 向けにビルドしてください。 ビルドコンテナーについては、 BSP をソースからビルドするを参照してください。my-app/├── DEBIAN/│ ├── control│ └── postinst├── lib/systemd/system/my-app.service└── usr/bin/my-app -
DEBIAN/controlを作成します。Dependsには、プログラムが必要とするパッケージを 列挙します。Package: my-appVersion: 1.0.0Section: utilsPriority: optionalArchitecture: arm64Depends: python3Maintainer: Your Name <you@example.com>Description: Example service for a Modalix board -
ユニットファイル
lib/systemd/system/my-app.serviceを作成します。[Unit]Description=My applicationAfter=network.target[Service]Type=simpleExecStart=/usr/bin/my-appRestart=on-failureRestartSec=5[Install]WantedBy=multi-user.target -
DEBIAN/postinstを作成します。パッケージのインストール時に、このスクリプトがサービスを 有効にして起動します。#!/bin/shset -eif [ -d /run/systemd/system ]; thensystemctl daemon-reloadsystemctl enable my-app.servicesystemctl restart my-app.servicefi -
スクリプトとプログラムに実行権限を付与し、パッケージをビルドします。
sima-user@sima-user-machine:~$ chmod 0755 my-app/DEBIAN/postinst my-app/usr/bin/my-appsima-user@sima-user-machine:~$ dpkg-deb --root-owner-group --build my-app my-app_1.0.0_arm64.deb -
パッケージをボードにコピーしてインストール します。
aptは、依存するパッケージも インストールします。sima-user@sima-user-machine:~$ scp my-app_1.0.0_arm64.deb sima@<board-ip>:/tmp/sima@modalix:~$ sudo apt install /tmp/my-app_1.0.0_arm64.deb -
サービスが動作していることを確認し、ログを読みます。
sima@modalix:~$ systemctl status my-app.servicesima@modalix:~$ journalctl -u my-app.service
この種のパッケージの完全な例については、SiMa.ai の Insight リポジトリにある MIPI カメラユーティリティ を参照してください。