Cloning JetPack 4.2 with Application Software onto 3.2 and 3.3

I have a few hundred TX2s in the field (literally in the field as this is an agricultural robotics application) that currently have Jetpack 3.2 and/or 3.3 installed (along with the application). I have no or extremely limited access to Internet in the field.

I want to take the installed software under 4.2 and copy it to the TX2s in the field via a laptop (with ubuntu 18.04).

My approach was to get the system image via:

sudo ./flash.sh -r -k APP -G backup.img jetson-tx2 mmcblk0p1
cp backup.img.raw bootloader/system.img

And then flash to each TX2 in the field via:

sudo ./flash.sh -r -k APP jetson-tx2 mmcblk0p1

Sometimes this works fine.

Unfortunately, sometimes it doesn’t. Failures include:

  • Flashing doesn’t finish
  • Flashing finishes, but the TX2 won’t then boot

I can’t figure out why it works sometimes (roughly half the time) but not others.

I’ve read that “The new Jetson must have the same release version as the old one.” on various forums here, but then why does it ever work? I’m sure none of them are 4.2.

And if that’s a constraint, how do I get around it given the constraint of no access to Internet?

Hi,

So you are actually copying the system.img from different devices which are not using the same BSP release??

I’m not totally sure what BSP stands for, but if that’s related to version numbers like 28.1 versus 32.1 then yes.

As I mentioned, I get that I’m not supposed to copy system.img across in this case.

My two questions are:

  1. How do I field upgrade TX2s? Aren’t they all hardware compatible?
  2. Why does it work sometimes?

BSP is Board Support Package…basically all of the software other than the rootfs. The rootfs and packages of one release (such as R28.1 or R32.1) are not compatible when mixed.

If you don’t remove downloads after using SDK Manager or JetPack, then the “.deb” files of packages will still be there on the host (I assume a laptop). You’d have to know the order of install of packages, but in theory you might just flash from field with only networking between laptop and Jetson (flash on command line first, then copy “.deb” files over and install using dpkg).

Hi bwallach,

1. How do I field upgrade TX2s? Aren’t they all hardware compatible?
Please use the same build, if you want to upgrade to JetPack-4.2 (r32.1), you can backup the APP partition from one device, and flash other devices with below command:
$ sudo ./flash -r jetson-tx2 mmcblk0p1 (using -r option, so that it does not create the system image again and save some time)

2. Why does it work sometimes?
If following your #1 steps, clone app partition from JetPack-3.3 to JetPack-4.2, it should not work! the kernel upgrades from 4.4 to 4.9, must to update the kernel-dtb along with kernel partition.

Hi bwallach, please try the following procedure:

Steps :
1 . Flash TX2 device with rel-32.1 public build
Flash Device 1 : sudo ./flash.sh jetson-tx2 mmcblk0p1
(This can be done by SDKM as well , it flashes and installs components)

  1. After flashing Device 1 update it with the changes you would like to apply to the new firmware

  2. Now backup the APP partition from device 1 and overwrite the existing system image using the below command:
    $ sudo ./flash.sh -r -k APP -G backup.img jetson-tx2 mmcblk0p1
    $ cp backup.img bootloader/system.img

4.Put the device 2 in recovery

5.Now flash device 2 with backup image (point 3)
sudo ./flash.sh -r jetson-tx2 mmcblk0p1

  1. On device 2 verify the files and applications which are installed in step 2 above