mcgillij / amdfan

Updated AMD Fan control utility forked from amdgpu-fan and updated.
https://mcgillij.dev/pages/amdfan.html
GNU General Public License v2.0
33 stars 7 forks source link

fan_speed reports as '0' #18

Open richardtatum opened 1 year ago

richardtatum commented 1 year ago

Kernel: 6.1.6-273-tkg-pds GPU: Radeon 6800XT

amdfan is running correctly as a service and the output appears correct using amdfan --monitor however the fan_speed reports as zero.

➜  ~ amdfan --monitor
AMD Fan Control - ctrl-c to quit
                 amdgpu
┏━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Card  ┃ fan_speed (RPM) ┃ gpu_temp ℃ ┃
┡━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ card0 │ 0               │ 28.0       │
└───────┴─────────────────┴────────────┘

Aborted!
➜  ~ systemctl status amdfan.service
● amdfan.service - amdfan controller
     Loaded: loaded (/usr/lib/systemd/system/amdfan.service; enabled; preset: disabled)
     Active: active (running) since Tue 2023-01-17 18:01:12 GMT; 1min 52s ago
   Main PID: 642 (amdfan)
      Tasks: 1 (limit: 38381)
     Memory: 68.6M
        CPU: 179ms
     CGroup: /system.slice/amdfan.service
             └─642 /usr/bin/python /usr/bin/amdfan --daemon

Jan 17 18:01:12 sff systemd[1]: Started amdfan controller.
Jan 17 18:01:13 sff amdfan[642]: [18:01:13] INFO     Starting amdfan                                amdfan.py:217

Running manually via amdfan --daemon produces no errors.

My config file:

➜  ~ cat /etc/amdfan.yml
#Fan Control Matrix.
# [<Temp in C>,<Fanspeed in %>]
speed_matrix:
- [50, 4]
- [60, 70]
- [65, 75]
- [70, 85]
- [77, 95]
- [80, 100]

# Current Min supported value is 4 due to driver bug
#
# Optional configuration options
#
# Allows for some leeway +/- temp, as to not constantly change fan speed
threshold: 4
#
# Frequency will change how often we probe for the temp
frequency: 5
#
# While frequency and threshold are optional, I highly recommend finding
# settings that work for you. I've included the defaults I use above.
#
# cards:
# can be any card returned from `ls /sys/class/drm | grep "^card[[:digit:]]$"`
# - card0

Let me know if there is anything else I can provide to help diagnose this issue? It appears the fans themselves may still be running at the requested RPM but the monitoring just doesn't reflect that.

mcgillij commented 1 year ago

You may want to check that /sys/class/drm/card0/device/hwmon/hwmon1 is properly populated (card0/hwmon1 may be different for you).

Make sure that this directory has the relevant "temp1_input", "pwm1_max", "pwm1_min", "pwm1_enable", "pwm1", files in there.

I have a 6800xt as well running on 6.1.6-zen1 and it's correctly exporting my sysfs in there.

richardtatum commented 1 year ago

I believe everything that is required is in there:

➜  ~ ls -a /sys/class/drm/card0/device/hwmon/hwmon0/
.            fan1_input   freq1_input  in0_input  power1_average      power1_cap_min  pwm1_max    temp1_crit_hyst  temp2_crit       temp2_label      temp3_input
..           fan1_max     freq1_label  in0_label  power1_cap          power1_label    pwm1_min    temp1_emergency  temp2_crit_hyst  temp3_crit       temp3_label
device       fan1_min     freq2_input  name       power1_cap_default  pwm1            subsystem   temp1_input      temp2_emergency  temp3_crit_hyst  uevent
fan1_enable  fan1_target  freq2_label  power      power1_cap_max      pwm1_enable     temp1_crit  temp1_label      temp2_input      temp3_emergency
mcgillij commented 1 year ago

Are you able to read/set the values either manually or with amdfan --manual? Do you get any permissions errors?

richardtatum commented 1 year ago

Sorry for the late reply.

I am able to set the values manually, no permission errors.