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).
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?
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).
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.
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)
After flashing Device 1 update it with the changes you would like to apply to the new firmware
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