Azure IoT Edgeランタイム(v1.2)をJetson Nano(ARM64v8)でインストール手順についてなるべく簡単にまとめます。
公式ドキュメントではUbuntu 18.04 Server ARM64をTier 1としてサポートしていますが、まだPreviewの状態で、Jetson NanoはUbuntu 18.04 Desktop(Unity)なので完全一致しているわけではないですが、問題なくインストールできます。
Tier 1 : Microsoft社が確認とインストールパッケージを提供
Tier 2 : Microsoft社は非公式サポート、Azure IoT Edgeと互換性あるので使用可能
イメージ作成
Nvidiaの開発キットウェブサイトからWindows, MacOS, LinuxのOSに合わせてイメージをダウンロードしてSDカードに書き込みます。
Jetson Nano 2GBの場合はこちらからダウンロードしてください。
セットアップ
Nvidiaの開発キットウェブサイトを参考して進めます。手順がわかりやすく書いてあるので、ほぼハマることなく進められます。
初期起動後の確認
# OS情報表示
$ uname -a
Linux jetson 4.9.253-tegra #1 SMP PREEMPT Mon Jul 26 12:13:06 PDT 2021 aarch64 aarch64 aarch64 GNU/Linux
# デスクトップ環境確認
$ echo $XDG_SESSION_DESKTOP
unity
# Jetpackバージョン確認
$ cat /etc/nv_tegra_release
# R32 (release), REVISION: 6.1, GCID: 27863751, BOARD: t210ref, EABI: aarch64, DATE: Mon Jul 26 19:20:30 UTC 2021
# モニタリングツール
$ sudo tegrastats
電力モードの設定
電源のタイプがMicro USBか、DCバレルジャックによって設定しておきます。
$ sudo nvpmodel -q --verbose
$ sudo nvpmodel -m 1
$ sudo nvpmodel -q --verbose
$ sudo nvpmodel -q --verbose
$ sudo nvpmodel -m 0
$ sudo nvpmodel -q --verbose
(オプション)固定IP設定
$ sudo vi /etc/default/networking
--
CONFIGURE_INTERFACES=no
$ sudo vi /etc/network/interfaces
--
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1,8.8.8.8
$ sudo reboot
必要なパッケージインストール
curl
$ sudo apt update
$ sudo apt install -y curl
(オプション)CPU/GPUの動作状態
$ sudo apt install python3-pip
$ sudo -H pip3 install jetson-stats
$ sudo systemctl restart jetson_stats.service
$ sudo jtop
IoT Edgeランタイムのインストール
# リポジトリ設定
$ curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ./microsoft-prod.list
$ sudo mv ./microsoft-prod.list /etc/apt/sources.list.d/
$ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
$ sudo mv ./microsoft.gpg /etc/apt/trusted.gpg.d/
# IoT Edgeインストール
$ sudo apt update
$ sudo apt install -y aziot-edge
# コンテナーエンジン設定
$ sudo usermod -aG docker ${USER}
Jetson Nanoイメージで既にNvidia Dockerが含まれているため、コンテナーエンジンインストールは不要です。
デバイスのプロビジョニング
必要なコマンドのみ掲載します。
$ sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml
$ sudo vi /etc/aziot/config.toml
設定内容
[provisioning]
source = "manual"
connection_string = "{IoT Edgeデバイスの接続文字列}"
```bash:設定ファイル反映
$ sudo iotedge config apply
$ sudo iotedge system status
$ iotedge list
NAME STATUS DESCRIPTION CONFIG
edgeAgent running Up 18 seconds mcr.microsoft.com/azureiotedge-agent:1.2