tuxd3v / ats

91 stars 12 forks source link

Bug: fan spinning on max pwm even when temperature is low enough #27

Closed tandy-1000 closed 3 years ago

tandy-1000 commented 3 years ago

I notice sometimes that the temperature is around 34 degrees but the fan is stuck spinning at 255 pwm. If I restart the ATS service, the pwm goes down to 0 because of the low temperature.

Hardware: RockPro64 dietpi with ats master

Please let me know if you need any more information

Morpheus2018 commented 3 years ago

I notice sometimes that the temperature is around 34 degrees but the fan is stuck spinning at 255 pwm. If I restart the ATS service, the pwm goes down to 0 because of the low temperature.

Hardware: RockPro64 dietpi with ats master

I have the same problem, fan keeps spinning 24/7.

:~$ sudo ats -t info:'SYSTEM' Table info: 'BOARD' Table info: 'NAME' = ROCKPRO64 info: 'CPU' = RK3399 info: 'THERMAL0_CTL' = /sys/class/thermal/thermal_zone0/temp info: 'THERMAL1_CTL' = /sys/class/thermal/thermal_zone1/temp info: 'PWM_CTL' = ERROR info: 'MAX_CONTINUOUS_THERMAL_TEMP' = 60 info: 'MIN_CONTINUOUS_THERMAL_TEMP' = 50 info: 'MAX_PWM' = 255 info: 'MIN_PWM' = 40 info: 'ALWAYS_ON' = false info: 'PROFILE_NAME' = profile0 info: 'PROFILE' = 0 info:'Pratio' timers info: 'Pratio[ -20 - 50 [' = 0 info: 'Pratio[ 50 ]' = 40 info: 'Pratio[ 51 ]' = 61 info: 'Pratio[ 52 ]' = 83 info: 'Pratio[ 53 ]' = 104 info: 'Pratio[ 54 ]' = 126 info: 'Pratio[ 55 ]' = 147 info: 'Pratio[ 56 ]' = 169 info: 'Pratio[ 57 ]' = 190 info: 'Pratio[ 58 ]' = 212 info: 'Pratio[ 59 ]' = 233 info: 'Pratio[ 60 ]' = 255 info: 'Pratio[ 60 - 70 [' = 255 Stop ATS Service first [ service ats stop ]..

:~$ systemctl status ats.service ● ats.service - ATS - Active Thermal Service Loaded: loaded (/usr/local/lib/luarocks/rocks/ats/master-0/ats.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2021-02-24 18:23:19 CET; 1h 12min ago Main PID: 16609 (lua) Tasks: 1 (limit: 4382) Memory: 336.0K CGroup: /system.slice/ats.service └─16609 lua /usr/local/sbin/ats

Feb 24 18:23:19 RockHomeServer systemd[1]: Started ATS - Active Thermal Service.

:~$ sudo ats -v ATS --- Active Termal Service, Powered by: Lua 5.3 -- Copyright © 2018 Carlos Dominguestuxd3v@sapo.pt -- Version: 0.2.0

tuxd3v commented 3 years ago

Hello , Check if the temperature entries in the /sys is correct, Wha is the output of this?

find /sys -name temp\*
Morpheus2018 commented 3 years ago

Hello , Check if the temperature entries in the /sys is correct, Wha is the output of this?

find /sys -name temp\*
$ sudo find /sys -name temp\*
/sys/devices/virtual/thermal/thermal_zone0/hwmon0/temp1_crit
/sys/devices/virtual/thermal/thermal_zone0/hwmon0/temp1_input
/sys/devices/virtual/thermal/thermal_zone0/temp
/sys/devices/virtual/thermal/thermal_zone1/temp
/sys/devices/virtual/thermal/thermal_zone1/hwmon1/temp1_crit
/sys/devices/virtual/thermal/thermal_zone1/hwmon1/temp1_input
/sys/firmware/devicetree/base/thermal-zones/gpu/trips/gpu_alert0/temperature
/sys/firmware/devicetree/base/thermal-zones/gpu/trips/gpu_crit/temperature
/sys/firmware/devicetree/base/thermal-zones/cpu/trips/cpu_crit/temperature
/sys/firmware/devicetree/base/thermal-zones/cpu/trips/cpu_alert0/temperature
/sys/firmware/devicetree/base/thermal-zones/cpu/trips/cpu_alert1/temperature
tuxd3v commented 3 years ago

hello Morpheus2018, if you do:

cat /sys/devices/virtual/thermal/thermal_zone0/hwmon0/temp1_input
cat /sys/devices/virtual/thermal/thermal_zone1/hwmon1/temp1_input
cat /sys/devices/virtual/thermal/thermal_zone0/temp
cat /sys/devices/virtual/thermal/thermal_zone1/temp

does the temperature is low? this are the places you should have in '/etc/ats,conf'` as 'THERMAL{0,1}_CTL'

but looking at your 'ats -t' you have: info: 'PWM_CTL' = ERROR

What is the output of this?

find /sys -name pwm\*

You should have a valid PWM entry in '/etc/ats.conf' as PWM_CTL.. For what I see ats can't set pwm because its in error :/

Morpheus2018 commented 3 years ago

if i do:

cat /sys/devices/virtual/thermal/thermal_zone0/hwmon0/temp1_input
45000
cat /sys/devices/virtual/thermal/thermal_zone1/hwmon1/temp1_input
43888
cat /sys/devices/virtual/thermal/thermal_zone0/temp
45000
cat /sys/devices/virtual/thermal/thermal_zone1/temp
43333

the numbers are changing too!

What is the output of this?

find /sys -name pwm\*

output is... ~$ sudo find /sys -name pwm* /sys/kernel/debug/tracing/events/pwm /sys/kernel/debug/tracing/events/pwm/pwm_apply /sys/kernel/debug/tracing/events/pwm/pwm_get /sys/kernel/debug/pwm /sys/kernel/debug/regulator/vcc12v_dcin/pwm-fan-fan /sys/class/pwm /sys/class/pwm/pwmchip2 /sys/class/pwm/pwmchip0 /sys/class/pwm/pwmchip1 /sys/devices/platform/ff420020.pwm/pwm /sys/devices/platform/ff420020.pwm/pwm/pwmchip2 /sys/devices/platform/ff420010.pwm/pwm /sys/devices/platform/ff420010.pwm/pwm/pwmchip1 /sys/devices/platform/ff420000.pwm/pwm /sys/devices/platform/ff420000.pwm/pwm/pwmchip0 /sys/devices/platform/pwm-fan /sys/devices/platform/pwm-fan/hwmon/hwmon3/pwm1 /sys/devices/platform/vcc12v-dcin/regulator/regulator.1/pwm-fan-fan /sys/bus/platform/devices/pwm-fan /sys/bus/platform/drivers/pwm-clock /sys/bus/platform/drivers/pwm-fan /sys/bus/platform/drivers/pwm-fan/pwm-fan /sys/bus/platform/drivers/pwm-regulator /sys/firmware/devicetree/base/pwm@ff420020 /sys/firmware/devicetree/base/pwm@ff420010 /sys/firmware/devicetree/base/pwm@ff420000 /sys/firmware/devicetree/base/pinctrl/pwm1 /sys/firmware/devicetree/base/pinctrl/pwm1/pwm1-pin /sys/firmware/devicetree/base/pinctrl/pwm1/pwm1-pin-pull-down /sys/firmware/devicetree/base/pinctrl/pwm3a /sys/firmware/devicetree/base/pinctrl/pwm3a/pwm3a-pin /sys/firmware/devicetree/base/pinctrl/pwm2 /sys/firmware/devicetree/base/pinctrl/pwm2/pwm2-pin /sys/firmware/devicetree/base/pinctrl/pwm2/pwm2-pin-pull-down /sys/firmware/devicetree/base/pinctrl/pwm0 /sys/firmware/devicetree/base/pinctrl/pwm0/pwm0-pin-pull-down /sys/firmware/devicetree/base/pinctrl/pwm0/pwm0-pin /sys/firmware/devicetree/base/pinctrl/pwm3b /sys/firmware/devicetree/base/pinctrl/pwm3b/pwm3b-pin /sys/firmware/devicetree/base/vdd-log/pwms /sys/firmware/devicetree/base/pwm-fan /sys/firmware/devicetree/base/pwm-fan/pwms /sys/firmware/devicetree/base/symbols/pwm3a_pin /sys/firmware/devicetree/base/symbols/pwm0_pin /sys/firmware/devicetree/base/symbols/pwm3 /sys/firmware/devicetree/base/symbols/pwm3b_pin /sys/firmware/devicetree/base/symbols/pwm1 /sys/firmware/devicetree/base/symbols/pwm1_pin /sys/firmware/devicetree/base/symbols/pwm1_pin_pull_down /sys/firmware/devicetree/base/symbols/pwm2_pin /sys/firmware/devicetree/base/symbols/pwm2 /sys/firmware/devicetree/base/symbols/pwm2_pin_pull_down /sys/firmware/devicetree/base/symbols/pwm0 /sys/firmware/devicetree/base/symbols/pwm0_pin_pull_down /sys/firmware/devicetree/base/pwm@ff420030 /sys/module/pwm_fan

The only way to slow the fan down is for me like this:


sudo find /sys -name pwm1 | grep hwmon
/sys/devices/platform/pwm-fan/hwmon/hwmon3/pwm1
cat /sys/devices/platform/pwm-fan/hwmon/hwmon3/pwm1
255
sudo nano /sys/devices/platform/pwm-fan/hwmon/hwmon3/pwm1
cat /sys/devices/platform/pwm-fan/hwmon/hwmon3/pwm1
200
tuxd3v commented 3 years ago

hello, For what I see, In '/etc/ats.conf' use for PWM_CTL, the '/sys/devices/platform/pwm-fan/hwmon/hwmon3/pwm1' :)

And your problem should be fixed :)

Morpheus2018 commented 3 years ago

In '/etc/ats.conf' use for PWM_CTL, the '/sys/devices/platform/pwm-fan/hwmon/hwmon3/pwm1' :)

And your problem should be fixed :)

now

-- FAN Control[ String ]
       PWM_CTL         = {
                       "/sys/class/hwmon/hwmon0/pwm1",
                       "/sys/devices/platform/pwm-fan/hwmon/hwmon0/pwm1",
                       "/sys/devices/platform/pwm-fan/hwmon/hwmon1/pwm1",
                       "/sys/devices/platform/pwm-fan/hwmon/hwmon3/pwm1"
       },
cat /sys/devices/platform/pwm-fan/hwmon/hwmon3/pwm1
0

$ sudo ats -t info:'SYSTEM' Table info: 'BOARD' Table info: 'NAME' = ROCKPRO64 info: 'CPU' = RK3399 info: 'THERMAL0_CTL' = /sys/class/thermal/thermal_zone0/temp info: 'THERMAL1_CTL' = /sys/class/thermal/thermal_zone1/temp info: 'PWM_CTL' = /sys/devices/platform/pwm-fan/hwmon/hwmon3/pwm1 info: 'MAX_CONTINUOUS_THERMAL_TEMP' = 60 info: 'MIN_CONTINUOUS_THERMAL_TEMP' = 50 info: 'MAX_PWM' = 255 info: 'MIN_PWM' = 40 info: 'ALWAYS_ON' = false info: 'PROFILE_NAME' = profile0 info: 'PROFILE' = 0 info:'Pratio' timers info: 'Pratio[ -20 - 50 [' = 0 info: 'Pratio[ 50 ]' = 40 info: 'Pratio[ 51 ]' = 61 info: 'Pratio[ 52 ]' = 83 info: 'Pratio[ 53 ]' = 104 info: 'Pratio[ 54 ]' = 126 info: 'Pratio[ 55 ]' = 147 info: 'Pratio[ 56 ]' = 169 info: 'Pratio[ 57 ]' = 190 info: 'Pratio[ 58 ]' = 212 info: 'Pratio[ 59 ]' = 233 info: 'Pratio[ 60 ]' = 255 info: 'Pratio[ 60 - 70 [' = 255 Stop ATS Service first [ service ats stop ]..

now seems to be working again! why has / hwmon3 / changed automatically? For me it's solved first, thank you very much!

tuxd3v commented 3 years ago

hello Morpheus2018, Nice you succeed :)

yeah, the Mainline kernel is a bit dynamic,,on reboot it sometimes change the paths :/ that's why we have in '/etc/ats.conf' so many options .. for control files in sysfs.. When ATS starts, it will check all links and see what of them are valid, and will stay with valid ones :)

Best Regards, tux