Jetson nano を USB で動作させる 2020年05月

May 04, 2020

動作確認と、ベンチマークが終わった Jetson nano が、ホコリを被っている。

サーバーか何かに転用しようと思い立ったのですが、
microSDはすぐに壊れるので、長期稼働に耐えられるように、USB Boot できないか調べたところ、Jetson hacks にガイドを発見できたので、試してみる。

今回登場する方法は、Jetson Hacks では2番目の方法らしい。

なお、最終的に、micro SD カードを抜いて起動することは できません!
起動しには、micro SD カードを刺しておいてください。

Jetson hacks のガイド

Jetson Nano – Run From USB Drive https://www.jetsonhacks.com/2019/09/17/jetson-nano-run-from-usb-drive/

ポイント

You should do this on a freshly flashed Micro SD card

と有るので、素直に OS を焼き付け直す。

OS セットアップ

Getting Started With Jetson Nano Developer Kit
https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit

img 取得

Jetson Nano Developer Kit SD Card Image,

nv-jetson-nano-sd-card-image-r32.4.2 だった。

micro sd カードをフォーマットする

sd card formatter を使用しなさいということなので、従う。

焼き付ける

Balena Etcher を使用しなさいということなので、従う。

電源

今回は、5V 4A の電源を使用しますので、J48 ピンをジャンパーでショートさせておきます。

起動とセットアップ

言語は English, キーボードは Japanese > Japanese にしました。

起動する

電源をさして、起動します。

USB Boot の設定をする

Git clone

git clone https://github.com/JetsonHacksNano/rootOnUSB
cd rootOnUSB
./addUSBToInitramfs.sh

外付けSSDの準備

Youtube に従います。

フォーマット

disks を起動して、Compatible with all sytem... で format.

パーティション作成

Volume. End に 10GB 残して設定
Volume name 適当に設定する。 NanoSSD256 など
Type internal Disk for use with Linux systems only (Ext4) を選択

Step データのコピー

まず、マウントしましょう。

左のアイコンをダブルクリックすると、マウントしてくれる

コマンド実行

./copyRootToUSB.sh -p /dev/sda1

Step 4 /boot/extlinux/extlinux.conf の修正

/boot/extlinux/extlinux.conf を修正します。

設定ファイルのバックアップを取って

cd /boot/extlinux
sudo cp extlinux.conf extlinux.conf.org
TIMEOUT 30
DEFAULT primary

MENU TITLE L4T boot options

LABEL primary      MENU LABEL primary kernel      LINUX /boot/Image      INITRD /boot/initrd-xusb.img      APPEND ${cbootargs} root=UUID=db47586f-2cf9-494c-99ba-1ea322190395 rootwait rootfstype=ext4
LABEL sdcard      MENU LABEL primary kernel
      LINUX /boot/Image
      INITRD /boot/initrd
      APPEND ${cbootargs} quiet

# 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}

みたいにします。

もともと有ったセクションの LABEL は、 sdcard などとしましょう。

UUID に関しては、 ~/rootOnUSB/diskUUID.sh が吐き出してくれますので、コピペしましょう。

Reboot

再起動して、SSD がマウントされていることを確認します。