在 eLxr 上新增套件與服務
Modalix 映像檔以 eLxr 為基礎,eLxr 是衍生自 Debian 的發行版。在電路板上新增軟體的方式與 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 -
撰寫 unit 檔
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 相機公用程式。