Move OS to USB SSD

If you find the Linux_for_Tegra, just check if exists or not. If not, copy it there.

And just follow the steps from document. Please do read anything else that you cannot understand. They have nothing to do with what you want to do.

I got stopped at the copy to rootfs.

wsprdaemon@ibm01:~/nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_NANO_DEVKIT/Linux_for_Tegra$ sudolsblk -p -d | grep sd
sudolsblk: command not found
wsprdaemon@ibm01:~/nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_NANO_DEVKIT/Linux_for_Tegra$ sudo lsblk -p -d | grep sd
[sudo] password for wsprdaemon:
/dev/sda 8:0 0 465.8G 0 disk
/dev/sdb 8:16 0 931.5G 0 disk
wsprdaemon@ibm01:~/nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_NANO_DEVKIT/Linux_for_Tegra$ sudo parted /dev/sdb mklabel gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? y
Information: You may need to update /etc/fstab.

wsprdaemon@ibm01:~/nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_NANO_DEVKIT/Linux_for_Tegra$ sudo parted /dev//sdb mkpart APP oGB 995GB
parted: invalid token: oGB
File system type? [ext2]? ^C
Error: Expecting a file system type.
wsprdaemon@ibm01:~/nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_NANO_DEVKIT/Linux_for_Tegra$ sudo parted /dev//sdb mkpart APP 0GB 995GB
Information: You may need to update /etc/fstab.

wsprdaemon@ibm01:~/nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_NANO_DEVKIT/Linux_for_Tegra$ sudo mkfs.ext4 /dev/sdb1
mke2fs 1.44.1 (24-Mar-2018)
/dev/sdb1 contains a ext4 file system
last mounted on Tue Jun 22 16:54:44 2021
Proceed anyway? (y,N) y
Creating filesystem with 242913669 4k blocks and 60735488 inodes
Filesystem UUID: 434f133f-f7fd-4679-9ad7-5f9f7e6aa4fc
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848

Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done

wsprdaemon@ibm01:~/nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_NANO_DEVKIT/Linux_for_Tegra$ sudo mount /dev/sdb1 /mnt
wsprdaemon@ibm01:~/nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_NANO_DEVKIT/Linux_for_Tegra$ sudo cp <> rootfs/usr/sbin/l4t_payload_updater_t210
bash: rootfs/usr/sbin/l4t_payload_updater_t210: Permission denied


If I add the -v switch to the cp command might I learn the cause of the error?
I added the -v switch to the end of the cp command … no difference.
I checked that sdb1 is mounted at /mnt.

What is your actual command to cp files?

Right there in the log of all the commands. The last two lines.

sudo cp <> rootfs/usr/sbin/l4t_payload_updater_t210
bash: rootfs/usr/sbin/l4t_payload_updater_t210: Permission denied

What is the correct file that you want to copy? I mean there is no file with name that has these symbol "<> ". Please just share us the path and actual file name.

I just checked, if you are using rel-32.5.1, then you don’t have to copy this file. It already existed in the rootfs.

is there a command, directory, file that I can learn if I have 32.5.1 ready? The only numbers I see everywhere are for JetPack 4.5.1

jetpack4.5.1 contains the release 32.5.1.

Just read each page carefully and you will notice it…

You can think rel-32.5.1 is the version of the OS. Jetpack includes other software which are not part of OS. For example, cuda, cudnn, tensorRT … etc.

OK. So I should resume with the sudo chmod, then skip step 7 and resume at step 8 for the unmount.
When I boot with the USB disk should it be with or without the old micro sd card still in place?

The most important thing is actually to dump the uart serial console log first.

Ideally, sdcard can be removed.

“…dump the uart serial log first.” How do I do this?
I am using minicom and after some head-scratching and loop testing, I learned I need to turn off hardware flow & control. I was able to change the boot_targets. I then tried to boot from SSD but it did not work. I saw a voltage message pass then it went on to boot from the mmc. I will copy that info to the next reply.

minicom01.txt (18.6 KB)
minicom01.txt attached.

Is there anything I can do to work past this new problem?
This log, no mmc.

Is there any content in your usb ssd now?

$ sudo mount bootloader/system.img.raw ./tmp_system
$ sudo rsync -axHAWX --numeric-ids --info=progress2 --exclude=/proc ./tmp_system/ /mnt

These two steps should mount and copy the root file system to your usb ssd. Thus, after these steps, your usb ssd shall have a copy of system image on it.


This CAN’T work.
The building of the ./tmp_system mount point is within Step 7 !

The instructions are: "For Jetson Nano using eMMC memory, and for other Jetson devices, SKIP THIS STEP

The skip is for step 6… but not step 7. Can you read the document carefully?

I will start over.
The format of my copy gives the impression that instructions are given preceding step 7, not following in step 6.

Giving instructions following actions is not common in my experience.

I am stuck at the command sudo BOOTDEV=sda1 ./ --no-flash board sda1

I have the SSD and the Nano connected to the Host machine.
I assume the nano is in recovery mode as I had the FC REC grounded at power on.
The lsusb -d ‘0955:’ gives device ID 0955:7f21

I found the in the Linux_for_Tegra directory, but I still don’t know what to use for board. I have tried Tegra 210, 0955:7f21, P3450.
What should I use for a Valid target board name?

Check the quick start guide.

Thank you. That led me to the L4T list Quick Start.
I see the highest version number is 32.2.1 – 2019/12/17
I also see the latest date with version 28.4 – 2020/07/07

I selected the 32.2.1 version
for board I selected jetson-nano-qspi as the board name
sudo BOOTDEV=sda1 ./ --no-flash jetson-nano-qspi sda1
That worked. I still have the terminal output if needed.

When I entered the
sudo mount bootloader/system.img.raw ./tmp_system
I received the ERROR
mount: /home/…/Linux_for_Tegra/tmp_system: special device bootloader/system.img.raw does not exist.
Where did I go wrong?