この記事では、ここで書ききれなかった、「Recovery ModeからimageをSD Cardに書き込む方法」について説明します。
なおホストPCはUbuntu 20.04がインストールされているものとします。
imageの準備
https://developer.nvidia.com/embedded/jetson-linux-archive からJetson Nanoに対応した最新のJetson Linuxを選択し、L4T Driver PackageとSample Root Filesystemをダウンロードし以下をホストPCで実行します。
なおダウンロードしたL4T Driver Packageをjetson-210_linux_r32.7.2_aarch64.tbz2、Sample Root Filesysmteをtegra_linux_sample-root-filesystem_r32.7.2_aarch64.tbz2として説明しています。
tar xf jetson-210_linux_r32.7.2_aarch64.tbz2
sudo tar xf tegra_linux_sample-root-filesystem_r32.7.2_aarch64.tbz2 -C Linux_for_Tegra/rootfs
cd Linux_for_Tegra
sudo ./apply_binaries.sh
Code language: Bash (bash)
Recovery Mode
Jetson NanoをRecovery Modeに入れるにはJetson Nano Developer Kit A02の場合、J40のPin3とPin4をジャンパーピンでショートさせ、電源を入れます。Developer Kit B01と2GBの場合、J50のPin9とPin10をジャンパーピンでショートさせ、電源をいれます。
ホストPCとJetson NanoをMicro USBケーブルで接続し、ホストPCで以下を実行しJetson NanoがRecovery Modeに入ったことを確認します。
$ lsusb | grep -i nvidia
Bus 001 Device 008: ID 0955:7f21 NVIDIA Corp. APX
Code language: Bash (bash)
書き込み
以下を実行しJetson Nanoのイメージを更新します。
Jetson Nano Devoper Kit A02/B01
sudo ./flash.sh -x 0x21 jetson-nano-devkit mmcblk0p1
Jetson Nano Devoper Kit 2GB
sudo ./flash.sh -x 0x21 jetson-nano-2gb-devkit mmcblk0p1
Jetson Nano Production Mode (Carrier board B01を装着時)
sudo ./flash.sh -x 0x21 jetson-nano-emmc mmcblk0p1
「JetPack SDKからSD Card Imageをダンロードし、SD Cardに書き込む方法」との違い
こちらの記事で、SD Cardにイメージを書き込む方法を2つ紹介しました。そして今回の記事では2つ目の方法を紹介しています。
JetPack SDKからSD Card Imageを書き込むほうが今回紹介した方法より簡単なので、わざわざJetson NanoをRecovery Modeに入れて書き込む意味はあるのでしょうか?
実はJetson Nanoには内部にROM(QSPI-NOR Flash)が存在し、内部のROMへの書き込みは、こちらのRecovery Modeでの書き込みが必要です。この記事は「Recovery ModeからimageをSD Cardに書き込む方法」と説明していますが正確には、「Recovery Modeからimageを内部のROMとSD Cardに書き込む方法」となります。
通常内部のROMを書き換える必要はありませんが、Secure Bootを実現したい場合は内部のROMの書き込みが必要です。またSecure Bootを有効にする際にRecovery Modeにする必要がります。Secure Bootに関しては別の記事で紹介します。
以上です。