Nvfancontrol cannot automatically adjust the fan speed based on the temperature

Envriment:

NV Power Mode[0]: MAXN

Model: Jetson AGX Orin Developer Kit - Jetpack 5.1.2 [L4T 35.4.1]

Hardware:

  • P-Number: p3701-0005
  • Module: NVIDIA Jetson AGX Orin (64GB ram)

Description:

During the CPU and GPU stress testing process, the fan speed hardly changes and does not automatically adjust according to the increase in temperature. During the testing process, the monitored temperature has reached 90°C, but the fan speed remains around 2900 RPM and does not reach the maximum speed (4000 RPM). How should I troubleshoot this issue?

By checking the log through journalctl command, it is found that there has been a continuous error message reporting the inability to set PWM.

automatic@ubuntu:~$ journalctl -u nvfancontrol.service
– Logs begin at Wed 2023-03-15 23:04:16 CST, end at Wed 2025-09-10 13:52:55 CST. –
9月 10 13:40:43 ubuntu systemd[1]: Started nvfancontrol service.
9月 10 13:43:46 ubuntu nvfancontrol[992]: NVPOWER INFO (init_libjetsonpower:611): Cannot initialize average power successfully, the corresponding APIs may not work as expected!
9月 10 13:43:46 ubuntu nvfancontrol[992]: NVFAN WARN: Switched to open loop control due to failed rpm read!
9月 10 13:43:46 ubuntu nvfancontrol[992]: NVFAN WARN: Unable to set Fan PWM for FAN1
9月 10 13:43:46 ubuntu nvfancontrol[992]: NVFAN WARN: Unable to set Fan PWM for FAN1
9月 10 13:43:46 ubuntu nvfancontrol[992]: NVFAN WARN: Unable to set Fan PWM for FAN1
9月 10 13:43:46 ubuntu nvfancontrol[992]: NVFAN WARN: Unable to set Fan PWM for FAN1

9月 10 13:43:46 ubuntu nvfancontrol[992]: NVFAN WARN: Unable to set Fan PWM for FAN1
9月 10 13:43:46 ubuntu nvfancontrol[992]: NVFAN WARN: Unable to set Fan PWM for FAN1
9月 10 13:43:46 ubuntu nvfancontrol[992]: NVFAN WARN: Unable to set Fan PWM for FAN1

We can manually control the fan speed by using the following commands:

ubuntu:~$ cat /sys/devices/platform/pwm-fan/hwmon/hwmon4/pwm1
128
ubuntu:~$ cat /sys/devices/platform/pwm-fan/hwmon/hwmon4/name
pwmfan

sudo bash -c ‘echo on >/sys/devices/platform/pwm-fan/hwmon/hwmon4/power/control’
sudo bash -c ‘echo 255 >/sys/devices/platform/pwm-fan/hwmon/hwmon4/pwm1’

ubuntu:~$ cat /sys/devices/platform/39c0000.tachometer/hwmon/hwmon0/rpm
3055

ubuntu:~$ cat /sys/devices/platform/pwm-fan/hwmon/hwmon4/power/control
auto

hello DKaiF,

you shall now be able to adjusts the fan speed by PWM value,
for instance
$ sudo -i
# echo 215 > /sys/class/hwmon/hwmon0/pwm1
# echo 235 > /sys/class/hwmon/hwmon0/pwm1

or, please give it a try to toggle without nvfancontrol service.
$ sudo systemctl stop nvfancontrol
$ sudo systemctl disable nvfancontrol
$ echo user_space | sudo tee /sys/class/thermal/thermal_zone*/policy
$ sudo -i
# echo 215 > /sys/class/hwmon/hwmon0/pwm1

Thank you very much for your reply. We think we have identified the cause of the problem. It turns out that we customized the DTS and modified the compatible field in it to compatible = "nvidia,p3737-0000+intelligent control". The nvfancontrol executable file and the configuration file /etc/nvpower/libjetsonpower/jetsonpower_t234.conf match the fan path based on the p3701 field. Therefore, the error log showed that it was unable to set the PWM. We resolved the issue by adding the following to the compatible field: compatible = "nvidia,p3737-0000+intelligent_control", "nvidia,p3701-0005", "nvidia,tegra234", "nvidia,tegra23x".