Jetson AGX Orin Dev Kit Clone Restore

Hi,

I currently have two Jetson AGX Orin Developer Kits: one with 32GB of memory and the other with 64GB of memory. I have cloned the images from both devices and intend to restore the 64GB Jetson image onto the 32GB Jetson and vice versa.

Could you please advise me on the appropriate procedure for performing this backup restoration?

Hi,
Here are some suggestions for the common issues:

1. Performance

Please run the below command before benchmarking deep learning use case:

$ sudo nvpmodel -m 0
$ sudo jetson_clocks

2. Installation

Installation guide of deep learning frameworks on Jetson:

3. Tutorial

Startup deep learning tutorial:

4. Report issue

If these suggestions don’t help and you want to report an issue to us, please attach the model, command/step, and the customized app (if any) with us to reproduce locally.

Thanks!

Hi carolyuu,

Let me explain the issue again. I have two identical Jetson AGX Orin Dev Kits; the only difference between them is that one is a 32GB version and the other is a 64GB version. Both the Jetsons have JetPack 5.1.2 and L4T version 35.4.1.
I use an M.2 SSD on both the Jetsons and I have cloned both file systems using the Backup - restore tool for Jetson.

I would like to swap both the Jetsons and essentially restore the image from the Jetson 64GB device onto the 32GB version of Jetson and restore the image from the Jetson 32GB device onto the 64GB version of Jetson.

When I tried to make this switch, I got an error saying that the board and the clone image didn’t match.

***************************************
*                                     *
*  Step 3: Start the flashing process *
*                                     *
***************************************
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for device to expose ssh ......Waiting for device to expose ssh ...Device has booted into initrd. You can ssh to the target by the command:
$ ssh root@fc00:1:1:0::2
Cleaning up...
Log is saved to Linux_for_Tegra/initrdlog/flash_1-6_0_20241127-095655.log 
Run command: 
ln -s /proc/self/fd /dev/fd && mount -o nolock [fc00:1:1::1]:/home/ben/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_AGX_ORIN_TARGETS/Linux_for_Tegra/tools/backup_restore /mnt && /mnt/nvrestore_partitions.sh -e nvme0n1 -n 
 on root@fc00:1:1::2
/mnt/images ~
nvrestore_partitions.sh: Use the default nvpartitionmap.txt as the index file.
nvrestore_partitions.sh: You are trying to flash images from a board model that does not
match the current board you're flashing onto.

Is there any workaround this issue?

Hi Addoxxx:
Since the device tree for 32G version and 64G version are different, maybe such a thing is not possible. If you clone 32G to 64G, or 64G to 32G, the device tree will also be copied, leads to a miss-used device tree.
Just like the last line said, nvrestore_partitions.sh: You are trying to flash images from a board model that does not match the current board you're flashing onto.

Hey Jameskuo,

Thanks for your input mate, appreciate it. I was hoping to avoid rebuilding the system environment and wanted to check if there was a solution to bypass this limitation while maintaining the correct device tree.

Hi Addoxxx:
I have an idea, maybe you can give it a try. It’s pretty close to the method used in backup_restore script in Jetpack 6.1. But I never tried it in Jetpack 5.1.2.

  1. Boot to initrd: Flashing Support — NVIDIA Jetson Linux Developer Guide 1 documentation

  2. In the step 4, it’s mentioned that:

$ mount /dev/sda1 /mnt
$ dd if=<rootfs partition> of=/mnt/system.img.raw
$ sync
$ umount /mnt

However, don’t just dd the partition, dd the partition them into a zstd file:
$ dd if=<rootfs partition> bs=4M status=progress | zstd -T0 -o /path/to/rootfs.tar.zst
where the rootfs partition is likely mmcblk0p1, and the path to rootfs is your USB, NFS, etc…

  1. back to Host PC/Linux_for_Tegra, remove the rootfs folder and apply your rootfs:
$ cd Linux_for_Tegra
$ sudo rm -rf rootfs/*
$ sudo tar -x -I 'zstd -T0' -pf your-rootfs.tar.zst -C `pwd`/rootfs/
  1. Reflash it:
$ sudo ./flash.sh jetson-agx-orin-devkit internal

Since the device tree will be replaced during flashing, maybe this will solve the question.

If this can’t solve your problem, maybe update to JP 6 will do the trick.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.