はじめに
前回の記事では、中古PC(Optiplex3020)にUbuntu24.04をインストールしました。

ようやく、今回はNVIDIA SDK Managerを使ってJetsonnanoを復活させようと思います!
環境
ホストPC:DELL OPTIPLEX 3020 micro
OS: Ubuntu 24.04LTS
Jetson:Jetson nano 4GB(B01)
SDK Manager:2.2.0.12028-Ubuntu_18.04(Docker image)
Jetsonnanoの準備
まず、Jetson nanoをリカバリーモードにする必要があります。
画像からは非常に分かりづらいんですが、、「FC REC」と「GND」をジャンパーピンで繋ぎます。
これで強制的に「Force Recovery」モードにすることが出来ます。
この状態で、Micro USB Type-Bのケーブルを使い、ホストPCに接続します。
※電源を入れる順番等は特に意識しませんでしたが、USBケーブルを繋いでホストPCの電源ON→Jetsonnanoの電源ONの順番にしました。
Docker imageのダウンロード
直接SDK Managerをインストール方法もあるんですが、
今回はホストPCが24.04でJetsonnanoに対応していないため、Docker imageを使います。
なお、対応表もリンク先にあります。

今回はJetsonnanoでJetPack 4.xになるため、16.04か18.04の環境が必要です。
ということで、用意されていたDocker Image - Ubuntu 18.04をダウンロードしてDocker環境からセットアップすることにします。
Docker imageの作成
公式サイトからダウンロードが完了したら、以下のコマンドを実行します。
docker load -i ./sdkmanager-2.2.0.12028-Ubuntu_18.04_docker.tar.gz
公式のサイト勧められるがまま、latestのタグをつけておきます。(つけなくてもいいと思いますが、実行するときに面倒なので)
docker tag sdkmanager:2.2.0.12028-Ubuntu_18.04 sdkmanager:latest
Jetsonnanoをセットアップする#1
ここからはこちらの記事を参考にしました

sdkmanagerを使った書き込みのためのコマンドは同じでいいと思いますが、
バージョンは4.6.6が最新なので、そちらにしようと思います。
docker run -it --privileged -v /dev/bus/usb:/dev/bus/usb/ \
--name JetPack_NX_Devkit \
sdkmanager --cli install \
--logintype devzone \
--product Jetson \
--version 4.6.6 \
--targetos Linux \
--target JETSON_NANO_TARGETS \
--flash all \
--license accept \
--staylogin true \
--datacollection enable \
--exitonfinish
上記のコマンドを実行すると、ターミナル上でNVIDIAへのログインの方法が案内されます。
急にバカでかいQRコードが表示されるんですが、少し戻って読まないと何なのかよくわかりません。。
ログイン方法が2つ示されています。
Login ---------------------------------------- ┓
--TWO WAYS TO LOG IN--
Open https://static-login.nvidia.com/service/default/pin?user_code=xxxxxxxx
--OR--
Scan QR code:
今回はURLから行ってみました。
すでに登録済であれば(SDKManagerインストール時に登録していると思いますが)
画面に従ってログインすると自動的にインストールが進みました。
ただ、なぜか一度コンテナが落ちたのでコンテナに入り直してみましたが、
とりあえず以下のコマンドを打ってみました。
sdkmanager --help
SDK Manager is already running; please use the running SDK Manager instance.
すでにインスタンスがあるとのことだがよくわからないので。。。
一回コンテナを落として再度同じ手順を踏んでみました。
今度はうまく行っている様子。
後は待つだけだと思っていましたが。。1回目はいつまで経ってもインストールが完了せず。
もう一度コンテナを立ち上げるところから実行してみます。
Drivers for Jetson - File System Is Not Supported
The current image only supports to be installed on an EXT4 file system, continue installing may cause failure later.
1回目はちゃんと見ずに進めてしまいましたが、エラーというか警告が出ている模様。
多分失敗するけど…と言われているので、対処したほうが良さそう。
内容的にSDカードをEXT4でフォーマットすればいいのかもしれない
(Jetpackをインストール済のSDカードを使っていた)
ということで、一旦終了してJetsonnanoの電源を落とし、SDカードをフォーマットし直してみることに。
SDカードをEXT4にフォーマット
まず、以下のコマンドをSDカードの抜き差し有無で実行します。
差分を見れば、どのデバイスがSDカードに当たるのかがわかります。
lsblk
今回は、sdbというデバイス名になっているようです。
以下のコマンドを実行してfdiskを実行します。
sudo fdisk /dev/sdb
すると、ターミナルで以下のような出力が出てきます。
fdisk (util-linux 2.39.3) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。
GPT PMBR size mismatch (61095935 != 121561087) will be corrected by write.
コマンド (m でヘルプ): p
ディスク /dev/sdb: 57.96 GiB, 62239277056 バイト, 121561088 セクタ
Disk model: Storage Device
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: B81CC800-DEB8-47E1-A23C-04D0D166A06A
デバイス 開始位置 最後から セクタ サイズ タイプ
/dev/sdb1 28672 61093887 61065216 29.1G Linux ファイルシステム
/dev/sdb2 2048 2303 256 128K Linux ファイルシステム
/dev/sdb3 4096 4991 896 448K Linux ファイルシステム
/dev/sdb4 6144 7295 1152 576K Linux ファイルシステム
/dev/sdb5 8192 8319 128 64K Linux ファイルシステム
/dev/sdb6 10240 10623 384 192K Linux ファイルシステム
/dev/sdb7 12288 13055 768 384K Linux ファイルシステム
/dev/sdb8 14336 14463 128 64K Linux ファイルシステム
/dev/sdb9 16384 17279 896 448K Linux ファイルシステム
/dev/sdb10 18432 19327 896 448K Linux ファイルシステム
/dev/sdb11 20480 22015 1536 768K Linux ファイルシステム
/dev/sdb12 22528 22655 128 64K Linux ファイルシステム
/dev/sdb13 24576 24959 384 192K Linux ファイルシステム
/dev/sdb14 26624 26879 256 128K Linux ファイルシステム
パーティション情報の項目がディスクの順序と一致しません。
大量のパーティションがあるので、
dとEnterを連打し、すべてのパーティションを削除します。wで反映します。
また、再び以下のコマンドを実行します。
sudo fdisk /dev/sdb
以下コマンドを実行し、nとEnterでパーティションを作っておきます。
sudo mkfs.ext4 /dev/sdb
これでフォーマットされたはず。。
Jetsonnanoをセットアップする#1
もう一度、SDカードをJetsonanに差し直し、コンテナの実行から再トライしてみます。
が。。また同じ警告が出てきてしまいました。
一旦、調べながら無視して進めてみることにします。
Jetson OS imageの準備ができたので、書き込むかどうかを確認されます。
「Yes, I want to flash」を選択して書き込んでみます。
警告は出ていましたが、どうもOSの書き込みは成功した模様。
続けてみます。
うーん、OSのインストールはうまく進みましたが、
CUDAなどのインストールはうまく進まなかった模様。。
Jetson nanoの起動
OSのインストールは完了していた様子だったので、電源を入れてみると…
起動しました!
どうやらOSは正常に書き込めたようです。
ようやくこれで振り出しに戻る…!(いや戻れてない)
さてこの後どうしよう。。