Lurkki14 / tuxclocker

Qt overclocking tool for GNU/Linux
GNU General Public License v3.0
765 stars 31 forks source link

RX 7900 XTX Fan Curve control issues #92

Open KarnF91 opened 6 months ago

KarnF91 commented 6 months ago

I've been trying to get the fans to work and have had no luck so far.

I've read through https://github.com/Lurkki14/tuxclocker/issues/79 and I'm at an impasse.

When I do cat /sys/class/drm/card1/device/gpu_od/fan_ctrl/fan_curve I get

0: 0C 0% 1: 0C 0% 2: 0C 0% 3: 0C 0% 4: 0C 0% OD_RANGE: FAN_CURVE(hotspot temp): 25C 100C FAN_CURVE(fan speed): 20% 100%

When I then do the suggested echo commands I get this

0 50 15 tee: /sys/class/drm/card1/device/gpu_od/fan_ctrl/fan_curve: Invalid argument 1 50 15 tee: /sys/class/drm/card1/device/gpu_od/fan_ctrl/fan_curve: Invalid argument 2 50 15 tee: /sys/class/drm/card1/device/gpu_od/fan_ctrl/fan_curve: Invalid argument 3 50 15 tee: /sys/class/drm/card1/device/gpu_od/fan_ctrl/fan_curve: Invalid argument 4 50 15 tee: /sys/class/drm/card1/device/gpu_od/fan_ctrl/fan_curve: Invalid argument c

Any advice would be greatly appreciated in solving this issue. Been trying for a couple days to get these fans working. Afraid to really put it through its paces on Linux without being able to control my fans in same way.

Lurkki14 commented 6 months ago

The third argument (fan speed) needs to be 20 - 100. What problem do you get with tuxclocker itself?

KarnF91 commented 6 months ago

Oh sorry I wasn't clear about that, didn't realize that until you mentioned it. Inside tuxclocker the fan control has no effect. I've set Fan Speed to different settings including 100% (currently at 35%). The only option I have in Fan Mode is Automatic. The other Fan Speed does show fan speed when they do turn on for a few seconds. It is acting similar to Zero RPM mode on Windows once it hits a certain temp the fans ramp up and once it drops below the threshold they turn off again.

I may have entered this wrong (still new to Linux). I entered 20-100 and got

0 50 20-100 tee: /sys/class/drm/card1/device/gpu_od/fan_ctrl/fan_curve: Invalid argument 1 50 20-100 tee: /sys/class/drm/card1/device/gpu_od/fan_ctrl/fan_curve: Invalid argument 2 50 20-100 tee: /sys/class/drm/card1/device/gpu_od/fan_ctrl/fan_curve: Invalid argument 3 50 20-100 tee: /sys/class/drm/card1/device/gpu_od/fan_ctrl/fan_curve: Invalid argument 4 50 20-100 tee: /sys/class/drm/card1/device/gpu_od/fan_ctrl/fan_curve: Invalid argument c

After that I noticed the space and entered 20 - 100 and got

0 50 20 - 100 tee: /sys/class/drm/card1/device/gpu_od/fan_ctrl/fan_curve: Invalid argument 1 50 20 - 100 tee: /sys/class/drm/card1/device/gpu_od/fan_ctrl/fan_curve: Invalid argument 2 50 20 - 100 tee: /sys/class/drm/card1/device/gpu_od/fan_ctrl/fan_curve: Invalid argument 3 50 20 - 100 tee: /sys/class/drm/card1/device/gpu_od/fan_ctrl/fan_curve: Invalid argument 4 50 20 - 100 tee: /sys/class/drm/card1/device/gpu_od/fan_ctrl/fan_curve: Invalid argument c If this turns out to be something as simple as me not entering the commands right I'm sorry.

Lurkki14 commented 6 months ago

The string you're entering needs to be 0 50 20. Sounds like tuxclocker is successful in writing to the file though. Maybe the fan_minimum_pwm interface is needed to make the fan spin up earlier?

KarnF91 commented 6 months ago

Okay I've entered 0 50 20 and don't get the invalid argument anymore

cat /sys/class/drm/card1/device/gpu_od/fan_ctrl/fan_curve now returns

OD_FAN_CURVE: 0: 50C 20% 1: 50C 20% 2: 50C 20% 3: 50C 20% 4: 50C 20% OD_RANGE: FAN_CURVE(hotspot temp): 25C 100C FAN_CURVE(fan speed): 20% 100%

So progress! I don't know how to do the fan_minimum_pwm if we still need to do that.