Jetson Orin Nano – boot from NVMe storage

Jetson Orin

この記事ではJetson Orin NanoをNVMeストレージから起動させる方法について解説します。GUIを使用するSDKマネージャを使用せずにCLIでセットアップする方法について解説します。

ホストはUbuntu22.04を使用します。Jetson Orin NanoにはJetson Linux 36.2をインストールします。パッケージは以下のURLからダウンロードします。https://developer.nvidia.com/embedded/jetson-linux-archive

パッケージのダウンロード

https://developer.nvidia.com/embedded/jetson-linux-r362 のページから Driver Package (BSP)Sample Root Filesystem をぞれぞれダウンロードします。https://developer.nvidia.com/embedded/jetson-linux-r362https://developer.nvidia.com/embedded/jetson-linux-archive からリンクされています。

wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v2.0/release/jetson_linux_r36.2.0_aarch64.tbz2
wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v2.0/release/tegra_linux_sample-root-filesystem_r36.2.0_aarch64.tbz2Code language: JavaScript (javascript)

パッケージのセットアップ

ダウンロードしたパッケージを解凍します。tegra_linux_sample-root-filesystem.. の解凍には sudo が必要な点に注意します。

tar xf jetson_linux_r36.2.0_aarch64.tbz2
sudo tar xf tegra_linux_sample-root-filesystem_r36.2.0_aarch64.tbz2 -C Linux_for_Tegra/rootfs/

次にJetson Orin Nanoに書き込むイメージを作成します。

cd Linux_for_Tegra
sudo apt install -y qemu-user-static
sudo ./apply_binaries.shCode language: Bash (bash)
sudo apt install -y sshpass abootimg nfs-kernel-server

公式なドキュメントは https://docs.nvidia.com/jetson/archives/r36.2/DeveloperGuide/SD/FlashingSupport.html を参考にしてください。また Jetson Nano の記事 も参考になります。

なお https://docs.nvidia.com/jetson/archives/r36.2/DeveloperGuide/IN/QuickStart.html#to-flash-the-jetson-developer-kit-operating-software のドキュメントには、 sudo ./tools/l4t_flash_prerequisites.sh を実施するようにありますが、必要なパッケージをインストールしているだけだと思いますのでこの記事では、上記コマンドで代替えします。

recovery mode

https://developer.nvidia.com/embedded/learn/jetson-orin-nano-devkit-user-guide/howto.html を参考に、Jetson Orin NanoをRecovery Modeにします。Recovery ModeはJ14のPin 9とPin 10をジャンパーで接続し電源を入れます。なお、ジャンパーはJetson Orin Nano Developer Kitには付属していませんので各自準備してください。

https://developer.nvidia.com/embedded/downloads#?search=Jetson%20Orin%20Nano%20Developer%20Kit%20Carrier%20Board%20Specification から Jetson Orin Nano Developer Kit Carrier Board Specification ドキュメントをダウンロードすることが可能です。以下では Jetson Orin Nano Developer Kit Carrier Board Specification ドキュメントから抜粋したJ14の仕様を貼り付けします。

以下は、Pin9とPin10の位置です。Pin9とPin10をジャンパーで接続し電源を入れることでRecovery Modeに遷移します。

NVMe Setup

以下の画像を参考に、NVMeを差し込み付属のネジで固定します。

書き込み

ホストとJetson Orin NanoをUSBで接続し以下のコマンドを実行しJetson Orin NanoがRecovery Modeになっていることを確認します。

$ lsusb |grep -i nvidia
Bus 003 Device 006: ID 0955:7523 NVIDIA Corp. APX

NVIDIAデバイスが上記lsusbコマンドで確認できたら以下のコマンドでイメージを内部フラッシュストレージとNVMeに書き込みます。

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 \
  -c tools/kernel_flash/flash_l4t_external.xml -p "-c bootloader/generic/cfg/flash_t234_qspi.xml" \
  --showlogs --network usb0 jetson-orin-nano-devkit internalCode language: JavaScript (javascript)

約10分程度かかります。書き込み終了後以下のような起動画面が出るはずです。指示に従いセットアップを終了させます。

セットアップが終わったらシャットダウンしジャンパーを忘れずに外しておきます。

以上です!