Jetson Orin Nano Developer Kitをセットアップする
はじめに
ラズパイに手を出してから、エッジAIに興味を持ち、調べていたらNVIDIAのJetson Orin NanoというSBC (Single-board computer)があると知り、入手しました。
Jetson Orin Nano Developer Kitに、SSDを繋げ、SDK ManagerでSSDにOS(Jetson Linux)を入れます。リモート操作したいので、TigerVNCも入れます。
公式のスタートガイドではSDカードにイメージを書込む方式が解説されていますが(下記URL)、SDよりNVMe SSDのほうが高速です(前者が読込100MB/s、後者が8Gb/sなので1000MB/s?)。また、SDは一番箇所しやすいとも聞くため、SSDをブートドライブに使用してみます。
本記事では、SDK Managerを使用して直接SSDにフラッシュしますが、別の方法として、SDカードに一旦フラッシュし、ORIN NANO起動後、再度SSDにSDカード用で提供されているイメージをフラッシュさせる方法もあるそうです(以下の記事を参照)。
ただ、SDカード用として提供されているイメージをSSDに書込むのも何だか気持ち悪いので、公式の手順を基に、SDK Managerで入れてみます。以下URLの「NVIDIA SDK Manager Method」に、ダウンロード用URLと手順があります。
注意点としては、SDK ManagerはLinuxだけの対応らしく、JetPack 5.x系を入れようと思うと、Ubuntuだと18.04か20.04を用意する必要があります。また、ARMに対応してません。
さらに、物理マシンが必要で、仮想環境はサポートしてないとのこと。
Note that flashing from virtual machines isn’t supported, it requires a native Ubuntu install on the host. The Jetson’s USB port will disconnect/reconnect many times during the flashing process, and often the VM doesn’t pick it up.
https://forums.developer.nvidia.com/t/sdkmanager-on-ubuntu-vm-18-04/111091
ただ、VMware Playerの設定を修正して使えるようにしたという報告もあるようです。
今回は、外付HDDに入れたUbuntu Desktop 20.04 LTSを使います。
用意した物
- Jetson Orin Nano Developer Kit
- M.2 SSD
- Ubuntu Desktop 20.04 LTSが動くPC
- ケース(別になくてもいいけど)
ちなみに、Wi-Fiモジュールは接続済みです。
セットアップ
公式ドキュメントがあるので、基本、この通りに実施しました。
SDK Manager起動
SDK Managerを公式サイトからダウンロードし(今回はUbuntuなので、.devを)、
sudo apt install [ダウンロードしたパッケージ.deb]
起動は一般ユーザーで、
sdkmanager
ログインが求められるので、ログインしてやります。
機材を接続
Orin Nanoに接続するHWは、M.2のSSDくらい(本記事ではカメラモジュールの接続はしません。これからのため)。
Jetson Orin Nanoを、UbuntuをネイティブインストールしたPCに、USB Type-Cのコネクタで接続してやります。注意点としては、リカバリーモードで起動する必要があります。リカバリーモードで起動するには、ジャンパピンを9番目と10番目で繋いでやり、その状態で起動します(ジャンパピンがない人は買おう)。ちなみに、リカバリーモードで起動しないとSDK Managerで認識されませんでした(Could not detect a boardと出る)。
※詳細な仕様はJetson Orin Nano Developer Kit Carrier Board Specification に記載
USBを接続すると、こんな感じのポップアップが出ます。
認識されたら、Hardware Configurationの右側の文字が、赤から緑になります。
CONTINUEを押し、STEP2に行くと、インストールするモジュールの選択画面が出ます。Jetson SDK ComponentsのDeveloper Toolsを一応選択しておきます。
I accept the term...を選択し、CONTINUE。しばし待ちます(まぁまぁ長い)。
Automatic SetupかManual Setupを選択できますが、Manual Setupにします。あと、Storage DeviceをNVMeに(これを忘れない)。
あと、IPアドレスを入力し、Install。
結構待ちますが、これで書込みは終了。
なお、モジュールのインストールは、Jetson Orin NanoのOS起動後に行われるようなので、SDK Managerの書込みが途中でも、ディスプレイや入力装置を繋いでおいて、操作することもできます。
セットアップは、とりあえず、完了。
Wi-Fiの設定をすれば、基本的な設定は完了だと思います。
VNCサーバー構築
SBCに、常時、物理ディスプレイと物理キーボードやらを接続して操作するのも面倒なので、リモートでGUI操作できる環境にします。
デフォルトのVNC(多分、vino-server)だと動作が非常にもっさりしたので、tigervncを入れました。デスクトップ環境はGNOMEにしたいので、xrdpは試してません。
ただ、物理ディスプレイを接続した状態でVNCサーバーを起動しないといけないっぽいのが、少々、厄介ですね。
sudo apt install tigervnc-common tigervnc-standalone-server tigervnc-scraping-server
パスワードを設定してやります。
vncpasswd
以下のコマンドでサーバー立ち上げ。実行時は物理ティスプレイを接続した状態でやらないと駄目みたいです。
x0vncserver -display :0 -passwordfile ~/.vnc/passwd
-displayの値は:0にしていますが、環境変数$DISPLAYの値を入れます。
echo $DISPLAY
これでもいいだろうけど…。
x0vncserver -display $DISPLAY -passwordfile ~/.vnc/passwd
あと、カメラモジュール接続、デモプログラム動かすとかは、これからやっていく予定。
以上。
補足
Ubuntu 22ベースのJetpack6は、10月リリースの計画のよう。
・追記
xserver-xorg-video-dummyを使うとリモート接続はできるけど、物理ディスプレイにGUIが移らない…とネットでは出てきますね。結局は、物理ディスプレイが必要みたい。
Discussion