Thermal Management with Fan Control Application
The fan control application in the Tegra SoC provides multiple temperature input sources to control the fans. Temperature and RPM values must be shared with other SOCs for efficient thermal management. The communication for sharing fan control data among SOCs is conducted using UDP over VLAN interface.
The fan control application architecture is as follows:
Control Flow of Fan Control Application
Four fans are provided on the platform:
• Xavier A (X1): includes one push fan and one pull fan
• Xavier B (X2): includes one push fan and one pull fan
Local target RPM of Xavier A (X1) fans is calculated with information from:
• Tj-therm of X1
• dGPU temperature
• Tj-therm of CVM
Local target RPM of Xavier A (X2) fans is calculated with information from:
• Tj-therm of X1
• dGPU temperature
Each X1 and X2 compares the local target RPM and remote target RPM (local RPM of another SoC) and set the fan speed to the higher RPM value.
Application Usage and Options
The fanctrl application is available at:
/usr/bin/fanctrl
/proc/boot/fanctrl
To run the application, use the nv_fanctrl script available at:
/etc/systemd/script/nv_fanctrl.sh
Which is a script file started from nv_fanctrl system service.
/proc/boot/nv_fanctrl.sh
Launch the script by running startup.sh.
To check running status of the application
• Execute the command:
systemctl status nv_fanctrl --no-pager --full
pidin a | grep fanctrl
To start or stop the application
• Execute the commands to stop:
sudo systemctl stop nv_fanctrl
slay fanctrl
• Execute the commands to start:
sudo systemctl start nv_fanctrl
/bin/ksh /proc/boot/nv_fanctrl.sh &
To manually run the application
• Execute the command:
/usr/bin/fanctrl <options>
/proc/boot/fanctrl <options>
Usage
Print fanctrl command line usage and options:
1. Stop running the daemon application:
sudo systemctl stop nv_fanctrl
slay fanctrl
2. Print help:
/usr/bin/fanctrl -h
/proc/boot/fanctrl -h