NVIDIA Jetson AGX Orinのセットアップからsdkmanagerでのインストールし直しまで | そう備忘録

NVIDIA Jetson AGX Orinのセットアップからsdkmanagerでのインストールし直しまで

Jetson AGX Orin

NVIDIA の Jetson AGX Orin のセットアップを行った。

最初は手順書通りに進めてすぐに終了させるつもりだったのだが、JetPack 5.0.2 をインストールする際にエラーで終了したり、起動しても画面が真っ黒だったり、仕方が無いので sdkmanager で OS から入れ直したら途中でハングしたりと思ったより手間取ったので記録として残しておく。

本体

最初に NVIDIA Jetson AGX Orin の外観を紹介しておく。

正面

向かって左上から、

  • USB Type-C:DFP(Down Stream Facing Port)only とあるので電源供給用に使用する
  • DC Power Jack:ジャック形式で電源供給が可能(今回は使用してない)外形:5.5 mm、内径:2.5mm の Type A と呼ばれる形式
  • Ethernet port:10GBASE-T
  • USB Type-A:USB 3.2 Gen 2 × 2
  • DisplayPort output:映像出力用。AGX Orinには HDMI ポートが無いので DisplayPortコネクターが必要。MST(Multi-Stream Transport)に対応している
  • USB micro-B :For Debug UART とあるので URAT でデバッグする時に使用する模様(今回は未使用)
Jetson Orin正面

側面(正面向かって左側)

左側面はボタンが3つと白色LEDが並んでいる。

  • Power:電源ボタン
  • Force Recovery:強制回復ボタン。後述する sdkmanager で OS のインストールからやり直す際にこのボタンを押しながら電源をオン、白LED が点灯したらボタンを離すことで強制回復モードに移行する事ができる
  • Reset:リセットボタン
  • White LED:白色LED
Jetson Orin側面(正面向かって左側)

側面(正面向かって右側)

正面向かって右側はコネクタ類は無いがマグネットで止まっているカバーが外れる。

中にはコネクタとWi-Fiのアンテナ(多分)が内蔵されていた。

Jetson Orin側面(正面向かって右側)

背面

  • USB Type-C:UFP(Upstream Facing Port)と DFP(Down Stream Facing Port)に対応している。パソコンと接続する際にはこのコネクタを利用する
  • 40-pin connector:40ピンのコネクタ。ピンレイアウトはこちらを参照して欲しい。
  • USB Type-A:USB 3.2 Gen 1 × 2。キーボードやマウスのUSBをこちらに接続した
Jetson Orin背面

底面

底面は以下の通り(画像下側が正面)。

上部にM.2のコネクタがあるので SSD の増設が出来るのだと思う(未検証)。

その下に カメラ用のCSI(Camera Serial Interface)コネクタがあった。

更にその左下に Wi-Fi のカードが M.2コネクタに刺さっていてケーブルが正面向かって右側のアンテナに伸びている。

Jetson Orin底面

セットアップ

Jetson AGX ORIN は eMMCフラッシュメモリに OS(Ubuntu 20.04 ベースの Linux L4T BSP)が焼き付けられているので、箱から出してすぐに使える。

初回起動時にプリインストールされている Linux L4T BSP のセットアップが動作するので「Getting Started with Jetson AGX Orin Developer Kit」に添ってセットアップを行えば良い。

※但し、自分の場合は Step2 の JetPack コンポーネントのインストールに失敗して OS が起動しなくなり(後述)sdkmanager で OS のインストールからやり直した。

普通にセットアップが終了すれば使用する必要は無いが、sdkmanagerでのOSインストール方法はこの記事の下の方に書いてある

接続方法

セットアップは行うに辺り周辺機器との接続は以下の2パターンがある。

  1. マウス、キーボード、ディスプレイ(要DisplayPort、HDMI不可)を AGX Orin に接続する方法
  2. 他PC(Windows OK)から puTTY 等のターミナルソフト経由で接続する方法

最初は DisplayPort のケーブルが手元に無かったので 2. の他PCからのセットアップを選択した。

AGX Orin の DisplayPort には何も接続せずに※背面の40ピンのコネクタがある方の USB-TypeC とパソコンを接続する。

※ディスプレイが認識されるとターミナルソフトで接続できない事がある模様

尚、パソコンは Windows 11 Home を使用した。

また有線LAN(eth0)を接続するのであれば事前に接続しておく(自分はセットアップ時には手元に無かったので後から接続して設定した)

背面のType-Cコネクタをパソコンと接続する

続いて前面の USB Type-C(DC Power Jackの上)から電源供給をすると AGX Orin が起動する。

接続確認

Windows のデバイスマネージャー>ポート(COMとLPT)を確認すると COM3 で接続している事が分かる

デバイスマネージャー

USBシリアルデバイス(COM3)をダブルクリックして、詳細タブ、プロパティでハードウェアIDをプルダウンから選択して以下の表示になっていれば接続はOKだ。

USBシリアルデバイスのプロパティ

puTTYでの接続

パソコン側の接続ソフトは NVIDIA の手順書にも載っていた puTTY を使用した。

puTTYを起動して、

  • Connection type:Serial
  • Serial line:COM3
  • Speed:115200
  • Saved Sessions:JetsonORIN ・・・ 何でも良い

を入力して「Save」で一旦保存後に「Open」で起動する

puTTY設定

初期設定

ライセンス

最初に確認画面が表示されるのでOKボタンを押すと、License For Customer Use of NVIDIA Softwareが表示されるので「OK」を選択する。

ライセンス確認

言語

Select a Language で English(英語)を選択した。

言語の選択

場所

Select your locationでOtherを選択した。

※Japanは無かった(と思う)

場所の選択

場所(続き)

Configure localesで United States – en US.UTF-8 を選択した。

この辺は後からでも変更できると思い、適当に選択してしまった。

※キーボードレイアウトは後から Japanese に変更した

場所(続き)

システムクロック

Where are you? で Is the system clock set to UTC?と(システムクロックはUTC(協定世界時)ですか?)聞かれるのでYesを選択。

システムクロック

フルネーム

Who are you? で Full name for the new user:欄にフルネーム(アカウントでは無い)を入力してOK。

フルネーム

アカウント

Username for your accountでアカウント名を入力してOK。

アカウント

パスワード

Choose a password for the new user でパスワードを入力する(確認のため2回)

パスワード

APPパーティション

APP Partition Sizeにて最大の59342を指定した。

APPパーティション

ネットワークの設定

Network configuration の Primary network Interfaceにて eth0 を選択した。(eth0 → wlan0の順番にしたかった為)

複数のネットワークインターフェースに対応しているので優先的に接続するネットワークを選択するのだが、この時点で有線ケーブルが手元に無かったので接続していない。

もし接続していれば後述のエラーは表示されないのだと思われる。

尚、ネットワークは後から WiFi(wlan0) を追加設定している。

ネットワークの設定

ネットワーク設定でエラー

eth0(有線LAN)を接続していないので”DHCPが使用出来ない”とのエラーが表示されるが構わずOK。

ネットワーク設定でエラー

ネットワークを今は構成しない

Networks configuration にて Do not configure the network at this time(今はネットワークを構成しない)を選択してOK。

後から有線LANコネクタに接続したら問題なく接続出来た。

ネットワークを今は構成しない

ホスト名

Hostnameに ubuntu を入力した。

ホスト名は自ネットワーク内でユニークな名前にする必要があるのでもう少し工夫した名前にした方が良いと思う(これも後から変更した)

ホスト名

電源設定

Select from one of the below nvpmodel modesにてMAXN(電力設定最大)を選択した。

後から nvpmodel コマンドで変更が可能な模様。

電源設定

Chromium Browserのインストール

Install Chromium Browser でOKを選択する。

Chromium Browserのインストール

Yes で Chromium Browserをインストールすることにした。

Chromium Browserのインストール

設定終了

しかし(当然なのだが)ネットワークに接続していないのでChromiumはインストールできずにエラーになった。

後から下記のコマンドでインストールした。

sudo apt install -y chromium-browser

とりあえず初期設定は出来たのでリブートを行った。

とりあえず設定終了

その後の追加設定

以下の設定を追加で行った。

  • GUI(デスクトップ)にてWiFiに接続した
  • キーボードレイアウトが違っていたので設定、地域からJapaneseに変更した
  • CLI(コマンドライン)から Chromium Browser をインストールした

特に大きな問題も無く、ここまでは終了した。

事前に有線LANを用意しておけばもう少しスムーズに設定が出来たのだと思うが、後からでも設定は可能だった。

Jetpack

続いてStep2の Jetpackコンポーネントのインストールを行う。

バージョンの確認

最初に以下のコマンドで現在のバージョンの確認を行う。

cat /etc/nv_tegra_release

“R34 (release), REVISION: 0.1, GCID: 29941907, BOARD: t186ref, EABI: aarch64, DATE: Sat Mar 12 02:32:39 UTC 2022” と表示された。

Revision0.1(2022/3/12)はちょっと古い、Revision1.0以上が良い模様なのでアップデートする。

バージョンの確認

L4Tのアップデート

以下のコマンドで aptレポジトリを手動で追加する。

sudo bash -c 'echo "deb https://repo.download.nvidia.com/jetson/common r34.1 main" >> /etc/apt/sources.list.d/nvidia-l4t-apt-source.list'
sudo bash -c 'echo "deb https://repo.download.nvidia.com/jetson/t234 r34.1 main" >> /etc/apt/sources.list.d/nvidia-l4t-apt-source.list'
aptレポジトリの更新

以下のコマンド群でアップデートする。

sudo apt update
sudo apt dist-upgrade
sudo reboot
sudo apt install nvidia-jetpack

しかしここで問題が発生。

update 及び dis-upgrade コマンドは上記の通り正常終了したのだが reboot を行った所、何故か全く起動しなくなってしまった。

boot loaderすら起動せずにUEFI(BIOS)の画面すら表示されない状態。

ssh でも接続出来なくなってしまったので泣く泣く諦めて sdkmanager で OS(JetPack) のインストールからやり直すことにした。

Jetpackの入れ直し

ホストマシン(Linux)を用意してホストマシン上で sdkmanager を起動してUSBケーブル経由で AGX Orin のセットアップを行う。

こちらの手順を参照した。

注意点としてはNVIDIA の sdkmanager は Windowsでは動作しない。

また残念なことに WSL(Windows Subsystem for Linux)でも動作しないようなので別途Linux マシンを用意する必要がある。

ホストマシンに必要なスペックは以下の通り。

  • OS:Ubuntu Desktop 20.04 on x86_64 system
  • メモリ:8GB
  • ディスクサイズ:最低 25GB

古いノートPCがあったのでホストマシンとして利用することにした。

sdkmanagerのインストール

ホストマシンに sdkmanager をインストールする。

こちらのページの NVIDIA SDK Manager の欄の How to install SDK Manager 欄の “Download SDK Manager” をクリックする。

ホストマシンのホームディレクトリーに sdkmanager_1.8.1-10392_amd64.deb を保存した。(2022年11月22日の最新バージョンは sdkmanager_1.9.0-10816_amd64.deb)

尚、このページで各種ツール類をダウンロードする為には事前に NVIDIA の Developer Program にメンバー登録(無料)しておく必要がある。

sdkmanagerのダウンロード

保存されたので以下のコマンドでインストールする。

途中で確認が入るので y を入力する。

sudo apt install ./sdkmanager_1.8.1-10392_amd64.deb

インストールされた。

インストールされた

sdkmanager でのインストール

LXTerminal から sdkmanager と入力してプログラムを起動する。

古いパソコンなので最低要件を満たしていないと警告が表示されるがとりあえず「Yes」を選択。

必要条件を満たしていない

sdkmanager が起動したら Stay Logged in にチェックを入れて「LOGIN」ボタンを選択。

ブラウザに遷移するので NVIDIA の Developer Program(要事前登録)にログインをする。

LOGON

ブラウザでログインをするとアプリの方もログインされるのでデータ収集は、

  • No,disable usage collection

を選択した。

情報の収集とログイン

STEP01

STEP01 画面が表示される。

Hardware configration の Target Hardware が No Board connection(AGX Orinが見つかっていない)になっている。

STEP 01

AGX ORIN とホストマシン(Linuxパソコン)をUSBケーブルで接続する。

  • Jetson AGX Orin Developer Kitを同梱のUSB Type-A – Type-Cケーブルでホストパソコンに接続する
  • AGX Orin側のType-Cプラグはフラッシュ用40ピンコネクタの左隣にあるUSB Type-Cポートを使用する
ホストマシンとの接続

3つのボタンの真ん中の強制リカバリーを押しながら、USB Type-C電源プラグをDCジャックの上にあるUSB Type-Cポートに差し込む。

または電源接続後に真ん中のボタンを押しながら右のリセットボタンを押しても強制リカバリーモードに移行する。

強制リカバリーボタン

ホストパソコンで AGX Orin が検知されて以下の画面が表示されるので Jetson AGX Orin を選択して「OK」。

Jetson  AGX Orinを選択する

Target Hardware にて Jetson AGX Orin が選択されるので続いて Target Operating System を選択する。

プルダウンから JetPack5.0.2[rev.1] (2022年11月時点で最新)を選択して右下の「Continue」ボタンをクリックした。

Target HardwareとTarget Operarting system

STEP02

HOST Compornet、Target Componet はざっと確認して下にスクロール。

Jetson Linux にチェックが入っていることを確認して、Jetson SDK Compornet のチェックを外す(理由は後述)

利用許諾の “I accept the terms and conditions of the license agreements” にチェックを入れて「CONTINUE」

Jetson  LinuxはチェックしてJetson  SDK Componentsはチェックを外す

何故SDK Components のチェックを外すのか

本来であれば SDK も一緒にインストールしたい所だが、自分の環境では Jetson Linux(5.0.2) と SDK Components を同時にインストールしようとするとFlush途中でハングしてしまったので、後から別々にインストールする事にした。

ちなみに以下のメッセージが表示されて書き込みが中止してしまう。

“Not exactly one NVIDIA Jetson device is connect with USB・・・”

USB接続で192.168.55.1(USB接続するとAGX Orinに割り当てられるIP Addrees)が見えないとのエラーメッセージだがインストール途中までは見えていた事が確認できた。

何らかの理由で途中でAGX Orin が見えなくなってしまう。

また前述の Target Operating System で5.0.1 DP を選択した場合は SDK Components をチェックしても正常終了したので 5.0.2 特有の問題だと思われる。

NVIDIAのフォーラムで「JetPack5.0.2に背面の40ピン横のUSB Type-Cを認識しなくなるバグがある」との書き込みもあったのでもしかしたらそれが原因なのかも知れない。

OS Flush中にハング

STEP 02の続き

ホストマシンにダウンロード用のディレクトリーを作成するかどうかを聞かれるので「Create」ボタンをクリックした。

フォルダーの作成

ホストマシンの sudo権限のパスワードを入力して「OK」ボタンをクリックした。

管理者のパスワード

STEP 03

最初にホストマシンに必要なファイルがダウンロードされる。

※画面ショットは Jetson SDK Components もチェックされているが、前述した通りJetson OS と一緒にチェックをすると AGX Orin への Flush の途中でハングしてしまうので別々のタイミングでインストールする。

ダウンロード

必要なファイルのダウンロードが終わったらFlash用のメニューが表示される。

1:プルダウンから Manual Setup Jetson AGX Orin を選択する

7:そのままでOK

New Username: 任意のユーザー名

New Password:パスワード

8:eMMC(内蔵メモリ)

を選択して「Flash」ボタンをクリックした。

Flush用のメニューに入力

Orinへのインストールが始まる。

この処理は数十分の時間がかかる。

OrinへのFlush(書き込み)

STEP 04

SDK Components にチェックしなければこれでインストール終了。

一旦「Finish」ボタンでインストールを終了する。

インストール終了

Orin 側でWiFiなどの設定

続いて AGX Orin にディスプレイ、キーボード、マウスを接続して Wi-Fi などの設定を行う。

先程 SDK Components のインストールを行わなかったのでWi-Fi の設定を行い、ネットワーク経由で SDK Components をインストールする。

ディスプレイポート経由でディスプレイを接続する。

この際に AGX Orin のディスプレイポートに最初から(起動前から)接続していると何故か画面が真っ黒で表示されない(原因不明、NVIDIAのフォーラムではそれっぽい不具合報告の投稿は幾つかあった)

フォーラムの不具合報告にもあった、ウィンドウが表示された頃を見計らってディスプレイコネクタを接続したら表示された。

OS が起動していのにも関わらずディスプレイが表示されない時はコネクタを一度抜いてから刺し直してみて欲しい。

これは最初はかなりハマってしまった。

初期セットアップ

初回の起動時は Ubuntu の初期セットアップ画面が表示されているのでセットアップする。

システム情報を送信するかと聞かれたので、

“No,don’t send system info”(システム情報を送信しない)を選択して「Next」ボタンをクリックした。

Ubuntuの初期設定

準備がOKかを聞かれたので、”Done” をクリックした。

Done

地図情報をアプリケーションに許可するかどうか聞かれたので許可せずに(バーをオンにせずに)「Next」ボタンをクリックした。

Next

Wi-Fiの設定

AGX Orin の Wi-Fi の設定を行う

下記はホストマシンからターミナルソフトで接続してコマンドラインから Wi-Fi の設定を行った時の画面ショットだが、AGX Orin のLXTerminal やデスクトップから設定しても良い。

以下のコマンドでアクセスポイントの一覧を表示する。

nmcli device wifi
Wi-Fiの一覧を取得

以下のコマンドで接続する。

sudo nmcli device wifi connect [SSID] password [password]
接続

設定後に ifconfig コマンドでIP Addressを確認した所、192.168.0.83 が表示された。

ネットワーク経由でこの IP Addrees 指定でホストマシンから SDK Components をインストールする。

ホスト側でSDK Componentsを追加インストール

ホスト側のパソコンに戻って sdkmanager を再度立ち上げる。

AGX Orin側はリカバリーモードでは無く通常起動していて ssh で接続可能な状態とする。

またホストマシンとAGX Orin はUSBでは接続していない状態である。

Step01

Target Hardware が not board connect(ボードが接続していない)になっているが気にせずに「Continue」ボタンをクリックした。

Step01

Step02

Jetson Linux は既にインストール済なのでチェックを外す。

Jetson SDK Compornet にチェックを入れて、下の “I accept ・・・” にもチェックを入れて「CONTINUE」ボタンをクリックした。

step02

Step03

  • Connection:Ethernet
  • IPv4:192.168.0.83(先程の IP Address)
  • User:先程設定したユーザ名
  • Password:先程設定したパスワード

「Install」ボタンをクリックした。

step03

Step04

プログレスバーが表示されてしばらく経つと無事にインストールが終了したので「FINISH」ボタンで終了する。

step04

以上でJetson Linux と Jetson SDK Components がインストールできた。

色々とつまずいた所があったが今のところ正常に動作している。

最後に

この記事が何処かで誰かの役に立つことを願っている。

尚、当記事中の商品へのリンクはAmazonアソシエイトへのリンクが含まれています。Amazonのアソシエイトとして、当メディアは適格販売により収入を得ていますのでご了承ください。

souichirou

やった事を忘れない為の備忘録 同じような事をやりたい人の参考になればと思ってブログにしてます。 主にレゴ、AWS(Amazon Web Services)、WordPress、Deep Learning、RaspberryPiに関するブログを書いています。 仕事では工場に協働ロボットの導入や中小企業へのAI/IoT導入のアドバイザーをやっています。 2019年7月にJDLA(一般社団法人 日本デイープラーニング協会)Deep Learning for GENERALに合格しました。 質問は記事一番下にあるコメントかメニュー上部の問い合わせからお願いします。

4件のフィードバック

  1. 匿名 より:

    詳細にありがとうございます。

  2. 匿名 より:

    USB Type-Cについては以下を参考に修正頂くと、SDKManagerの使用時に正常動作となります。
    お時間あるときにご確認頂ければと存じます。
    https://forums.developer.nvidia.com/t/jetpack-5-0-2-jetson-agx-orin-developer-kit-one-type-c-not-working/224158/36

    • souichirou より:

      コメントありがとうございます。
      なるほどpinmuxファイルが違っていることが原因なのですね。情報ありがとうございます!?

  3. sikaku より:

    IT初心者です。Jetson AGX Orinを何とかセットアップできました。この記事がなければ、挫折していたかもしれません。ありがとうございました。

    • souichirou より:

      sikakuさん
      そう言って頂けると嬉しいです。記事を残しておいて良かったです。コメントありがとうございます。

匿名 へ返信する コメントをキャンセル

名前、メール、サイト欄は任意です。
またメールアドレスは公開されません。