How do I properly only update the Linux kernel image on Orin

Hi,

How do I properly update the kernel image only? because I have installed everything on the Orin board, and there is only one missing that Linux kernel didn’t enable an option in the Linux configuration, After I cross-compiled a kernel Image, How can I only update the kernel image?

I tried replace old Image with the new Image on my second Orin board, then, the board cannot boot up. I don’t want to break my already setup board, could you tell me if there is a safer way to only update the Kernel image???

Martin.

Did you build the kernel with a configuration that started with a match to the existing kernel, and then add features? Did you have to build as an integrated kernel Image file, or is it possible to build that as a module? I ask because things are much more simple if you build as a module, but not all features can be a module. Also, there are often flash procedures which will work, but simply copying a module is very low risk, and copying an integrated kernel Image file (if it starts with the correct configuration) usually implies also installing all of the modules (there are exceptions). The above questions will be used to find out the easiest and lowest risk method of install.

In the Linux kernel, some options are not possible to be modelized. do you know why this command cannot update the kernel image:

./flash.sh -k kernel board-name mmcblk0p1

and, how can I add new boot entry in grub? this is very easier in Ubuntu, how can I add an additional boot entry in Nvidia grub???

Hi,

Because the kernel image is firstly read from the rootfs but not from the partition. Which is what linuxdev is trying to say.

Your command “flash.sh -k kernel” is to flash the kernel image into a partition with name “kernel”. But it is not the first location where we load kernel up.

You could check /boot/extlinux/extlinux.conf and add your boot entry.

thanks, ok, do you know how to update the kernel with flash.sh???

and also do you know if Orin supports IOMMU or SMMU? why these two options are not enabled in your defconfig???

1 TIMEOUT 30                                                                                            
2 DEFAULT primary                                                                                       
3                                                                                                       
4 MENU TITLE L4T boot options                                                                           
5                                                                                                       
6 LABEL primary                                                                                         
7       MENU LABEL primary kernel                                                                      
8       LINUX /boot/Image                                                                               
9       FDT /boot/dtb/kernel_tegra194-p2888-0001-p2822-0000.dtb                                       
10       INITRD /boot/initrd                                                                           
11       APPEND ${cbootargs}                                                                           
12                                                                                                     
13 # When testing a custom kernel, it is recommended that you create a backup of                       
14 # the original kernel and add a new entry to this file so that the device can                       
15 # fallback to the original kernel. To do this:                                                      
16 #                                                                                                   
17 # 1, Make a backup of the original kernel                                                           
18 #      sudo cp /boot/Image /boot/Image.backup                                                       
19 #                                                                                                  
 20 # 2, Copy your custom kernel into /boot/Image                                                       
21 #                                                                                                   
22 # 3, Uncomment below menu setting lines for the original kernel                                     
23 #                                                                                                   
24 # 4, Reboot                                                                                         
25                                                                                                     
26 # LABEL backup                                                                                      
27 #    MENU LABEL backup kernel                                                                      
 28 #    LINUX /boot/Image.backup                                                                      
29 #    FDT /boot/dtb/kernel_tegra194-p2888-0001-p2822-0000.dtb                                        
30 #    INITRD /boot/initrd                                                                            
31 #    APPEND ${cbootargs}      

Maybe you should clean up the format first. I guess it is also painful for yourself to read such content…

so, based on extlinux.conf, even customized kernel failed, Nvidia bootloader will not read the kernel from the kernel partition?? so “flash.sh -k” is useless??

You could remove LINUX /boot/Image from extlinux.conf and it shall try to read from partition.

as for your smmu issue, please file a new topic. BTW, it is supported.

thanks, I will try now!

I posted it, but the title is different, Nvidia Orin PCIe device, there is no PCIe device in “virsh nodedev-list”, does Orin IOMMU supports passthrough mode? - Jetson & Embedded Systems / Jetson AGX Orin - NVIDIA Developer Forums

Does this works ? Please update the thread