Upgrade to Jetpack 3.2, without flashing the OS

Hello,

I use TX1 for my development and I am currently on Jetpack 3.1. However, with the new release of Jetpack 3.2, I wish to leverage the updated libraries like OpenCV 3.3.1, TensorRT 3.0, CUDA 9.0, etc.

I have some other important libraries installed out of Jetpack and thus, do not want to re-flash the whole system.

I am wondering if without flashing with L4T 28.2, I can still upgrade the other libraries and get the same performance results with the libraries I install as they would be installed with L4T 28.1.

Also, should I remove the older libraries or keep them? If I do keep them, should I handle conflicting packages manually in my applications or will it be able to automatically use the newer version?

Looking forward for answers.

Thanks.

I guess the answer should be no to my first question as per this post in TX2 forums?

https://devtalk.nvidia.com/default/topic/1030219/jetson-tx2/installing-cuda-9-without-flashing/

Correct, there isn’t an official way to upgrade to JetPack 3.2 components without re-flashing.
Please backup your user-sensitive data first, and then re-flash with JetPack 3.2 to perform the upgrade.

One thing you can do is clone the existing rootfs as a reference. It can be loopback mounted and explored, files copied from it, so on.

Hi linuxdev,

Is there any specific way of doing this or can I just simply copy the contents of /root to some external media?

I believe that as per https://elinux.org/Jetson/TX1_Cloning, the Jetpack Installer files are needed but currently we don’t have access to these files.

You just need the driver package, you don’t need anything else (other than the micro-B USB cable). This is availble for the current version at:
https://developer.nvidia.com/embedded/linux-tegra

Older versions are listed here:
https://developer.nvidia.com/embedded/linux-tegra-archive

Although you can do this to other media with dd you must be running on alternate rescue media at the time…the file system can’t be changing while reading it. The driver package is essentially an external rescue system for reading/writing eMMC.

Note that JetPack is just a front end to other software. It is the driver package component which does all flashing and cloning.

When you say this, you basically mean that I might need an external media like sdcard or hard drive, right?

You will of course need an external media for what you copy to…and for what the system runs on while doing the copy. You can’t clone the rootfs while it is changing.

Also remember that a clone is just a reference copy if you are upgrading versions…there are other partitions and components to a version which have to remain compatible when upgrading (e.g., device tree is stored differently across versions…using a rootfs from a different version might or might not break something…most likely it will break something). However, if you have a clone, then you can always restore through that original version and get the original rootfs installed. Mostly if you are upgrading a reference can be used to save and copy individual files at a later date.