Jetson Nanoで、Azure IoT Edgeが動くか確認します。
Jetson NanoにOSをセットアップ
こちらの手順に沿って、OSイメージをマイクロSDに書き込んでブートします。
現時点のOSイメージファイルはjetson-nano-sd-r32.2-2019-07-16.zipでした。
OSバージョンを確認
/etc/os-release
とuname -a
で、OSバージョンを確認。
matsujirushi@jetsonnano:~$ cat /etc/os-release NAME="Ubuntu" VERSION="18.04.2 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.2 LTS" VERSION_ID="18.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=bionic UBUNTU_CODENAME=bionic matsujirushi@jetsonnano:~$ uname -a Linux jetsonnano 4.9.140-tegra #1 SMP PREEMPT Tue Jul 16 17:04:49 PDT 2019 aarch64 aarch64 aarch64 GNU/Linux matsujirushi@jetsonnano:~$
Ubuntu 18.04.2 LTSのaarch64でした。
Azure IoT Edgeのサポート状況
Azure IoT Edgeのサポート状況を確認すると、Ubuntu 18.04 ARM64はTier 1だがPublic preview。
Azure IoT Edgeをインストール
Azure IoT Edgeのインストール手順に従って、インストールします。
Jetson NanoのOSイメージにcurlが入っていなかったのでインストール。
sudo apt update sudo apt install curl
インストール手順を実施。
curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ./microsoft-prod.list sudo cp ./microsoft-prod.list /etc/apt/sources.list.d/ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/ sudo apt-get update sudo apt-get install moby-engine
エラー発生。
moby-engine (3.0.6) を展開しています... dpkg: アーカイブ /var/cache/apt/archives/moby-engine_3.0.6_arm64.deb の処理中にエラーが発生しました (--unpack): '/usr/bin/docker-proxy' を上書きしようとしています。これはパッケージ docker.io 18.09.2-0ubuntu1~18.04.1 にも 存在します dpkg-deb: エラー: ペースト subprocess was killed by signal (Broken pipe) 処理中にエラーが発生しました: /var/cache/apt/archives/moby-engine_3.0.6_arm64.deb E: Sub-process /usr/bin/dpkg returned an error code (1)
あぁ、なるほど。Dockerが既に入っているので、moby-engineでエラーなのか。
mobyの部分はスルーして継続。(マイクロソフトはmoby-engineを推奨しているので、今回は推奨外の構成になります。)
sudo apt-get update sudo apt-get install iotedge sudo vi /etc/iotedge/config.yaml sudo systemctl restart iotedge
とりあえず、Runtimeは動いてる感じ。
サンプルのモジュールを動かす
Simulated Temperature Sensorをデプロイしてみて、Azure IoT Hubにメッセージが送られてくるか確認。
ちゃんと動いています。