Jetson Fan Control
NVIDIA/Jetson

Jetson Fan Control

728x90

테스트 환경

  • AGX ORIN Devit
  • JETPACK 6.1

NVIDIA에서 제공하는 Devkit에는 Fan이 장착되어 있다. 사용자는 해당 Fan을 제어하여 본인에 설정에 맞게 사용이 가능하다.


Jetson Orin 모듈에서는 Fan을 PWM으로 제어하고, Fan 모듈 내부에 장착되어 있는 Fan Tach라는 회전속도계 값을 받아온다.

 

Jetson Orin 모듈은 기본으로 "quite"과 "cool" 두 가지 Fan 작동을 지원한다. 

위 설정 값 중 Trip temperature 및 Hysteresis 값을 가지고, Fan 속도 제어 데몬 nvfancontrol은 선택된 속성에 대해 구성된 지점 온도에 따라 Fan 속도를 관리한다.

 

테이블을 보면 Trip temperature 온도에 따라 pwm 값을 변경하여 Fan을 제어한다. Orin Soc 모듈에는 temp 값을 측정하는 모듈이 내장되어 있다. 해당 모듈을 통해 temp 값을 측정한다.

 

여기서 Trip temperature은 Tmargin 값을 말하여, Tmargin 온도는 최대 허용 온도와 현재 열 구역 온도의 차이다. 예를 들어, cpu-thermal의 최대 허용 온도가 105도 섭씨이고 cpu-thermal의 현재 온도가 45도 섭씨인 경우 cpu-thermal의 현재 Tmargin 온도는 60도 섭씨(105 - 45)가 된다.

 

고로 Tmargin 값이 줄어들면 줄어들수록 전체 온도는 상승하게 되어 PWM 주파수가 증가하며, FAN 속도가 빨라지게 된다. 

 

추가로 Hysteresis 는 임계값을 나타낸다. 예를 들면 Tmargin 온도가 60에 도달하면 Fan이 켜지게 되고, 시간이 지나 Tmargin 온도가 계속 상승하여 Tmargin 온도가 74도(60 + 14 = 74)를 넘으면 Fan이 꺼지게 되는 구조이다.

 

실제 /etc/nvfancontrol.conf 파일을 열어보면 아래와 같이 설정되어 있다.

/etc/nvfancontrol.conf

구성 파일 

POLLING_INTERVAL 2
<FAN 1>
    TMARGIN ENABLED
    FAN_GOVERNOR pid {
            STEP_SIZE 10
    }
    FAN_GOVERNOR cont {
            STEP_SIZE 10
    }
    FAN_CONTROL close_loop {
            RPM_TOLERANCE 100
    }
    FAN_PROFILE cool {
            #TEMP   HYST    PWM     RPM
            0       0       255     2900
            10      0       255     2900
            11      0       215     2440
            30      0       215     2440
            60      0       66      750
            105     0       66      750
    }
    FAN_PROFILE quiet {
            #TEMP   HYST    PWM     RPM
            0       0       255     2900
            10      0       255     2900
            11      0       171     1940
            23      0       171     1940
            60      0       66      750
            105     0       66      750
    }
    THERMAL_GROUP 0 {
            GROUP_MAX_TEMP 105
            #Thermal-Zone Coeffs Max-Temp
            cpu-thermal 20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0
            gpu-thermal 20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0
            soc0-thermal 20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0
            soc1-thermal 20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0
            soc2-thermal 20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0
    }
    FAN_DEFAULT_CONTROL close_loop
    FAN_DEFAULT_PROFILE cool
    FAN_DEFAULT_GOVERNOR cont
    KICKSRART_PWM 64

 

기본 프로필 설정은 cool로 설정되어 있다. 프로필 설정은 사용자에 맞게 구성이 가능하다.

 

1. Fan 프로필을 변경하려면 먼저 nvfancontrol 서비스를 중단한다. 

sudo systemctl stop nvfancontrol

2. 다음 속성을 넣어 기본 Fan 프로필을 설정합니다.

FAN_DEFAULT_PROFILE <fan_profile>

3. 상태 파일을 제거

sudo rm /var/lib/nvfancontrol/status

4. nvfancontrol 서비스를 다시 시작한다.

sudo systemctl start nvfancontrol

현재 Fan 프로필을 알고 싶다면 아래 명령어를 입력한다.

sudo nvfancontrol -q

 

Jetson Power GUI

Nvidia Jetson 에서 제공되는 Power Gui를 사용하면 fan의 동작 상태를 알 수 있다.

 

1. Ubuntu 데스크톱 상단 표시줄 오른쪽에 있는 NVIDIA 아이콘을 클릭합니다.

2. "Run Jetson Power GUI" 메뉴를 클릭합니다.

 

Fan Speed Control

Fan 속도를 수동으로 설정하려면 다음 명령을 입력하면 된다.

echo <PWM_duty_cycle> > /sys/class/hwmon/hwmon<x>/pwm<y>
PWM_duty_cycle은 MAX 255 값이 최대

 

Fan 모듈 내부에는 회전속도계가 장착되어 있다. 회전 속도계로 측정된 Fan 속도를 얻으려면 다음 명령을 입력하면 된다.

cat /sys/class/hwmon/hwmon<x>/rpm

 

참고 :

https://docs.nvidia.com/jetson/archives/r36.3/DeveloperGuide/SD/PlatformPowerAndPerformance/JetsonOrinNanoSeriesJetsonOrinNxSeriesAndJetsonAgxOrinSeries.html#fan-profile-control

 

Jetson Orin Nano Series, Jetson Orin NX Series and Jetson AGX Orin Series — NVIDIA Jetson Linux Developer Guide 1 documentatio

This topic describes power and performance management features of NVIDIA® Jetson Orin™ Nano series, Jetson Orin™ NX series and NVIDIA® Jetson AGX Orin™ series devices. It describes the power, thermal, and electrical management features visible to s

docs.nvidia.com

 

728x90

'NVIDIA > Jetson' 카테고리의 다른 글

Jetson Camera Debugging  (0) 2025.01.29
Jetson dynamic overlay  (0) 2024.11.26
libgpiod  (0) 2024.10.06
JETSON UEFI DEBUG  (0) 2024.07.15
JETPACK 6 Flash  (0) 2024.06.23