asus_fanmode
asus_fanmode copied to clipboard
asus_fanmode does not update temperatures
Steps to reproduce:
- Start service, make sure it's started by
systemctl status asus_fanmode
- Run stress tool to heat the CPU (I used
stress --cpu 30
) - Wait CPU temperature is high, 80 C
Expected: The service switches profile to overboost
Actual result:
and@glados:~/$ cat /sys/devices/platform/asus-nb-wmi/throttle_thermal_policy
0
Configuration:
# Path to CPU temperature input
# Daemon will try to find it automatically
# If it doesn't uncomment and set proper path
# cpu_temp = /sys/class/hwmon/hwmon3/temp1_input
cpu_temp_divider = 1000
# Path to fan boost mode or throttle thermal policy
# Daemon will try to find it automatically
# If it doesn't uncomment and set proper path
fan_mode = /sys/devices/platform/asus-nb-wmi/throttle_thermal_policy
# Modes
mode_silent = 2
mode_normal = 0
mode_overboost = 1
# Poll interval in milliseconds
poll = 500
# High - temperature at which mode is enabled
# Low - temperature at which mode switches back
normal_high = 69
normal_low = 40
overboost_high = 95
overboost_low = 70
It looks like the service does not get updates on temperature
Apr 10 15:58:04 glados asus_fanmode[219456]: Current Fan Mode: Normal
Apr 10 15:58:04 glados asus_fanmode[219456]: Current CPU temperature: 53
Apr 10 15:58:04 glados asus_fanmode[219456]: Found CPU hwmon: /sys/class/hwmon/hwmon4/temp1_input
Apr 10 15:58:04 glados systemd[1]: Started ASUS Fan Mode Service.
Any ideas, how it could be fixed?
P.S. I tested /sys/devices/platform/asus-nb-wmi/throttle_thermal_policy
, it works on my laptop. When it's set to 1 (boost mode), it speeds up fan to 3000-4500 rpm
Got it figured, after reading the source code. High and low values in config should be the same. My updated config that works:
# Path to CPU temperature input
# Daemon will try to find it automatically
# If it doesn't uncomment and set proper path
# cpu_temp = /sys/class/hwmon/hwmon3/temp1_input
cpu_temp_divider = 1000
# Path to fan boost mode or throttle thermal policy
# Daemon will try to find it automatically
# If it doesn't uncomment and set proper path
fan_mode = /sys/devices/platform/asus-nb-wmi/throttle_thermal_policy
# Modes
mode_silent = 2
mode_normal = 0
mode_overboost = 1
# Poll interval in milliseconds
poll = 500
# High - temperature at which mode is enabled
# Low - temperature at which mode switches back
normal_high = 45
normal_low = 45
overboost_high = 75
overboost_low = 75
Ranges accordingly to this config:
- Silent: 0-45
- Normal: 45-75
- Boost: 75+
To check thermal policy works for me I used the following:
echo 1 | sudo tee /sys/devices/platform/asus-nb-wmi/throttle_thermal_policy
(boost mode)