DEV Community

MrChoke
MrChoke

Posted on • Originally published at Medium on

Jetson Nano — Run on USB Drive

Jetson Nano — Run on USB Drive

Boot Jetson Nano ด้วย USB ฉบับบ้านๆ

ถ้าใครใช้ Jetson Nano ก็จะรู้ว่าแค่ image เริ่มต้นก็ซัดไป 12G แล้ว แต่จริงๆ มันมาพร้อมใช้อยู่แล้ว แต่เวลาเล่นไปสักพักจับโน่นนี่นั่นมาใส่มันก็เต็มไม่รู้ตัว มีสองทางเลือกคือ

  1. ใช้ USB เป็นที่เก็บ Data
  2. ใช้ USB boot เป็นระบบหลักซะเลย แต่ยังไงก็ต้องใช้ SD เสียบไว้สำหรับ boot อยู่นะครับ

ถ้าใครสนใจ boot ด้วย USB วิธีทำแบบบ้านๆ ง่ายๆ มีดังนี้

  1. Download SD image จาก Nvidia มา https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit#write

  2. ตรวจสอบ USB

ตรงนี้ให้ Check ก่อนว่า USB ที่เสียบอยู่เป็น Device อะไร โดยใช้คำสั่ง

lsblk

List รายการ disk ทั้งหมด

ให้สังเกตง่ายๆ ถ้าเป็น SD ที่เสียบกับ Jetson Nano จะเป็น mmcblk0 ดังนั้น USB ภายนอกควรเป็น sda ซึ่ง path เต็มจะเป็น

/dev/sda
  1. 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
  1. Resize sda

เมื่อเราทำการ Dump Image ลง USB ขนาดของ Partition จะเท่ากับขนาดของ image ที่เรา download มาซึ่งของ Jetson Nano ประมาณ 12 G แต่ USB ของเราขนาดใหญ่กว่านั้น เราต้องขยายให้ใช้พื้นที่ทั้งหมดด้วยคำสั่ง

sudo resize2fs /dev/sda1

ก่อนและหลัง resize2fs

  1. แก้ไข Boot loader

แก้ไข boot loader ให้ boot ไปที่ USB

sudo vim /boot/extlinux/extlinux.conf

ใส่ข้อมูลดังนี้

TIMEOUT 30
DEFAULT usb

MENU TITLE L4T boot options

LABEL primary
 MENU LABEL primary kernel
 LINUX /boot/Image
 INITRD /boot/initrd
 APPEND ${cbootargs} quiet

LABEL usb
 MENU LABEL usb boot
 LINUX /boot/Image
 INITRD /boot/initrd
 APPEND ${cbootargs} rootfstype=ext4 root=/dev/sda1 rw rootwait
  1. ฺReboot

ควรจะ Boot เข้า USB นะถ้าไม่ได้ก็ทำใหม่หรือจะถอดใจก็ได้นะ :P

after boot to USB

  1. ถ้าจะสลับไปใช้ SD ให้แก้ไข /boot/extlinux/extlinux.conf ใน SD จากระบบที่กำลัง run อยู่บน USB โดยการ df ดูว่า mount อยู่ที่ไหนครับ

Top comments (0)