Skip to content

Flashing the Jetson

Will Heitman edited this page Oct 30, 2021 · 2 revisions

Sometimes it's nice to reset the entire Jetson. It allows us to update to the latest software and reinstall our codebase onto a blank canvas. This is what flashing does.

Steps

Initial flash

  1. a. If the Jetson is installed on the Orbitty Carrier board (inside that small black navigatorl box), we'll need to follow a special flashing process. Follow all steps outlined here, then head back here.

    b. If the Jetson is simply installed on the developer kit board (a square black PCB about 8"x8"), then follow steps 1-8 from above, step 11, then execute ./flash.sh jetson-tx2-devkit mmcblk0p1

Transferring to a bigger SSD

Step 1 should flash all software onto the board's tiny 32 GB internal storage (eMMC). We want to copy everything from eMMC to our external 2 TB SSD.

  1. Plug the SSD into the Jetson's USB hub and open the "Disks" program on the Jetson. Select the 2 TB SSD (should show up as Seagate or Lacie something like that), then format the whole disk and create an ext4 partition. Name the new disk something obvious like "JetsonSSD".
  2. Copy all the contents from your rootfs to the SSD using sudo cp -ax / /media/<username>/<new disk name>. The command takes a minute or two.
  3. Finally, edit the boot config to boot into the SSD by default. Open the config file using sudo gedit /boot/extlinux/extlinux.conf and add a new entry like so:
## extlinux.conf
TIMEOUT 30
DEFAULT primary

MENU TITLE L4T boot options

    LABEL primary
          MENU LABEL primary kernel
          LINUX /boot/Image
          INITRD /boot/initrd
          APPEND ${cbootargs} root=PARTUUID=29100999-abe5-4eb9-84e8-eedd22c31ee3 rw rootwait rootfstype=ext4
    #APPEND ${cbootargs} quiet

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

Note: The SSD is referred to here by its PARTUUID. This is a unique ID assigned to each physical storage device, and so the kernel is therefore guaranteed to boot to it every time. You can alternatively do something like root=/dev/sda1, but those labels are assigned by the kernel and therefore not reliable. You can find your PARTUUID using instructions online.

  1. Reboot the system. If everything works, the Jetson should boot to the SSD.
Clone this wiki locally