Jetson Nano — Run on USB Drive
Boot Jetson Nano ด้วย USB ฉบับบ้านๆ
ถ้าใครใช้ Jetson Nano ก็จะรู้ว่าแค่ image เริ่มต้นก็ซัดไป 12G แล้ว แต่จริงๆ มันมาพร้อมใช้อยู่แล้ว แต่เวลาเล่นไปสักพักจับโน่นนี่นั่นมาใส่มันก็เต็มไม่รู้ตัว มีสองทางเลือกคือ
- ใช้ USB เป็นที่เก็บ Data
- ใช้ USB boot เป็นระบบหลักซะเลย แต่ยังไงก็ต้องใช้ SD เสียบไว้สำหรับ boot อยู่นะครับ
ถ้าใครสนใจ boot ด้วย USB วิธีทำแบบบ้านๆ ง่ายๆ มีดังนี้
- Download SD image จาก Nvidia มา https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit#write
2. ตรวจสอบ USB
ตรงนี้ให้ Check ก่อนว่า USB ที่เสียบอยู่เป็น Device อะไร โดยใช้คำสั่ง
lsblk
ให้สังเกตง่ายๆ ถ้าเป็น SD ที่เสียบกับ Jetson Nano จะเป็น mmcblk0 ดังนั้น USB ภายนอกควรเป็น sda ซึ่ง path เต็มจะเป็น
/dev/sda
3. Dump Image ลง USB
ให้ใช้ คำสั่งดังนี้
unzip -p jetson-nano-sd-r32.2-2019-07-16.zip| sudo dd of=/dev/sda bs=1M status=progress
ดูชื่อ file ให้ตรงกับที่เรา Download มาด้วยนะ เมื่อเสร็จแล้วให้ eject sda ออก
sudo eject /dev/sda
4. Resize sda
เมื่อเราทำการ Dump Image ลง USB ขนาดของ Partition จะเท่ากับขนาดของ image ที่เรา download มาซึ่งของ Jetson Nano ประมาณ 12 G แต่ USB ของเราขนาดใหญ่กว่านั้น เราต้องขยายให้ใช้พื้นที่ทั้งหมดด้วยคำสั่ง
sudo resize2fs /dev/sda1
5. แก้ไข Boot loader
แก้ไข boot loader ให้ boot ไปที่ USB
sudo vim /boot/extlinux/extlinux.conf
ใส่ข้อมูลดังนี้
TIMEOUT 30
DEFAULT usbMENU TITLE L4T boot optionsLABEL primary
MENU LABEL primary kernel
LINUX /boot/Image
INITRD /boot/initrd
APPEND ${cbootargs} quietLABEL usb
MENU LABEL usb boot
LINUX /boot/Image
INITRD /boot/initrd
APPEND ${cbootargs} rootfstype=ext4 root=/dev/sda1 rw rootwait
6. ฺReboot
ควรจะ Boot เข้า USB นะถ้าไม่ได้ก็ทำใหม่หรือจะถอดใจก็ได้นะ :P
7. ถ้าจะสลับไปใช้ SD ให้แก้ไข /boot/extlinux/extlinux.conf ใน SD จากระบบที่กำลัง run อยู่บน USB โดยการ df ดูว่า mount อยู่ที่ไหนครับ