Dual boot L4T 24.1 and 23.x

Since there are many issues for R24.1 (e.g., PCIe DMA issue), I’d like to boot R23.x from SD card while keep R24.1 in emmc.

What is the best approach to configure TX1 such that I can use serial console to select R24.1 from emmc or R23.x from SD card? E.g., how should I add “LABEL” for R23.x to “extlinx.conf” of R24.1? (I only have “extlinx.conf” for R24.1, I do not have “extlinx.conf” for R23.x).

Should I put R23.x kernel Image and dtb in /boot along with R24.1 kernel Image and dtb?

Thanks in advance.

Create your SD card partition with ext4 (e.g., gparted for partitioning, then mkfs.ext4). Unpack the R23.2 sample rootfs there as root/sudo. If your SD card is then mounted on your host at “/mnt”, you can apply_binaries.sh there with an option:

sudo ./apply_binaries.sh -r /mnt

This will now be bootable if you add an entry in the R24.1 “/boot/extlinux/extlinux.conf” which duplicates the default entry of the R23.2 extlinux.conf (but with alternate LABEL and MENU LABEL, plus renamed kernel related files added to the R24.1/eMMC “/boot”. This includes any file named in the extlinux.conf entry, so you might copy from the R23.2 SD card with rename of these files, editing the new extlinux.conf entry to match:

Image -> Image<b>-R23.2</b>
tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb -> tegra210-jetson-tx1-p2597-2180-a01-devkit<b>_R23.2</b>.dtb

Then you use serial console to pick entry at boot time. If you interrupt boot too soon (prior to kernel selection screen) you can type “boot” to continue and then interrupt boot again at kernel entry select.