Looking for a more convenient way to update the kernel on Jetson Orin


I can update the kernel by following the suggested flash process. But I’d like to look for a more convenient way. If I want to update my Ubuntu desktop, I just need to build the kernel and build the required Debian packages (make deb-pkg), then install these packages. It’s that easy. I know there are some differences between a desktop and an embedded system in terms of kernel update. In the desktop case, the kernel is /boot/vmlinux while in the embedded system, the kernel is /boot/Image. But the rest part should be the same.

As the first step down to this path, I can build the kernel locally on Orin with the source kernel_src.tbz2. Of course the build has to be built from outside of the kernel source tree:

$ make -C kernel/kernel-5.10 O=…/kernel_out

This way, the binary files are generated to the folder …/kernel_out

Now the problem is with the second step to create the debian packages. The packages cannot be made with the command below because Linux package build doesn’t support outside kernel source tree build.
$ make -C kernel/kernel-5.10 O=…/kernel_out deb-pkg

I wonder if Nvidia can suggest the right way to create the kernel packages.

Thank you in advance!

I don’t have an answer, but I’ll make a suggestion. If you look at “/boot/Image” (an uncompressed kernel), then you can run the command “dpkg -S /boot/Image”. The result is the name of the package. In my case it says “nvidia-l4t-kernel”. Perhaps if you found the actual package for nvidia-l4t-kernel, and extracted it, followed by replacing parts with your Image file (making sure it uses the same “uname -r” and configuration, plus additions in configuration), followed by repackaging this such that it uses some means to identify that this supersedes or can replace nvidia-l4t-kernel, then this should work (and with versioning correct, then you wouldn’t have to worry about a newer non-custom nvidia-l4t-kernel replacing it).

Also, for more details on the specific package release (which is the part you have make sure is allowed to replace the stock kernel with the custom kernel):
`dpkg -l | grep ‘nvidia-l4t-kernel’

(you might need to also include the dtbs and headers package, or specify that your package works with those releases already present)

I haven’t actually done this, but it is what I would have done from Fedora in the past.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.