How to Flash/Update the new kernel on the target Jetson device?

Hello,

I wanted to update/flash my custom kernel (same .config as device)

I have install this SDK on Host Machine -
JetPack_6.0_DP_Linux_DP_JETSON_AGX_ORIN_TARGETS (NVIDIA Jetson Linux 36.2)

Hardware - Jetson AGX Orin 64GB Dev Kit

I have compile my new kernel : using steps - Kernel Customization — NVIDIA Jetson Linux Developer Guide 1 documentation

I can see kernel binaries here :

x@xxx:~/nvidia/nvidia_sdk/JetPack_6.0_DP_Linux_DP_JETSON_AGX_ORIN_TARGETS/Linux_for_Tegra
=> ll source/kernel_out/out/nvidia-linux-header/arch/arm64/boot/

x@xxx:~/nvidia/nvidia_sdk/JetPack_6.0_DP_Linux_DP_JETSON_AGX_ORIN_TARGETS/Linux_for_Tegra
=> ll source/kernel_out/kernel/kernel-jammy-src/arch/arm64/boot/

Found this command to be use to update LNX partition.

./flash.sh -k LNX jetson-agx-orin-devkit mmcblk1p1

Question is how do flash script know which image(location) to flash ?
Script does accept env variable KERNEL_IMAGE

Is this right way of updating kernel ?

./flash.sh -k LNX KERNEL_IMAGE=source/kernel_out/kernel/kernel-jammy-src/arch/arm64/boot/Image jetson-agx-orin-devkit mmcblk1p1

Tried below command to update kernel .

=> sudo ./flash.sh -k A_kernel -K kernel/Image jetson-agx-orin-devkit mmcblk1p1

[ 13.5426 ] MB2 version 01.00.0000
*** The [A_kernel] has been updated successfully. ***

Also tried this one as well -
sudo ./flash.sh -k LNX jetson-agx-orin-devkit mmcblk1p1

But bootloader is NOT picking up my kernel, still loads old kernel.

Is it possible to make use of SDKManager to update Linux kernel ?

Hello,

Welcome to the NVIDIA Developer forums! Your topic will be best served in the Jetson category.

I will move this over for visibility.

Cheers,
Tom

Thank You Tom, appreciate your help.

1 Like

Update Image to rootfs & kernel folder in SDK.
Later sign Image using below command & flash image, notice UI get launch but didnt allow to login, both Mouse & Keyboard didnt work.

sudo ./flash.sh -r–no-flash -k kernel jetson-agx-orin-devkit mmcblk0p1
sudo ./flash.sh -r -k A_kernel jetson-agx-orin-devkit mmcblk0p1

Attached screen where am getting stuck.

Please reflash your board first.

Afterwards, if you want to update kernel without flashing, just put your new kernel image to /boot/Image on your Jetson directly.

If you want to upgrade it by flashing, then put it into Linux_for_Tegra/kernel/Image and reflash the board.

The reason behind this is simple, the kernel image by default is read from rootfs but not partition.

I appreciate your response, Wayne.

My keyboard and mouse are still not working for some reason, even after I tried moving the kernel binary to the boot/image.
Unable to reach serial console to see whats going wrong from host as well.

Hi,

I feel you got something misled.

  1. The UART serial console can only work after you finish the system configuration. The serial console will print boot log and wait there until you finish configuration.
    The reason you cannot operate serial console is because this reason.

  2. How about you boot up with original sdkmanager image first and replace your kernel afterwards?

Thank a ton Wayne, able to resolve the flashing issue.
Will close this thread.

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