microSDカードで起動を確認したJetson Orin NanoをUSB接続のSSDから起動するまでの手順をまとめます。

この方法の便利なところは、SDK Managerが不要なところです。 ext4フォーマットのパーティションのファイルの読み書きが必要なので、UbuntuなどのLinux環境は必要です。 (最近はWindows11でもext4フォーマットのパーティションのファイルの読み書きが可能なようですが未調査)
動作確認環境
- Jetson Orin Nano Super
- JetPack 6.2
- microSD 64GB
- USB接続のSSD(SSD-PSM960U3-MB)
手順
1. microSDカードで起動
公式のドキュメントに従って、microSDカードで起動できるようになるところまで進めます。
何段階かに分けてアップデートするのがポイントのようです。
UEFI Firmware version 3.0(JetPack 5.xのときのやつ) → JetPack 5.1.3を使ってUEFI Firmware version 5.0にアップデート → JetPack 5.1.3を使ってUEFI Firmware version 36.3.0にアップデート → JetPack 6.2を使ってUEFI Firmware version 36.4.3にアップデート
https://twitter.com/Tiryoh/status/1917168926548758743
https://twitter.com/Tiryoh/status/1917169325318045780
2. USB接続のSSDにmicroSDカードの内容をコピー
PCにmicroSDカードとUSB接続のSSDを両方とも接続して、microSDカードの内容をUSB接続のSSDにコピーします。
balenaEtcherにはSDカードのclone機能があるので、これを使ってコピーしました。ddコマンド等でもコピーできると思います。
3. USB接続のSSDのファイルを編集
/boot/extlinux/extlinux.confを編集して、ストレージを変更します
root=/dev/mmcblk0p1 -> root=/dev/sda1
TIMEOUT 30DEFAULT primary
MENU TITLE L4T boot options
LABEL primary MENU LABEL primary kernel LINUX /boot/Image INITRD /boot/initrd APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyTCU0,115200 firmware_class.path=/etc/firmware fbcon=map:0 nospectre_bhb video=efifb:off console=tty0 APPEND ${cbootargs} root=/dev/sda1 rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyTCU0,115200 firmware_class.path=/etc/firmware fbcon=map:0 nospectre_bhb video=efifb:off console=tty0
# When testing a custom kernel, it is recommended that you create a backup of# the original kernel and add a new entry to this file so that the device can# fallback to the original kernel. To do this:## 1, Make a backup of the original kernel# sudo cp /boot/Image /boot/Image.backup## 2, Copy your custom kernel into /boot/Image## 3, Uncomment below menu setting lines for the original kernel## 4, Reboot
# LABEL backup# MENU LABEL backup kernel# LINUX /boot/Image.backup# INITRD /boot/initrd# APPEND ${cbootargs}4. 起動
Jetson Orin NanoにUSB接続のSSDを接続して起動します(microSDカードは取り外しておきます)。
注意
M.2 SlotでNVMe接続のSSDの場合はおそらく/boot/extlinux/extlinux.confを編集する際のパスが変わると思います(未確認)。
参考
関連記事
- JetsonでROS1/ROS2を使う際のCUDA互換性問題と解決策古いJetson上でROS 1/ROS 2とCUDAを組み合わせる際に直面するJetPack・Compute Capability・GCCバージョンの制約と、共有ライブラリ分離やカスタムL4T Baseイメージによる解決策をまとめた調査メモ。
- 2025年6月以降ROS環境でapt-get updateするときにGPG errorが発生する場合の対処方法2025年5月末にROS/ROS 2の署名鍵が期限切れになったことで発生するGPG errorの原因と、公開鍵を差し替えて解消する手順をまとめたメモ。
- miseを使っている環境でClaude CodeのVSCode拡張機能をインストールするmiseでNode.jsを管理している環境でClaude CodeのVSCode(Cursor)拡張機能を手動インストールする手順をまとめた記事。通常の自動インストールが動作しない場合の代替手順として活用できる。
- Mini Pupper 2をROS 2 Humbleで動かすまでROSCon2022でMini Pupperの発表をしたご縁があり、本日(2025年2月3日)Makuakeでキャンペーンが始まったMini Pupper 2を一足先に入手しました。ROS 2 Humbleで動かすまでの流れを中心にROS 2開発者目線でまとめました。
- (Updated )Ubuntu 20.04と最新Intel CPUでRVizを動かすDocker設定最近ROSの開発に使用するPCを新しくしました。そこでRViz/RViz2などのOpenGLを使うソフトウェア周りでトラブルがあったので、その内容と対処方法を紹介します。