TX2 NX Clone

Hi, I had a question regarding the Tx2 and cloning an existing image I have. I am sort of lost on this part, is it possible to clone my current image to a new TX2 that has never been flashed, to the nvme drive directly?

You would use JetPack/SDK Manager command line to clone the rootfs of the eMMC model TX2. This produces an image of just the rootfs partition. You would need to flash the new TX2 in order to get the supporting boot related partitions, otherwise the clone won’t help. Normally you would use command line flash of the same release version JetPack/SDKM to flash the new TX2 (relative to the version which created the rootfs on the original TX2), and tell it to"reuse" the system.img file instead of generating a new one (you’d place your clone as a replacement to the “Linux_for_Tegra/bootloader/system.img” file before doing this).

The above only applies to eMMC. Steps to change to NVMe are separate. You’d probably want to fully flash just as eMMC first, and then come to the forums for help on changing it to NVMe. The content of the NVMe would mostly be a copy of the partition to the NVMe, but there would probably be a few edits to both that and the “/boot” of the eMMC.

Thanks linuxdev. So currently I have the rootfs on the nvme0 and the image itself is bigger than the eMMC. If I were to do multiple boards I would have to configure them on eMMC → nvme01 then flash with my custom image?

I haven’t set up NVMe boot since I don’t have an NVMe, but basically you’d set up the NVMe separately, and flash the Jetson itself specifically the use the NVMe. Someone else would need to give you the details.

okay thanks. I’m currently in the Linux_for_tegra using a modified flash.sh for cloning and I am getting: invalid root target nvme0n1p1.

Has anyone experienced cloning from the nvme as the root?

The flash software does not read or write an external disk. You need to do this either from another computer, or when the disk is not the rootfs but is available on a normally running Jetson. Technically you could read this as rootfs from a running system, but clone of a changing filesystem is problematic for quality.

Note: A recovery mode Jetson does not have drivers for external filesystems.

I ended up using rsync for the moment to transfer the rootfs to an SD card. Do you mean when initially configuring it to use the NVME to transfer to it?

The SD card model has QSPI memory for early boot content. The SD card itself dones not contain this. You can’t clone QSPI, so you have to flash any unit needing QSPI changes. The NVMe, when used as a rootfs, requires changes in QSPI. The non-QSPI models (eMMC models) put this same thing in the eMMC, but clone does not copy that content. So no matter which model you use, changing boot to aim at the external drive requires flashing.

You can use rsync on a live filesystem, but you are better off copying the rootfs/APP eMMC via recovery mode clone. However, a good clone won’t be enough if flash has not told the boot code to look at the external disk via flash. I’m sorry, I have not configured for NVMe since I don’t have one to use, but regardless of method of cloning you must custom flash.

Someone else may be able to tell you which doc to use for NVMe rootfs flash in combination with transfer of rootfs clone to the NVMe.

thank you for your guidance and pointing me in a direction. I will look through more of the docs