🕌

Jetson Orin Nano Developer Kitをセットアップする

2023/07/16に公開

はじめに

ラズパイに手を出してから、エッジAIに興味を持ち、調べていたらNVIDIAのJetson Orin NanoというSBC (Single-board computer)があると知り、入手しました。

Jetson Orin Nano Developer Kitに、SSDを繋げ、SDK ManagerでSSDにOS(Jetson Linux)を入れます。リモート操作したいので、TigerVNCも入れます。

Jetson Orin Nano

公式のスタートガイドではSDカードにイメージを書込む方式が解説されていますが(下記URL)、SDよりNVMe SSDのほうが高速です(前者が読込100MB/s、後者が8Gb/sなので1000MB/s?)。また、SDは一番箇所しやすいとも聞くため、SSDをブートドライブに使用してみます。
https://developer.nvidia.com/embedded/learn/get-started-jetson-orin-nano-devkit

本記事では、SDK Managerを使用して直接SSDにフラッシュしますが、別の方法として、SDカードに一旦フラッシュし、ORIN NANO起動後、再度SSDにSDカード用で提供されているイメージをフラッシュさせる方法もあるそうです(以下の記事を参照)。
https://www.fraction.jp/log/archives/2023/04/27/jetson-orin-nano

ただ、SDカード用として提供されているイメージをSSDに書込むのも何だか気持ち悪いので、公式の手順を基に、SDK Managerで入れてみます。以下URLの「NVIDIA SDK Manager Method」に、ダウンロード用URLと手順があります。
https://developer.nvidia.com/embedded/jetpack

注意点としては、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の設定を修正して使えるようにしたという報告もあるようです。
https://forums.developer.nvidia.com/t/flashing-jetson-nano-2gb-with-vm/217336

今回は、外付HDDに入れたUbuntu Desktop 20.04 LTSを使います。

用意した物

  • Jetson Orin Nano Developer Kit
  • M.2 SSD
  • Ubuntu Desktop 20.04 LTSが動くPC
  • ケース(別になくてもいいけど)

ちなみに、Wi-Fiモジュールは接続済みです。

セットアップ

公式ドキュメントがあるので、基本、この通りに実施しました。
https://docs.nvidia.com/sdk-manager/install-with-sdkm-jetson/index.html

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と出る)。

button header
※詳細な仕様はJetson Orin Nano Developer Kit Carrier Board Specification に記載

USBを接続すると、こんな感じのポップアップが出ます。

sdk manager

認識されたら、Hardware Configurationの右側の文字が、赤から緑になります。
sdk manager

CONTINUEを押し、STEP2に行くと、インストールするモジュールの選択画面が出ます。Jetson SDK ComponentsのDeveloper Toolsを一応選択しておきます。
sdk manager

I accept the term...を選択し、CONTINUE。しばし待ちます(まぁまぁ長い)。
sdk manager

Automatic SetupかManual Setupを選択できますが、Manual Setupにします。あと、Storage DeviceをNVMeに(これを忘れない)。
sdk manager

あと、IPアドレスを入力し、Install。
sdk manager

結構待ちますが、これで書込みは終了。
なお、モジュールのインストールは、Jetson Orin NanoのOS起動後に行われるようなので、SDK Managerの書込みが途中でも、ディスプレイや入力装置を繋いでおいて、操作することもできます。

セットアップは、とりあえず、完了。
Jetson Orin Nano

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月リリースの計画のよう。
https://developer.nvidia.com/embedded/develop/roadmap

・追記
xserver-xorg-video-dummyを使うとリモート接続はできるけど、物理ディスプレイにGUIが移らない…とネットでは出てきますね。結局は、物理ディスプレイが必要みたい。

Discussion