はじめに
先日、Jetson Orin NXモジュールを搭載したreComputer J4012(https://www.seeedstudio.com/reComputer-J4012-p-5586.html)を購入しました。先日、この記事執筆時点で最新のJetPack 5.1.1がリリースされたため、この記事ではreComputer J4012にJetson Linuxをインストールする方法を紹介します。
動作確認環境
- reComputer J4012(Jetson Orin NX 16GB)
- JetPack 5.1.1
1. Jetson Orin NX実機
1.1 Force Recovery Mode起動
https://wiki.seeedstudio.com/reComputer_J4012_Flash_Jetpack/#enter-force-recovery-modeを参考にして、Force Recovery Modeで起動します(Force Recovery Modeとは母艦PCからJetsonが外付けストレージとして見えるようなモードのことです)。
- reComputer J4012のFC REC、GNDのピンをジャンプワイヤ(メス−メス)で接続します
- USB Type-C、Type-Aケーブルを用意し、USB Type-CをreComputer J4012、Type-Aを母艦PCに接続します
- reComputer J4012の電源を投入します
母艦PCでlsusb
コマンドを実行して以下のメッセージが表示されればreComputer J4012がForce Recovery Modeで起動できていることがわかります。
ID 0955:7323 NVIDIA Corp. APX
Force Recovery Modeで起動したらジャンプワイヤを外しておきます。
2. 母艦PC
2.1 パッケージインストール
Jetsonセットアップに必要なパッケージをインストールします。
sudo apt-get install qemu-user-static sshpass abootimg nfs-kernel-server libxml2-utils
2.2 Jetson Linuxインストール
https://wiki.seeedstudio.com/reComputer_J4012_Flash_Jetpack/#flash-to-jetsonの手順を参考にしてJetson Linuxをインストールします。まずはじめにhttps://developer.nvidia.com/embedded/jetson-linuxから以下のファイルをダウンロードします。
今回、Jetson Linux 35.3.1を用いたのでhttps://developer.nvidia.com/embedded/jetson-linux-r3531からダウンロードしました。
- Driver Package (BSP):
Jetson_Linux_R35.3.1_aarch64.tbz2
- Sample Root Filesystem:
Tegra_Linux_Sample-Root-Filesystem_R35.3.1_aarch64.tbz2
その後、以下のコマンドを実行してreComputer J4012にJetson Linuxをインストールします。
tar xf Jetson_Linux_R35.3.1_aarch64.tbz2
sudo tar xpf Tegra_Linux_Sample-Root-Filesystem_R35.3.1_aarch64.tbz2 -C Linux_for_Tegra/rootfs/
cd Linux_for_Tegra/
sudo ./apply_binaries.sh
sudo ./tools/l4t_flash_prerequisites.sh
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 \
-c tools/kernel_flash/flash_l4t_external.xml -p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml" \
--showlogs --network usb0 p3509-a02+p3767-0000 internal
3. Jetson Orin NX実機
3.1 初期設定
初回起動時にアカウント作成、言語設定、キーボード設定、ネットワーク設定などを行います。最後にChromiumインストールを行うか聞かれるためインストールする場合はネットワーク設定をしておくとよいでしょう。
3.2 jetson_statsインストール
後述するjetson_releaseを実行するためにhttps://github.com/rbonghi/jetson_statsを参考にしてjetson_statsパッケージをインストールします。
sudo apt install python3-pip
sudo pip3 install -U jetson-stats
3.3 nvidia-jetpackインストール
https://lab.seeed.co.jp/entry/2022/06/06/120000を参考にしてnvidia-jetpack
をインストールします。インストール前の状態を確認するためにjetson_release
コマンドを実行します。この結果から、この時点だとCUDA、cuDNN、TensorRTなどがインストールされていないことがわかります。
$ jetson_release
Software part of jetson-stats 4.2.1 - (c) 2023, Raffaello Bonghi
Model: NVIDIA Orin NX Developer Kit - Jetpack 5.1.1 [L4T 35.3.1]
NV Power Mode[2]: 15W
Serial Number: [XXX Show with: jetson_release -s XXX]
Hardware:
- P-Number: p3767-0000
- Module: NVIDIA Jetson Orin NX (16GB ram)
Platform:
- Distribution: Ubuntu 20.04 focal
- Release: 5.10.104-tegra
jtop:
- Version: 4.2.1
- Service: Active
Libraries:
- CUDA: Not installed
- cuDNN: Not installed
- TensorRT: Not installed
- VPI: Not installed
- Vulkan: 1.3.204
- OpenCV: 4.2.0 - with CUDA: NO
以下のコマンドを実行してnvidia-jetpack
をインストールします。
sudo apt install nvidia-jetpack
インストール後の状態を確認するためにjetson_release
コマンドを実行します。この結果からCUDA、cuDNN、TensorRTなどがインストールされていることがわかります。
$ jetson_release
Software part of jetson-stats 4.2.1 - (c) 2023, Raffaello Bonghi
Model: NVIDIA Orin NX Developer Kit - Jetpack 5.1.1 [L4T 35.3.1]
NV Power Mode[2]: 15W
Serial Number: [XXX Show with: jetson_release -s XXX]
Hardware:
- P-Number: p3767-0000
- Module: NVIDIA Jetson Orin NX (16GB ram)
Platform:
- Distribution: Ubuntu 20.04 focal
- Release: 5.10.104-tegra
jtop:
- Version: 4.2.1
- Service: Active
Libraries:
- CUDA: 11.4.315
- cuDNN: 8.6.0.166
- TensorRT: 5.1.1
- VPI: 2.2.6
- Vulkan: 1.3.204
- OpenCV: 4.5.4 - with CUDA: NO
3.4 ユーザー設定
3.4.1 Docker
以下のコマンドを実行して、dockerグループに追加します。コマンド実行後に再ログインすると反映されます。
sudo gpasswd -a $USER docker
3.4.2 CUDAパス
$HOME/.bashrc
に以下の記述を追記してターミナルを開き直します。
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
反映後、nvcc
コマンドが実行できたらCUDAパスが設定できています。
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Sun_Oct_23_22:16:07_PDT_2022
Cuda compilation tools, release 11.4, V11.4.315
Build cuda_11.4.r11.4/compiler.31964100_0
Appendix
nvidia-jetpack
をインストールすることでインストールされるパッケージ
nvidia-jetpack
をインストールすることでインストールされるパッケージを以下に示します。
$ apt depends nvidia-jetpack-runtime
nvidia-jetpack-runtime
Depends: nvidia-l4t-jetson-multimedia-api (>> 35.3-0)
Depends: nvidia-l4t-jetson-multimedia-api (<< 35.4-0)
Depends: nvidia-cuda (= 5.1.1-b52)
Depends: nvidia-tensorrt (= 5.1.1-b52)
Depends: nvidia-cudnn8 (= 5.1.1-b52)
Depends: nvidia-cupva (= 5.1.1-b52)
Depends: nvidia-opencv (= 5.1.1-b52)
Depends: nvidia-container (= 5.1.1-b52)
Depends: nvidia-vpi (= 5.1.1-b52)
$ apt depends nvidia-jetpack-dev
nvidia-jetpack-dev
Depends: nvidia-l4t-jetson-multimedia-api (>> 35.3-0)
Depends: nvidia-l4t-jetson-multimedia-api (<< 35.4-0)
Depends: nvidia-jetpack-runtime (= 5.1.1-b52)
Depends: nvidia-nsight-sys (= 5.1.1-b52)
Depends: nvidia-tensorrt-dev (= 5.1.1-b52)
Depends: nvidia-cuda-dev (= 5.1.1-b52)
Depends: nvidia-vpi-dev (= 5.1.1-b52)
Depends: nvidia-opencv-dev (= 5.1.1-b52)
Depends: nvidia-cudnn8-dev (= 5.1.1-b52)
NVIDIA SDK Manager
reComputer J4012のセットアップにNVIDIA SDK Managerを使うことを試みてみましたが、「Could not detect a board」という表示が出ており、reComputer J4012を認識することができませんでした。少なくとも執筆時点で最新のNVIDIA SDK Manager v1.9.2(GUI版)ではreComputer J4012をセットアップすることができないようです。