Multiple Jetpack on the Same Jetson TX2 possible?

Hi,

My situation is I already flashed Jetpack3.3 (CUDA9, Cudnn 7.1)to Jetson TX2.

But now I need to use CUDA 8 and Cudnn 6 on my another project. I checked Jetpack 3.1 has the right CUDA and Cudnn version.

So is it possible to flash Jetpack 3.1 again to my Jetson TX2 with Jetpack3.3 already installed?
Will there be conflicts? If so, how should I handle it?

I also tried to use another SD-card as a boot root. So is it possible to install Jetpack 3.1 to the SD-card, and then Jetson TX2 can boot from the SD-card and use the Jetpack 3.1 in the SD-card?

Actually, it is because I have to use tensorflow 1.4.0, CUDA 8 and Cudnn 6 to do my project.
What I can think of is to install Jetpack 6 and tensorflow 1.4 respectively.

Unfortunately, versions of CUDA (and CUDA-dependent programs or packages) from different JetPack or SDK Manager releases cannot be mixed.

Hi Linuxdev,

Thanks so much for your answer. So I am thinking to install Jetpack 3.1 into an external SD-card, and then let Jetson TX2 boot from the external SD-card. The original Jetpack 3.3 was already installed in its internal memory.

Is it possible?

Only patch level revisions work together, e.g., you could probably L4T R28.2 and R28.2.1 to work this way. Other revisions are incompatible in terms of boot content. If you look at the eMMC with “sudo gdisk -l /dev/mmcblk0”, then you will see a lot of partitions. These are essentially the content a motherboard BIOS/UEFI would have provided, and also why GRUB doesn’t work. This content is incompatible between JetPack3.1 and 3.3. That content must exist on eMMC even if the rootfs is on SD card.

It wouldn’t hurt to try (other than time). I’d suggest if you do that you flash JetPack3.3 and only try 3.1 on SD card rootfs. I have doubts it will work.

OK, I got it. Thanks so much!

But as I said, my two projects requires two versions of CUDA (CUDA 8 and CUDA9), and different versions of Tensorflow (1.4.0 and 1.9.0). That is quite annoying.

I am thinking to do it this way:

I have 2 external SD-cards. So I can flash Jetpack 3.1 and Jetpack 3.3 to these 2 SD-Cards respectively. Then I change boot from mmcblk0p1 to mmcblk1p1, so that Jetson TX2 will always boot from external SD-card.

If I want to use Jetpack 3.1, I use one SD-card, otherwise I change another SD-card. Is it possible?

Unfortunately not. If it were just the root file system, then it would work. However, there are a lot of non-rootfs partitions making up the boot content, and that content is not compatible between major releases. This content is always on the eMMC even when you boot rootfs to an alternate media. There is no easy solution that I know of short of having two different TX2. The PC itself can do this, the TX2 has issues with it.

Note: You could try this with the eMMC containing the newest of the two releases, but I’m guessing it will either fail or have some odd issue. It wouldn’t hurt to try. Among the failure points most likely I see the device tree as a weakness, but you might be able to get around that.

@weibo – Did you try 2 different versions? Did it work? I am planning on doing something similar. Suggestions from you will be helpful. Thank you in advance!

Hi, thanks so much for your answer. For now, I am thinking to hard copy the current system (including rootfs, Jetpack 3.3) to my external SD-Card. Then flash again to Jetson TX 2 from Host Ubuntu and install Jetpack 3.1. After I finish my project on Jetpack 3.1, then flash the copy with Jetpack 3.3 from the SD-card to the Jetson TX2 again.

Hi,

I didn’t try that.

For now, I am thinking to hard copy the current system (including rootfs, Jetpack 3.3) to my external SD-Card. Then flash again to Jetson TX 2 from Host Ubuntu and install Jetpack 3.1. After I finish my project on Jetpack 3.1, then flash the copy with Jetpack 3.3 from the SD-card to the Jetson TX2 again.