How to only update kernel image without overwrite the rootfs

I compiled the kernel with this command " * ./ -o $HOME/kernel_output*, then I got an Image file, and then I add the new entry in /boot/extlinux/extlinux.conf for my kernel, the system can boot up, but there is no GUI, I saw lots of errors in the boot dmesg.

I don’t want to overwrite my entire system as I have already installed numerous packages and made certain settings. If I use the command ‘sudo ./ jetson-agx-orin-devkit mmcblk0p1’, it will overwrite everything, including my current settings.

is there a way to only update the kernel safely???

Kernel modules and kernel images are paired.

It sounds like you only upgrade the kernel images but you didn’t ever change anything under /lib/modules.

Kernel modules may not get loaded due to mismatch version. You need to replace new new kernel modules from your kernel_output to rootfs too.

If your system is loading the kernel Image from “/boot”, then you could just copy the original file in place if you have any access. For example, scp over ethernet. If you know your release version, and have the original flash software still in place, then on the host PC this would be the file “Linux_for_Tegra/rootfs/boot/Image”.

@WayneWWW is correct, you very very likely no longer have modules that load if you failed to build an Image which starts by matching the configuration of the original Image, including CONFIG_LOCALVERSION. It would have been easier and safer in most cases to add what you want in the format of a module and just copy modules over and use the original Image. Not all features can be a module though.

If you really need to, then you can clone eMMC even if the system can’t boot.

I realized that I only needed to update the image on version 34.x to successfully boot the system, without needing to update lib/modules.


The logic here does not change. You told us you can bypass the error by using 34.x version.
Then ask yourself this question: what version did you use in the beginning? Why would you hit that error in the beginning but not now.

If you don’t understand the whole logic here, you would still hit same issue in future.
Also, rel-34.x is really too old. Better not using it anymore.

If you ever change the Image, then you must change all modules. A module only needs a new Image if the base layout changes of the “integrated” features (if “=y” changes the layout for module load probably also changed).

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