Different Fan Behavior During Boot Between JetPack 4.6.4 and 5.1.2 on Jetson Xavier NX

Hello everyone,

I’m experiencing an issue with my Jetson Xavier NX and hope someone can assist.

Problem Description:

  • Hardware: Jetson Xavier NX (same hardware configuration)
  • JetPack Versions:
    • 4.6.4: During boot, the fan remains off. Only after the operating system has fully loaded and the NVIDIA Fan Control is running does the fan start operating as expected.
    • 5.1.2: During boot, even before the kernel starts, the fan turns on and runs at about 50% speed. After the operating system has loaded and the NVIDIA Fan Control is active, the fan behavior is the same as in the previous version.

It seems that the changed fan behavior during the early boot process is related to the UEFI settings, particularly with MT1 and MT2.

What I’ve Tried So Far:

  • Comparing Thermal Configurations: After the operating system starts, the fan control is identical in both versions, indicating that the thermal settings within the OS are correct.
  • Investigating UEFI: Since the issue occurs before the kernel loads, I suspect it has to do with changed UEFI settings. However, I’m unsure how to adjust these.

Question:
How can I configure the fan behavior during boot under JetPack 5.1.2 to match that of JetPack 4.6.4? I want the fan to remain off or even better at around 10% during the boot process and only be controlled by the NVIDIA Fan Control after the OS has started.

Has anyone experienced similar issues or can provide guidance on how to adjust the UEFI or bootloader settings to change the fan behavior during boot?

Thank you in advance for your help!

Best regards,
d.glaesner1

1 Like

Hi d.glaesner1,

JP4.x and JP5.x have different SW stack in bootloader.

Fan is controlled through PWM.
If you want to control the PWM for FAN in UEFI with JP5.1.2, please build custom UEFI binary and modify it in TegraPwmDxe.

1 Like

Hi KevinFFF,

Thank you for the quick and very helpful response.

As a reference for others who might want to make the same modification, the following guide was incredibly helpful:

Building UEFI for NVIDIA Platforms with docker

Using Docker, I was able to easily build a custom Jetson_UEFI, and the only change necessary was adjusting “define PWM_FAN_MED 0x80800000.”

Here’s the link to the file in the relevant repository: TegraPwmDxe.c

The standard UEFI used by the SDK Manager during flashing can then simply be replaced with the custom UEFI. The file names need to be adjusted, but that’s a trivial step.

With this, we were able to resolve the issue!
Thanks again for your help!

1 Like

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