Jetson Orin NX stuck at NVIDIA logo after custom kernel flash

Hi,

I’m facing an issue while flashing a custom kernel on a Jetson Orin NX and wanted to ask if someone has seen this before.

I am using the standard Orin Nano developer kit baseboard and simply replaced the Orin Nano Super module with an Orin NX 16GB module on the same carrier board. The board, with NX, works fine when flashed using SDK Manager, so hardware setup looks correct.

My goal is only to enable SLCAN support and RT kernel, so I built a custom kernel. The exact same kernel and workflow work perfectly on an Orin Nano Super(on SD card, no tried on NVME), but on the Orin NX the system gets stuck during boot(on NVME).

We also tried multiple flashing approaches, not only flash.sh. We tried flashing using SDK Manager (which works normally), manual flashing using flash.sh, and the initrd flashing method for NVMe flashing, but the result is the same… flashing completes successfully but the Orin NX stops at the NVIDIA logo during boot.

I am currently using the jetson-orin-nano-devkit (and -nvme config as well) configuration because I couldn’t find a separate config for Orin NX on this devkit carrier in Linux-For-Tegra. From what I understand, flashing depends on the correct board configuration and DTB selection, so I’m wondering if this is the reason it hangs. NVIDIA docs mention that flashing uses the board .conf file and device tree tied to the module + carrier combination, so maybe I’m using the wrong target configuration but I could be wrong.

Could it be on custom kernel flash, it’s not able to boot from NVME though standard firmware from SDKmanager works fine

System details:

  • Orin NX 16GB module

  • Orin Nano devkit carrier

  • NVMe boot

  • JetPack 6.2.1 / L4T 36.4.7

  • Kernel 5.15.148-tegra

  • Host PC Ubuntu 22.04

SDK Manager flash boots normally, only custom flashing causes the hang.

Need help with this

Thanks.

*** Please note that this reply is generated by LLM automatically ***

I’d be happy to help you troubleshoot the issue with flashing a custom kernel on your Jetson Orin NX module.

Firstly, it’s great that you’ve tried multiple flashing approaches, including SDK Manager, manual flashing, and initrd flashing, but unfortunately, the result is the same - the system gets stuck during boot.

Based on your description, it seems that the issue might be related to the board configuration and DTB (Device Tree Binary) selection. As you mentioned, NVIDIA docs state that flashing uses the board file and device tree tied to the module-carrier combination.

Since you’re using the Orin Nano developer kit baseboard with an Orin NX 16GB module, you might need to use a different configuration file. Although you couldn’t find a separate config for Orin NX on this devkit carrier, you can try using the jetson-orin-nx-devkit.conf file instead of jetson-orin-nano-devkit.conf.

Additionally, you can try using the flash.sh command with the --board option to specify the correct board configuration. For example:

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 \
  -c tools/kernel_flash/flash_l4t_t234_nvme.xml -p "-c bootloader/generic/cfg/flash_t234_qspi.xml" \
  --showlogs --network usb0 --board jetson-orin-nx-devkit

If you’re still facing issues, you can try comparing the device tree files used by SDK Manager and your custom flashing approach. You can extract the device tree file from the SDK Manager flash package and compare it with the one used in your custom flashing approach.

To extract the device tree file from the SDK Manager flash package, you can use the following command:

sudo ./tools/kernel_flash/l4t_generate_soc_bup.sh --board jetson-orin-nx-devkit --output-dir /path/to/output/dir

This will generate the device tree file and other necessary files in the specified output directory.

By comparing the device tree files, you might be able to identify any differences that could be causing the issue.

Lastly, since you’re using a custom kernel, you can try booting the system with the standard firmware from SDK Manager and then switching to your custom kernel to see if the issue persists.

I hope these suggestions help you troubleshoot the issue and successfully flash your custom kernel on the Jetson Orin NX module.

Comparison with Orin Nano Super

Since you mentioned that the exact same kernel and workflow work perfectly on an Orin Nano Super, it’s possible that the issue is specific to the Orin NX module or the devkit carrier.

One key difference between the Orin Nano Super and Orin NX is the module type and the corresponding device tree files. The Orin Nano Super uses the jetson-orin-nano-devkit.conf file, while the Orin NX might require a different configuration file, as mentioned earlier.

Additionally, the Orin NX module has different power modes and configurations compared to the Orin Nano Super. You can try checking the power mode configuration in your custom kernel and ensure that it’s compatible with the Orin NX module.

By comparing the device tree files and power mode configurations between the Orin Nano Super and Orin NX, you might be able to identify any differences that could be causing the issue.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

Hey! So there is no jetson-orin-nx-devkit.conf available. Am I missing something?

please ignore previous answer generated by LLM. Some items are not correct.

I can guess some possible reasons that lead to your problem but you better getting the serial log by using USB ttl cable first.

The log would provide the precise reaon.

Thanks @WayneWWW I tried this and problem is jetson never reaches up till the point it can be detected over USB ttl for serial debug. I tried and was not getting any data.

But I’ll try it today / tomorrow again and update here if I get something.

@WayneWWW So I tried and getting no data on serial console. Could it be the kernel is not being loaded?

I tried flashing using this command as well though, but not luck (using 1TB ssd and modified flash_l4t_t234_nvme.xml for updated num_sectors:
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c ./tools/kernel_flash/flash_l4t_t234_nvme.xml -S 966367641600 --showlogs --erase-all jetson-orin-nano-devkit-super-maxn-nvme external

Hi @WayneWWW , finally got the log:

Seems like it’s UEFI closing to boot in recovery only. But ya, let me know where I am going wrong?

Thanks

jeson_log.txt (73.4 KB)

Jetson System firmware version 36.4.4-gcid-41062509 date 2025-06-16T15:25:51+00:
00
ESC to enter Setup.
F11 to enter Boot Manager Menu.
Enter to continue boot.
L4TLauncher: Attempting Recovery Boot
EFI stub: Booting Linux Kernel…

Device is stuck in recovery boot. Please get the status back to normal boot and dump log again.

Follow this to make it back:

Hi @WayneWWW ! New logs:
Mount is failing

jeson_log.txt (127.7 KB)

The mounting is failing because pcie driver fails to load.

After your kernel customization, you need to upload kernel modules (.ko) files too.

And pcie driver is part of initrd driver too so you need to put new pcie-tegra194.ko into initrd too.

→ To update the initramfs, run the following commands

@WayneWWW Thanks, though I got past the issue of getting stuck at nvidia screen, I got stuck at initial desktop GUI without any icons. I got ubuntu system config setup, I entered a username and password and it boots to the initial desktop window but no icons and this log:

jeson_log.txt (75.9 KB)

Please bypass the configuration first by using l4t-create-default-users.sh script in Linux_for_Tegra/tools.

I don’t think this is related to original problems you hit.

Hi @WayneWWW ! Did that and over serial console, I can login but on display, stuck at “exiting boot services“. Also noticed under home, there is only Desktop folder. None of the other folders liek Documents, etc, are not available.

Here’s the log:

jetson_log.txt (78.7 KB)

This seems not related to the kernel customization but more related to BSP preparation.

Is this issue happened after your kernel customization?

Yes @WayneWWW ! I simple added slcan in defconf. Not sure what’s going wrong for Orin NX though same kernel works fine on Jetson orin Nano Super.

Last command I used to flash: sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_t234_nvme.xml --showlogs --erase-all jetson-orin-nano-devkit-super-maxn-nvme internal

1 Like

@WayneWWW Probably am i missing some packages specific to jetson orin NX, causing this issue?

Hi @sharma.sanket272, hope you are doing great.

This wiki on Orin NX might help you out: NVIDIA Jetson Orin NX - JetPack 6.1 - Flashing Board

Regards,

Embedded Software Engineer
RidgeRun | https://www.ridgerun.com/

Contact us: support@ridgerun.com
Developers wiki: https://developer.ridgerun.com/

1 Like

Hi @cristian.hidalgo ! Thanks a lot. I tried it but still no luck.

I am wondering because my main requirement is having slcan support, probably should build module natively? Any suggestions? @WayneWWW @cristian.hidalgo

Hi! The issue is solved. Since building and flashing the kernel for the NX was giving me a hard time, and my main requirement was to just get slcan and some other modules, I built those as an oot module for the same kernel build that is on my Jetson (flashed using SDK Manager).

Then I installed the module at /lib/modules/$(uname -r)/updates. After that, I ran sudo depmod -a to update the module index, and it worked. Thanks for the help.

1 Like

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