Jetson nanoでusb boot & swapfile
Jetson nanoを入手してやっとセットアップしました。
2019.08.02 JETPackを更新したので、記事も編集しました。
インストールしたJatPack
L4T 32.2 (JetPack 4.2.1)
microSDにOS書き込み
以下のサイトを参考にしました。
Ubuntuで作成したがEtcherでは
うまくいかなかったのでコマンドラインから作成した。
# SDカードのデバイス名の確認 dmesg | tail | awk '$3 == "sd" {print}' # 以下のように61.9GBのSDカードを発見 デバイス名はsdc #[ 4568.474656] sd 6:0:0:0: [sdc] 120946688 512-byte logical blocks: (61.9 GB/57.7 GiB) # ダウンロードしたOSイメージ(zip)データをSDカードに書き込む unzip -p ~/Downloads/jetson-nano-sd-r32.2-2019-07-16.zip | sudo dd of=/dev/sdc bs=1M status=progress
HDMIやマウスやキーボードをちゃんと接続して起動しないと
あとから接続しても認識しなかったのでちゃんと接続してから起動しよう。
USB(SSD)ドライブからブートする
以下のサイトを参考にしました。
git clone https://github.com/JetsonHacksNano/rootOnUSB cd rootOnUSB/ ./buildKernel.sh # ! EXT4にフォーマットしたSSDを接続する # mount pointを作成 sudo mkdir /mnt/ssd # デバイス名を確認 lsblk #sda 8:0 0 59G 0 disk #└─sda1 8:1 0 59G 0 part # マウントする sudo mount -t ext4 -o defaults /dev/sda1 /mnt/ssd # ラベル名をつける sudo e2label /dev/sda1 NanoSSD64GB # ラベル名を確認 sudo e2label /dev/sda1 ./copyRootToUSB.sh -v NanoSSD64GB # ルートドライブを設定 cd /boot/extlinux/ sudo cp extlinux.conf extlinux.conf.orig sudo gedit extlinux.conf # 編集前 ## LABEL primary ## MENU LABEL primary kernel ## LINUX /boot/Image ## INITRD /boot/initrd ## APPEND ${cbootargs} quiet # 編集後 ## LABEL primary ## MENU LABEL primary kernel ## LINUX /boot/Image ## INITRD /boot/initrd ## APPEND ${cbootargs} rootfstype=ext4 root=/dev/sda1 rw rootwait ## ## LABEL sdcard ## MENU LABEL primary kernel ## LINUX /boot/Image ## INITRD /boot/initrd ## APPEND ${cbootargs} rootfstype=ext4 root=/dev/mmcblk0p1 rw rootwait # 再起動 sudo reboot # ルートドライブを確認 df ## Filesystem 1K-blocks Used Available Use% Mounted on ## /dev/sda1 60630892 16112052 41409260 29% / ## none 1780892 0 1780892 0% /dev ## tmpfs 2025464 4 2025460 1% /dev/shm ## tmpfs 2025464 20120 2005344 1% /run ## tmpfs 5120 4 5116 1% /run/lock ## tmpfs 2025464 0 2025464 0% /sys/fs/cgroup ## tmpfs 405092 12 405080 1% /run/user/120 ## tmpfs 405092 116 404976 1% /run/user/1000 ## /dev/mmcblk0p1 119808192 16101980 98690652 15% /media/kinacon/d0a54240-9799-4f63-a90b-1a3f5ca4eda8
途中でエラー発生
OS書き込み完了したもの(updateしていない状態)を使用しないと
./buildKernel.sh
で躓くっぽい。
解決方法
以下をインストールすることでうまく行きました。
sudo apt install bzip2=1.0.6-8.1 libbz2-1.0=1.0.6-8.1
スワップファイルでメモリ領域不足を解消
SDカードだとスワップファイルで何度も読み書きされると故障しやすい。
でも、SSDならその可能性はぐっと下がる(SSDのほうが耐久性が高い)
消耗品なので気にしないならSDカードでもOKかとおもいます。
以下のサイトを参考にした。
/var
にswapfileを作成して、自動でマウントするようにした。
# swapfileを作成 sudo fallocate -l 6G /var/swapfile sudo chmod 600 /var/swapfile # swapfileをスワップに割り当てる sudo mkswap /var/swapfile sudo swapon /var/swapfile # 起動時にマウントさせる sudo gedit /etc/fstab # 以下を記入 # # /var/swapfile swap swap defaults 0 0 # # 確認 free -m
Swapに6Gがある。
total used free shared buff/cache available Mem: 3964 600 2168 27 1194 3163 Swap: 6143 0 6143
以上。