Jetson/L4T/Boot From External Device

Introduction

 * Flash device with rootfs on external devices.
 * With new releases >= rel-32, external (USB, SATA, MMC) is being used as identification is solely on UUID based and not type of media.

Steps
1. Create GPT and partiton using gdisk on external device: $sudo gdisk /dev/sdx "o" -> clear all current partition data "n" -> create new partition "1" -> partition number /dev/sdx1 "40M"first sectors -> Press enter or "+32G" last sectors "Linux filsystem" -> using default type "c" -> partition's name "PARTLABEL" "w" -> write to disk and exit. 2. Check partition UUID: $ sudo blkid /dev/sdx1 3. Copy PARTUUID to bootloader/l4t-rootfs-uuid.txt

4. Copy rootfs to SDcard: $ sudo mkfs.ext4 /dev/sdx1 (check PARTUUID again) $ sudo mount /dev/sdx1 /mnt $ cd rootfs/ $ sudo tar -cpf - * | ( cd /mnt/ ; sudo tar -xpf - ) $ sudo umount /mnt 5. Flash the board with rootfs device (external is for sdcard, usb, sata and mmc): $ sudo ./flash jetson-tx2 external

Check
After boot up, the u-boot logs will like below: TEGRA186 Model: NVIDIA P2771-0000-500 DRAM: 7.8 GiB MC:  Tegra SD/MMC: 0, Tegra SD/MMC: 1 *** Warning - bad CRC, using default environment In:   serial Out:  serial Err:  serial Net:  eth0: ethernet@2490000 Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc1 is current device Scanning mmc 1:1... Found /boot/extlinux/extlinux.conf Retrieving file: /boot/extlinux/extlinux.conf 733 bytes read in 127 ms (4.9 KiB/s) L4T boot options 1:	primary kernel Enter choice: 1:	primary kernel Retrieving file: /boot/initrd 5564673 bytes read in 697 ms (7.6 MiB/s) Retrieving file: /boot/Image 34179080 bytes read in 3848 ms (8.5 MiB/s) append: root=PARTUUID=ec27c846-88af-41f6-bd4b-fd46c54bb5ce rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 video=tegrafb no_console_suspend=1 earlycon=uart8250,mmio32,0x3100000 nvdumper_reserved=0x2772e0000 gpt tegra_fbmem2=0x800000@0x9607b000 lut_mem2=0x2008@0x96078000 usbcore.old_scheme_first=1 tegraid=18.1.2.0.0 maxcpus=6 boot.slot_suffix= boot.ratchetvalues=0.2031647.1 bl_prof_dataptr=0x10000@0x275840000 sdhci_tegra.en_boot_part_access=1 quiet