Jetson Linux を Jetson AGX Orin Devkit の NVMe SSD へインストールする
この投稿では、NVIDIA SDK Managerを使用してJetson AGX Orin Devkit (以降: JAO)に装着されたNVMe SSDへJetson Linux (BSP)をインストールする手順を説明します。
環境
- x86 (amd64) Host PC — Ubuntu 20.04
・インターネット接続環境必須 - NVIDIA Jetson AGX Orin Devkit — Jetson Linux 35.2.1 (Jetpack 5.1)
・PC ディスプレイ
・USB キーボード、マウス
・Samsung 970 EVO Plus (500Gb), NVMe SSD M.2 M-Key
【参考】
手順
ホストPC上でSDK Managerを起動する前に、ターゲット (JAO) をリカバリモードにして起動しておきます。
- NVMe SSD を JAO 背面にある J1: M.2 M-Key スロットに取り付けます。USB-A — CケーブルをホストPC と JAO の J40: USB-C コネクタ (40pin コネクタがある側) に接続します。
・Hardware Layout - JAO に PC ディスプレイ、キーボード/マウスなどの周辺機器を接続します。
- JAO の電源を入れ、リカバリモードに設定します。
・How-To > Force Recovery Mode - ホストPC上で SDK Manager を起動します。
・Download ページ
【重要】本書の手順を実行するとターゲット上の NVMe SSD や一部のオンボードストレージメモリが書き換えられます。必要なデータがターゲット上のストレージ (eMMC、NVMe SSD等) に保存されている場合は事前にバックアップを取っておいてください。
【メモ】(オプション) JAO の J26 マイクロ USB 端子とホストPCを USB ケーブルで接続する (How-To > USB micro-B for Debug UART) とデバッグ用のシリアルターミナルを使うことができます。インストール中はターゲットのインストール中ログが表示されます。
Step 01:
SDK Manager の GUI から以下の 4 項目の設定を確認します。
- PRODUCT CATEGORY
[Jetson]
- 製品のカテゴリーが Jetson になっていることを確認してください。 - HARDWARE CONFIGURATION
[Host Machine] — (オプション)
- これを有効にするとホストPCへ NVIDIA CUDA Toolkit がインストールされます。既にインストールされている、あるいは、NVIDIA の GPU がホストPCに装着されていないなど CUDA Toolkit のインストールが不要な場合はチェックを外してください。
- Jetson Linuxをターゲット (JAO) へインストールするには必須ではないため、必要でない限りチェックを外すことをお勧めします。
[Target Hardware]
- Jetson Linux をインストールする対象のターゲット・ハードウェアを設定します。
- この時点でホストPCと JAO を USB ケーブルで接続済みの場合、Target Hardware は自動認識、もしくは Target Hardware の選択ダイアログが表示されます。
- 今回は Jetson AGX Orin を使用します。 - TARGET OPERATING SYSTEM
[Linux]
- ターゲットへインストールする Jetpack のバージョンを選択します。
- 今回は 2023 年 2 月現在で最新の Jetpack 5.1 を選択します。(参考: JetPack Archive)
- もし、目的のバージョンが GUI のリストに表示されているものより古い場合、SDK Manager をいったん終了し、- -archivedversions オプションを追加して SDK Manager をターミナルから起動してください。 - ADDITIONAL SDKS
[DeepStream]
- 追加でインストールするSDKを指定します。この項目は上の Target Hardwareで選択したターゲットの種類によって変わります。Jetson の場合は DeepStream が選択可能です。
- 今回はチェックを外してインストールを行わないようにします。
Step 02:
ターゲットへインストールするコンポーネントを選択します。
ターゲット上で GPU を使用するアプリケーションのみを実行する場合は Jetson Runtime Components を追加でチェックします。また、ターゲット上で開発(コードのビルドなど)を行う場合はすべてのチェックを入れてください。
今回は Jetson Linux (BSP) のみをインストールするので、Jetson Linux 以外のチェックを外します。
【メモ】チェックを外したコンポーネントは Linux (Ubuntu) の apt コマンドを使い、ターゲット上で後からインストールすることができます。
最後に、画面の下の方にある license agreement にチェックを入れて [CONTINUE TO STEP 03] をクリックします。
(オプション) 以下の2項目を変更するとホストPC上にダウンロードされるファイルや作成されるフォルダの場所をデフォルトのフォルダから変更することができます。これらのファイルやフォルダは、Jetson Linux を再インストール、あるいは 2 台目以降のターゲット (JAO) へインストールするときに再利用されます。
- Download folder — アーカイブファイルのダウンロード先
- Target HW image folder — kernal や rootfs などターゲットに書き込むためのイメージファイル作成用作業フォルダ
Step 03:
GUI が Step 03 へ切り替わると、Step 02 で指定したホストPCのフォルダへアーカイブファイルのダウンロードが開始され、その後、ターゲットへインストールする Jetson Linux image の作成が始まります。
なお、過去に同じホストPC上でこのステップを実行済みで、且つ、Step 02 の Download folder、 Target HW image folder が残っている場合は、このステップは省力される場合があります。
Jetson Linux image の作成が完了すると、ターゲットにイメージを書き込む際の設定を指定するためのダイアログが表示されます。
上図の赤枠部分を変更します。以下は、今回使用する設定例です。(詳細はダイアログ内のメッセージを確認してください)
1.Manual Setup — デフォルトは Auto ですが、USB3.x を使う場合は Auto 設定は使用できません。
7.OEM Configuration — (Pre-config) ターゲットのホスト名などはプリセット済みのコンフィギュレーションを使います。ユーザーIDとパスワードのみ任意のものをここで指定してください。
8.Storage Device — 今回は NVMe SSD へインストールするので NVMe を選択します。
設定が完了したらダイアログ下部の [Flash] ボタンをクリックしてターゲットへ Jetson Linux image をダウンロード/書き込みます。
【重要】このステップを実行するとターゲット上の NVMe SSD や一部のオンボードストレージメモリが書き換えられます。必要なデータがターゲット上のストレージ (eMMC、 NVMe SSD等) に保存されている場合は事前にバックアップを取っておいてください。
GUI 上部の「TERMINAL」をクリックすると実行中のログ出力を表示することができます。問題が発生した場合に参考にしてください。
Step 04:
書き込みが完了すると GUI が切り替わりますので、右下の [FINISH AND EXIT] をクリックして終了します。
なお、インストール中、下記の完了画面が表示される前にターゲットに接続された PCディスプレイに起動画面が何度か表示されることがあります。
【メモ】デバッグ用シリアルターミナルを接続している場合は、ターミナルにログイン画面が表示されます。Step 03 でご自身が設定したユーザー ID とパスワードでログインできます。
ログイン後、mountコマンドやdfコマンドでrootfs (/dev/nvme0n1p1)がマウントされていることを確認できます。
補足
Jetson を起動 (もしくは再起動) する際、以下の画面表示中に [ESC] キーを入力すると UEFI メニューに入ることができます。
NVMe SSD を装着したまま オンボードの eMMC から起動する場合は、SDK Manager の Step 03 でインストール先を eMMC に設定して再インストールした後、UEFI メニューから Boot Device を変更してください。
Esc -> Boot Maintenance Manager -> Boot Options -> Change Boot Order (-> Commit Changes and Exit)