temperature_control
Table of Contents
Temperature control CentOS / Fedora
Control the fan speed to reduce noise.
Retrieve useful information
- Install lm_sensors:
# dnf install lm_sensors
- Run
sensors-detect
, accept the defaults. - View the output of the
sensors
command.# sensors nouveau-pci-0100 Adapter: PCI adapter GPU core: +0.90 V temp1: +60.0°C (high = +95.0°C, hyst = +3.0°C) (crit = +105.0°C, hyst = +5.0°C) (emerg = +135.0°C, hyst = +5.0°C) coretemp-isa-0000 Adapter: ISA adapter Physical id 0: +42.0°C (high = +80.0°C, crit = +98.0°C) Core 0: +38.0°C (high = +80.0°C, crit = +98.0°C) Core 1: +40.0°C (high = +80.0°C, crit = +98.0°C) Core 2: +40.0°C (high = +80.0°C, crit = +98.0°C) Core 3: +41.0°C (high = +80.0°C, crit = +98.0°C) it8728-isa-0290 Adapter: ISA adapter in0: +1.04 V (min = +0.00 V, max = +3.06 V) in1: +0.08 V (min = +0.00 V, max = +3.06 V) in2: +2.95 V (min = +0.00 V, max = +3.06 V) +3.3V: +3.34 V (min = +0.00 V, max = +6.12 V) in4: +0.01 V (min = +0.00 V, max = +3.06 V) in5: +0.82 V (min = +0.00 V, max = +3.06 V) in6: +1.54 V (min = +0.00 V, max = +3.06 V) 3VSB: +3.36 V (min = +0.00 V, max = +6.12 V) Vbat: +2.86 V fan1: 769 RPM (min = 0 RPM) fan2: 0 RPM (min = 0 RPM) temp1: +37.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor temp2: +43.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor temp3: +29.0°C (low = +127.0°C, high = +127.0°C) sensor = Intel PECI intrusion0: ALARM
- Find a reliable temperature sensor, for example run a CPU
stress
test. In this casetemp3
seems to be a reliable sensor:# before stressing the CPU: temp3: +29.0°C (low = +127.0°C, high = +127.0°C) sensor = Intel PECI # during the CPU stress test (stress -c 4) temp3: +58.0°C (low = +127.0°C, high = +127.0°C) sensor = Intel PECI
Configure with pwmconfig
- If needed, stop the
fancontrol
process:systemctl stop fancontrol
- Run
pwmconfig
.- Fan
hwmon2/device/fan1_input
was the only fan found. - The above fan is controlled by
hwmon2/device/pwm1
. - The correlation between PWM and FAN was:
PWM 255 FAN 2351 PWM 240 FAN 2265 PWM 225 FAN 2136 PWM 210 FAN 1997 PWM 195 FAN 1854 PWM 180 FAN 1717 PWM 165 FAN 1577 PWM 150 FAN 1430 PWM 135 FAN 1280 PWM 120 FAN 1125 PWM 105 FAN 965 PWM 90 FAN 802 PWM 75 FAN 629 PWM 60 FAN 0 Fan Stopped at PWM = 60
- Note than PWM
hwmon2/device/pwm3
also controlled the same fan, but correlation was not good. - Set up device
hwmon2/device/pwm1
- Select temperature sensor
temp3_input
- Low temperature: 25 degree C.
- High temperature: 60 degree C.
- fan STOPS spinning at: 50 (use safe value)
- fan STARTS spinning at: 80 (use safe value)
- PWM value for temperature below limit: 0
- PWM value for temperature over limit: 255
- Save and quit.
fancontrol service
- Enable fancontrol at boot:
systemctl enable fancontrol
- Start fancontrol:
systemctl start fancontrol
pwmconfig generated configuration file
/etc/fancontrol
# Configuration file generated by pwmconfig, changes will be lost INTERVAL=10 DEVPATH=hwmon2=devices/platform/it87.656 DEVNAME=hwmon2=it8728 FCTEMPS= hwmon2/device/pwm1=hwmon2/device/temp3_input FCFANS=hwmon2/device/pwm3=hwmon2/device/fan1_input hwmon2/device/pwm1=hwmon2/device/fan1_input MINTEMP= hwmon2/device/pwm1=25 MAXTEMP= hwmon2/device/pwm1=60 MINSTART= hwmon2/device/pwm1=80 MINSTOP= hwmon2/device/pwm1=50 MINPWM=hwmon2/device/pwm1=0
Addition information
List hwmon sensors
ls /sys/class/hwmon/ -al
total 0 drwxr-xr-x. 2 root root 0 8 jun 12:40 . drwxr-xr-x. 52 root root 0 8 jun 12:40 .. lrwxrwxrwx. 1 root root 0 8 jun 10:15 hwmon0 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon0 lrwxrwxrwx. 1 root root 0 8 jun 10:16 hwmon1 -> ../../devices/platform/coretemp.0/hwmon/hwmon1 lrwxrwxrwx. 1 root root 0 8 jun 12:39 hwmon2 -> ../../devices/platform/it87.656/hwmon/hwmon2
Show labels
Does not work on all (newer?) systems.
cd /sys/class/hwmon/hwmon2/device grep "" temp*label temp1_label:SYSTIN temp2_label:CPUTIN temp3_label:AUXTIN temp6_label:PECI Agent 0
Supermicro / CentOS 6
I had to change /usr/sbin/fancontrol to set value 5 on reset instead of 0
# Try pwmN_enable=5 echo 5 > $ENABLE 2> /dev/null if [ `cat $ENABLE` -eq 5 ]
temperature_control.txt · Last modified: 2021/10/09 15:14 by 127.0.0.1