Ubunutu24.04LTSのPCでJetsonnano4GBをセットアップする ~Jetsonnanoで入場者カウントをしたい⑤~

はじめに

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

DELL OPTIPLEX3020 microにUbuntuをインストールする~Jetsonnanoで入場者カウントをしたい④~
はじめに前回の記事前の記事でJetson nanoが全く起動しない状況になってしまいました。調べたところ、再起動するにはLinux PC(仮想環境不可)が必要とのこと。WindowsPCでUSBからブートすることが出来なくもなさそうでしたが...

ようやく、今回は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を使います。
なお、対応表もリンク先にあります。

SDK Manager
An end-to-end development environment setup solution for DRIVE, Jetson, and more. SDKs.

今回は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

ここからはこちらの記事を参考にしました

JetsonNanoが起動しなくなったのでリカバリーモード+SDK Manager on Dockerで復帰 - Qiita
SDカード抜き差ししてたり、初期化を繰り返していたらJetson Nanoが急に起動しなくなりました。具体的には電源を入れてもNVIDIAのロゴすら画面に表示され無い状況となってしまいました。ネッ…

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は正常に書き込めたようです。
ようやくこれで振り出しに戻る…!(いや戻れてない)
さてこの後どうしよう。。

S.N

S.N

元メカ設計者、現AIエンジニア(画像認識)。よく言えば何でもできるが悪く言えば器用貧乏。

タイトルとURLをコピーしました