フォトシンス エンジニアブログ

株式会社Photosynth のテックブログです

Jetson AGX Thor の初期設定

この記事は

Akerun - Qiita Advent Calendar 2025 - Qiita

の 20 日目の記事です。

daikw - Qiita です。 Physical と Photosynth (弊社) はなんとなくスペルが似ていますね。

最近サンタさんが Jetson AGX Thor を届けてくれたので、初期設定・動作確認時にやや戸惑ったポイントを書いておきます。

まとめ

  • Jetson AGX Thor の初期設定は USB インストールメディアを使うと便利かも
  • これで Physical AI に入門しよう!

前提

Jetson AGX Thor はつよつよエッジコンピュータです。つよめの CPU と GPU が載っています。快適です。

USB-C ポートが三箇所(5a, 5b, 8)にあって、用途が少しずつ違います。

Hardware Layout — Jetson AGX Thor Developer Kit - User Guide より

JetPack のインストール

最初に Thor に JetPack を入れます。

Quick Start Guide — Jetson AGX Thor Developer Kit - User Guide が丁寧に書かれているので、これに従えば良さそうです。

マクニカの記事も安心できる情報がありました。 5a, 5b どっちの USB-C 端子を電源に利用してもいいらしいです: Jetson AGX Thor 開発者キット入門:最短セットアップからAI推論の動作確認まで - 半導体事業 - マクニカ

ただ、僕の場合、ディスプレイがどうしても映らなくて困りました。

ディスプレイが映らないので、シリアルコンソールから操作する必要がありますが、工場出荷状態の最初のシリア ルコンソール(デバッグポートの方)は、全くインタラクティブな感じがしません。

最初のコンソール画面

操作にやや怖気付きながらも、 BSP Installation — Jetson AGX Thor Developer Kit - User Guide に従って用意した USB メディア経由の BSP インストールを試みます。

BSP インストール中 ...

完了後に再起動すると、デバッグポートから確認できるシリアルデバイスが4つああり、そのうち2つが接続できます。どれがどれだかわからないので全部接続して確かめます。

2 ❯ ll /dev/tty.* | grep usbmodem
crw-rw-rw-  1 root  wheel  0x900002a Dec 19 17:17 /dev/tty.usbmodemTOPOA735A12B2
crw-rw-rw-  1 root  wheel  0x9000028 Dec 19 17:17 /dev/tty.usbmodemTOPOA735A12B4
crw-rw-rw-  1 root  wheel  0x9000026 Dec 19 17:16 /dev/tty.usbmodemTOPOA735A12B6
crw-rw-rw-  1 root  wheel  0x9000024 Dec 19 17:16 /dev/tty.usbmodemTOPOA735A12B8

しばらく待つと、それらのポートからの出力に、以下のように指示がきました。うまく起動できているようです。

[   15.501295] Please complete NVIDIA OOBE on the serial port provided by Jetson's USB device mode connection. e.g. /dev/ttyACMx where x can 0, 1, 2 etc.

シリアルコンソール

この状態で、普通の USB-C ポート(5a or 5bの電源に使ってない方)に接続して見えたシリアルデバイスに接続すると、 Debconf らしき画面が見えます。

Debconf ?

パスワードやリージョンなどの設定を進めると、ログインできました。

ログインできた

シリアルコンソールでは鍵の設置だけ操作して(curl https://github.com/daikw.keys > .ssh/authorized_keys )、あとは手元の Mac から操作できる状態になりました。

環境を確認します。

daikw@jetson-thor01:~$ cat /etc/nv_tegra_release
# R38 (release), REVISION: 2.2, GCID: 42205042, BOARD: generic, EABI: aarch64, DATE: Thu Sep 25 22:47:11 UTC 2025
# KERNEL_VARIANT: oot
TARGET_USERSPACE_LIB_DIR=nvidia
TARGET_USERSPACE_LIB_DIR_PATH=usr/lib/aarch64-linux-gnu/nvidia
INSTALL_TYPE=
daikw@jetson-thor01:~$ nvidia-smi
Fri Dec 19 00:34:59 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.00                 Driver Version: 580.00         CUDA Version: 13.0     |
+-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA Thor                    Off |   00000000:01:00.0 Off |                  N/A |
| N/A   N/A  N/A             N/A  /  N/A  | Not Supported          |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A           10633      G   /usr/lib/xorg/Xorg                        0MiB |
|    0   N/A  N/A           10714      G   /usr/bin/gnome-shell                      0MiB |
+-----------------------------------------------------------------------------------------+

問題なさそうです。

SDK Manager に振り回されることもなく、特に迷わずにここまで来れたので、インストールメディアとデバッグポートによる初期設定はとても便利でした。

適当なコンテナの起動

Docker Setup — Jetson AGX Thor Developer Kit - User Guide に記載のある jetson-containers を試してみます。

dusty-nv/jetson-containers: Machine Learning Containers for NVIDIA Jetson and JetPack-L4T に従ってインストールします。

# add to docker group
sudo usermod -aG docker $USER
newgrp docker

# install the container tools
git clone https://github.com/dusty-nv/jetson-containers
bash jetson-containers/install.sh

適当に pytorch を試してみると、 jupyter が起動しました。便利ですね。

jetson-containers run $(autotag pytorch)
...
[I 2025-12-19 23:23:34.441 ServerApp] Serving notebooks from local directory: /
[I 2025-12-19 23:23:34.441 ServerApp] Jupyter Server 2.15.0 is running at:
[I 2025-12-19 23:23:34.441 ServerApp] http://jetson-thor01:8888/lab
[I 2025-12-19 23:23:34.441 ServerApp]     http://127.0.0.1:8888/lab
[I 2025-12-19 23:23:34.441 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 2025-12-19 23:23:34.444 ServerApp] No web browser found: Error('could not locate runnable browser').
[I 2025-12-19 23:23:34.455 ServerApp] Skipped non-installed server(s): bash-language-server, dockerfile-language-server-nodejs, javascript-typescript-langserver, jedi-language-server, julia-language-server, pyright, python-language-server, python-lsp-server, r-languageserver, sql-language-server, texlab, typescript-language-server, unified-language-server, vscode-css-languageserver-bin, vscode-html-languageserver-bin, vscode-json-languageserver-bin, yaml-language-server

JupyterLab server is now started

JupyterLab URL:   http://192.168.128.123:8888
JupyterLab logs:  /data/logs/jupyter.log


Copy the URL with the token above for the initial login or to reset your password.

autotag で互換性のあるコンテナを自動で指定できるのが素敵なポイントだと理解しました。

追記

tensorrt などを含む他のコンテナを試そうとしましたが、 r38 対応のコンテナがほとんどなくて自分でビルドする必要がありました。

しかし、 jetson-containers が依存している PyPI がずっと落ちていて、ずっとビルドエラー(タイムアウト)になります。同じような報告を数件見かけました。