Over the Air update (full image) does not update the kernel for TX2 NX?

I have tried build the full image OTA payload and success run the full image OTA. But it appears the kernel does not get update.
the approach I used is

  1. when build rootfs, I generate the OTA payload same time, the Base/Target BSP version set to same, I rebuild kernel every time.
  2. Now I am in /dev/sda0 ,after download the OTA payload, I run OTA and reboot, I can see I am in /dev/sda1 now, and I get the rootfs I build in /dev/sda1
  3. however, when I use /proc/version to check kernel version, the kernel is same with old one. I do the kernel build every time, so the kernel will change, but it is not.

OTA payload is built like below, we run from ssd:

ls -l
sudo ./tools/ota_tools/version_upgrade/build_base_recovery_image.sh jetson-xavier-nx-devkit-tx2-nx R32-6 ${BASE_BSP} ${BASE_BSP}/rootfs ${TARGET_BSP}
sudo ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh jetson-xavier-nx-devkit-tx2-nx R32-6

May I know if I am doing anything wrong?

hello jiangpen,

have you building the kernel debian packages?
please refer to developer guide as see-also.
Software Packages and the Update Mechanism — Jetson Linux<br/>Developer Guide 34.1 documentation

Just wanted to add one additional bit of information: If the kernel is specified in “/boot/extlinux/extlinux.conf”, then that is the kernel which is loaded. If no kernel is specified in extlinux.conf, then the kernel is loaded from a signed partition. Should your package go to the wrong kernel source, e.g., if it is mentioned in extlinux.conf, but gets updated in a partition, then perhaps the update worked, but failed to use that kernel.

One exception is that if security fuses are burned, then the extlinux.conf kernel is never used.

Thanks JerryChang,
I am doing the full image OTA (not debian based), does it still require the kernel package?
It looks the kernel deb package has many steps , may I know if there is an example or framework available to refer?
thanks a lot