Move OS to USB SSD

With help from WayneWWW my Nano is working well with Jetpack 451 from the mSD. My Next step is to move the OS to USB SATA SSD. I have the “Flashing to a USB drive” 9 step procedure from Developers Guide 32.4.2. I will be using my x86 machine with SDK manager installed. If I read the instructions correctly I will need to skip step 7?
I do have the 954 USB-to-TTL adapters and will test it before I start the move process. I need to be pointed to the command sequence to change the Boot code to use the USB in preference over the Msd. All recommendations to avoid errors will be appreciated. “Flashing to a USB drive” procedure allows.

Flashing to a USB Drive
Applies to: Jetson Xavier NX, Jetson Nano devices, Jetson AGX Xavier series, and Jetson TX1 only
Jetson Xavier NX, Jetson Nano devices, Jetson AGX Xavier series, and Jetson TX1 can be booted from a USB device with mass storage class and bulk only protocol, such as a flash drive. Hot plugging is not supported; the flash drive must be attached before the device is booted.
To set up a flash drive for booting
1.Connect the flash drive to the host computer.
2.Check the flash drive’s device name (e.g. /dev/sdb):
$ sudo lsblk -p -d | grep sd
3.Create a new GPT:
$ sudo parted /dev/ mklabel gpt
Where is the device name that your host computer assigned to the flash drive.
For example, if the host computer assigns the flash drive device name sdb, the command is:
$ sudo parted /dev/sdb mklabel gpt
4.Add the APP partition:
$ sudo parted /dev/ mkpart APP 0GB
Where is the size of the partition. It must be at least 16 GB. It may be larger if the flash drive has enough space.
For example, if is sdb and the partition is to contain 16 GB, enter:
$ sudo parted /dev/sdb mkpart APP 0GB 16GB
The device name of the APP partition will be /dev/1.
5.Format APP as an ext4 partition and mount it.
$ sudo mkfs.ext4 /dev/1
$ sudo mount /dev/1 /mnt
You may format APP as ext2 or ext3, but ext4 is strongly recommended because it is faster, more compact, and more reliable.
6.For Jetson Nano using an SD card: Download the Jetson payload updater script, l4t_payload_updater_t210.py from the NVIDIA Developer web site’s L4T 32.5 Archive to the Linux_for_Tegra directory. Then copy the file to its final location and make it executable:
$ cd Linux_for_Tegra/
$ sudo cp <l4t_payload_updater_t210.py> rootfs/usr/sbin/l4t_payload_updater_t210
$ sudo chmod a+x rootfs/usr/sbin/l4t_payload_updater_t210
For Jetson Nano using eMMC memory, and for other Jetson devices, skip this step.
7.Put the Jetson device into recovery mode, then enter the following commands to generate the rootfs without flashing the device:
$ sudo BOOTDEV=sda1 ./flash.sh --no-flash sda1
$ sudo mkdir tmp_system
$ sudo mount bootloader/system.img.raw ./tmp_system
$ sudo rsync -axHAWX --numeric-ids --info=progress2 --exclude=/proc ./tmp_system/ /mnt
Where sda1 is the device name that the Jetson device will assign to APP.
8.Unmount the flash drive and disconnect it from the host computer:
$ sudo umount /mnt
$ sudo umount ./tmp_system
9.Plug the flash drive into the target device and power it on or reboot it.
To prepare files to boot from a flash drive with Secureboot enabled
When Secureboot is enabled, the kernel file /boot/Image must be signed, and the signature file must be saved as /boot/Image.sig.
If you use flash.sh to flash a device with Secureboot enabled, the script automatically creates and stores the signature file. If you create a signature file manually, you must also save it manually. For more information, see the section Signing of Kernel and Kernel-DTB Binary Files in the topic Jetson Xavier NX and Jetson AGX Xavier Series Boot Flow.

First, you can interrupt the uboot from uart. Which will need to set up uart console first.

Then, when you see it enters the uboot use keyboard from host to interrupt it. And reset the boot target.

printenv boot_targets
setenv boot_targets usb0 mmc1 mmc0 nvme0 pxe dhcp
saveenv
boot

From step 6: 6.For Jetson Nano using an SD card: Download the Jetson payload updater script, l4t_payload_updater_t210.py from the NVIDIA Developer web site’s L4T 32.5 Archive to the Linux_for_Tegra directory. Then copy the file to its final location and make it executable

I logged into nvidia Developer, Downloads, Download Center, Jetson, Jetson Downloads Archive.
I do not see anything with version 32.5 and I do not find any program "payload Updater. I am not at the correct place.
What is the correct URL for this download?

If you didn’t try to use driver package before, refer to the quick start guide on the download center.

And the URL for driver package is in below link.

…use the driver package…? Do I need to USE the driver package to download the l4t_payload_updater_t210.py script?

The python file is here. You need the driver package (Linux_for_Tegra) to run with it. The steps for flashing usb drive already mentioned it.

If you totally don’t have any idea how to flash jetson nano, just ask.

I admit to being well flummoxed. You did help me last week in flashing to micro sd using SDKmanager and Jetpack 451. I did some searching for L4T32.5 and found L4T32.5.1 is the most current. Also, I read that Linux_for_Tegra is included in Jetpack 451. I went looking in my Nano for the directory Linux_for_Tegra but did not find that directory. Hopefully, it IS there somewhere.

Linux_for_Tegra is always on your x64 host machine.
Not on jetson device.

It is downloaded by sdkm to your host and then use it to flash your sdcard.

Also, the steps you are trying to flash to USB drive is also done on host. Not jetson.

Yes, the ‘host’ is my SDKmanager x86 machine. Where on that machine might I find the Linux_for_Tegra directory to check that I have the l4t_payload_updater_t210.py file installed? The “patch name” link that you previously listed is an image with no URL links.
Thank you for your extended patience.

Because the URL link is on the above of that image… Did you see that L4T 32.5 Archive?

Thank you. Yes, that leads me to the L4T 32.5 page where the third paragraph is " L4T 32.5 is included as part of [JetPack 4.5]"I assume that the correct files are held in SDKmanager space.

So I assume that I should be able to find the …Tegra directory on my host machine.
I did sudo find / -type d -name “Linux_for_Tegra”
and
sudo find / -type d -name “linux_for_tegra”

Both gave me errors.
On my Host machine, how can I find the correct files?

If you downloaded and flashed sdkmanager before, then it should be at ~/nvidia/

No, not there.
$ cd ~/nvidia/
nvidia $ ls
nvidia_sdk
cd nvidia_sdk
ls -l
total 0

I did find lib/firmware/nvidia/tegra210
ls
vic04_ucode.bm xusb.bin

I do have the …updater_t210.py file. just need the correct place tp place it.

I do have a new question: Should the Linux_for_Tegra directory be put on the new flash drive?
See the last command of step 5 “sudo mount /dev/1 /mnt.”

Are you sure you really used sdkmanager on this x64 host before and you didn’t remove them?

For example, this is from my host machine.

cd ~/nvidia/nvidia_sdk/JetPack_4.
JetPack_4.4.1_Linux_JETSON_NANO_2GB_DEVKIT/
JetPack_4.4_Linux_JETSON_TX2I/
JetPack_4.5_Linux_JETSON_TX2/

There is a “Target HW image folder” path when you run sdkmanager. Did you change the path?

Please forget about the steps of flashing usb at this moment. Just focus on finding out the driver package on your host.

You are still far from doing the flashing steps. I don’t want those steps to interfere you.

Yes. I only have one x86 machine with SDK-manager. This is the same machine that You and I worked with to solve [Jetson nano Kit B01 Bricked]. I will bring up SDK manager later today and report.

FYI, the actual “~/nvidia/nvidia_sdk/JetPack...version...” directory is created upon first flash of a particular Jetson model via SDK Manager/JetPack. You don’t have to actually complete the flash, but for example you could start and tell it you are flashing that model, not adding any of the extra packages (e.g., skip adding CUDA to the Jetson or the host PC), and then stop the operation when it asks for you to put the Jetson in recovery mode for actual flash. This would create the missing directory. If not, then something else is wrong.

here is the output of a echo “$PATH”
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

from mu home directory I can bring up the SDKManager GUI with a sdkmanager command. I do get a startup warning message about 'too small of a machine — reduce concurrent downloads. I have changed them to 1,2 one to start, two max. This is a 4Gig i5 dual boot small pc. I have done One Flask to the micro SD card using the Micro USB port. Jetpack 4.5.1 was selected. I had one false start when I selected the build now, Flash later option in error. The next day with the correct non-selection all went well and the Nano is booting well for the micro sd card. I am running SDKmanager now. I am doing the Download and Installing at Step 3. I will not do the Flash.

There is a “Target HW image folder” path when you run sdkmanager. Did you change the path?

No, not me.
I would not know where to look. I assume it is set in some config file
And I don’t have any knowledge of a needed reason to change it.
SDKmanager finished with the download and install. I did a SKIP, SKIP when asked about FLASH. The Download dir listed on the screen was:
/home/wsprdaemon/Downloads/nvidia/sdkmdownloads
What is next?

I found the Linux_for_Tegra folder.
Home/nvidia/nvidia_sdk/Jetpack_4.5.1_L…NANO_DEVKIT/Linux_for_Tegra

Should I copy the l4T_payload_updater_t210.py file to this directory?

While reading in this directory there is READMEAutoflash.txt. In this file there is a list of the common Jetson cards. Included is the device number for each. There is NO listing for the 4Gig B01 card with a Bord ID of 3450.
Is this an oversight of documentation? Or might this code not up-to-date for the new card?

John