Selecting a different kernel on Jetson Xavier


I installed jetpack on a jetson Xavier kit. On the Xavier, I compiled a real time kernel. How can I choose the newly compiled kernel to be used. Some documentations say I can choose the kernel through grub at startup but I’m not getting that option.

Before flashing the jetpack onto xavier from the host computer, is there any option to select what kernel to use?

My aim is to setup real time kernel on the jetson xavier kit



grub at startup
There is no grub in any tegra release.

Before flashing the jetpack onto xavier from the host computer, is there any option to select what >kernel to use?

If you are asking about “flash”, an easy way is replace the Image under Linux_for_Tegra/kernel/ and then flash it.

It used to be that extlinux.conf could be used to pick among different boot entries, but various changes over time mean this is no longer possible (extlinux.conf is a U-Boot configuration file, but Xavier does not use U-Boot…other Jetsons using U-Boot now configure in stages prior to U-Boot and so this file is no longer used for multiple boot configurations on those other Jetsons).

Hello linuxdev,

cboot has an option to boot using extlinux.conf file and let the user to select between different kernels. This was true at least until 4.2.1 when I had used it, but not sure about the later versions since there’s no cboot source shared.

I am able to select between different kernels on a TX2 flashed with JetPack 4.3. Also, that’s true for NANO, TX1 and TX2i.

Good to know. I have not used that feature on Xavier, but is it correct that the “LABEL …” block would just be a copy and paste/edit to get the second kernel Image with a different LABEL? I’m guessing there isn’t any way to use an alternate device tree if the new kernel needs this, but just selecting kernels is a major bonus.

Well, note that the cboot binary on the Xavier needs to be updated in order to have the capability of choosing between different kernels. I think with the “FDT” variable in the extlinux.conf file, the device-tree can be selected as well but I have not done that, only seen the related code snippets in the cboot source.

I imagine using the FDT entry would probably also require an update to CBoot, but don’t know. As far as I know the FDT entry (using a default CBoot) probably no longer works as expected (since signing was added and device trees began life in binary partitions).

A question for NVIDIA: What is the earliest stage of boot which can read an ext4 filesystem? Is ext4 read in CBoot a new feature?

EXT2/4 filesystem support has been added to CBoot recently, unfortunately I don’t track CBoot features vs. JP releases so I can’t tell you which BSP will have it, but Wayne probably can. With EXT fs support, we now also have extlinux.conf support, including alternate entries for a different kernel and FDT. If secure boot is supported, you just need to put the .sig copies of the Image and *.dtb on your eMMC/USB/SD-card in the /boot and /boot/dtb directories, and I believe extlinux & CBoot should work pretty much the same as U-Boot does on TX1, TX2 and Nano. Note, too that AGX doesn’t have U-Boot, but is getting U-Boot-like features added to CBoot in each new release.

A final note: this should all be documented in the latest JP/BSP release docs, please let Wayne know if you can’t find it, or if it’s unclear.