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.
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.
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.
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.
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.