Forums before death by AOL, social media and spammers... "We can't have nice things"
|    alt.os.linux.mint    |    Looks pretty on the outside, thats it!    |    30,566 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 28,824 of 30,566    |
|    Paul to Paul    |
|    Re: GPU fan control    |
|    06 Aug 25 14:55:27    |
   
   From: nospam@needed.invalid   
      
   On Wed, 8/6/2025 2:06 PM, Paul wrote:   
   > On Wed, 8/6/2025 10:01 AM, yossarian wrote:   
   >> Hi all   
   >> How do you control the fan speed on your GPU? I installed a new   
   >> graphics card (RX9060XT) and the fan only starts at 60 C. I think   
   >> that's too high. I would like it to run constantly at a low speed. Any   
   >> suggestions?   
   >>   
   >>   
   >   
   > There is a mention here, of some variable names not being correct   
   > for talking to the interface.   
   >   
   > https://discussion.fedoraproject.org/t/radeon-9060xt-fan-not-o   
   erating-under-load/158524/12   
   >   
   > "My educated guess would be changing the path names in /usr   
   local/bin/amdgpu-fancontrol.   
   >   
   > The file was still using pwm1_max and pwm1_min, but the system exposes   
   fan1_max and fan1_min.   
   >   
   > E.G: PWMMAX=$(cat /sys/class/drm/card$CARDNUM/device/hwmon   
   ${HWMONID}/pwm1_max)   
   > ==>   
   > PWMMAX=$(cat /sys/class/drm/card$CARDNUM/device/hwmon   
   ${HWMONID}/fan1_max)   
   > "   
   >   
   > Paul   
   >   
      
   https://dri.freedesktop.org/docs/drm/gpu/amdgpu.html#gpu-power-t   
   ermal-controls-and-monitoring   
      
    hwmon interfaces for GPU fan:   
      
    pwm1: pulse width modulation fan level (0-255)   
    pwm1_enable: pulse width modulation fan control method   
    (0: no fan speed control,   
    1: manual fan speed control using pwm interface,   
    2: automatic fan speed control)   
    pwm1_min: pulse width modulation fan control minimum level (0)   
    pwm1_max: pulse width modulation fan control maximum level (255)   
      
    fan1_min: a minimum value Unit: revolution/min (RPM)   
    fan1_max: a maximum value Unit: revolution/max (RPM)   
    fan1_input: fan speed in RPM   
    fan[1-*]_target: Desired fan speed Unit: revolution/min (RPM)   
    fan[1-*]_enable: Enable or disable the sensors.1: Enable 0: Disable   
      
    NOTE: DO NOT set the fan speed via “pwm1” and “fan[1-*]_target”   
   interfaces at the same time.   
    That will get the former one overridden.   
      
   https://utcc.utoronto.ca/~cks/space/blog/linux/AmdgpuAutoFanWorkaround   
      
    "While the GPU fan was under automatic control, writing any value to   
   hwmon2/pwm1 did nothing;   
    it stayed stuck at 0 (and the fan stayed inactive).   
      
    The first workaround was to take manual control of the fan by writing 1 to   
   hwmon2/pwm1_enable   
    and then writing some value to hwmon2/pwm1, say the typical '81' of the   
   5.10.x kernels.   
    This caused the fan to start going properly at its usual 800 RPM.   
      
    The second workaround is that once the fan was started this way, I could   
   write a '2' to   
    hwmon2/pwm1_enable, theoretically switching back to automatic fan control,   
   and the   
    amdgpu driver properly took over again.   
      
    In automatic mode with what I can only describe as a woken up driver, the   
   driver (or the BIOS)   
    is actually being more aggressive with the GPU fan than in 5.10; the fan   
   is currently running   
    at 1800 RPM instead of 800 RPM, and the GPU is 2 degrees C cooler than it   
   was before.   
      
    (Something is actively controlling the fan because the value of pwm1   
   shifts around on a   
    rapid basis, going from 94 to 124 and back every few seconds.)   
      
    This still feels like a fragile workaround to me. The automatic fan   
   control has   
    already failed once (on boot), so I don't have complete confidence that it   
   won't   
    fail again at some point. One option is to switch to manual fan control   
   through a   
    daemon that monitors the GPU temperature following some set-points. The   
   Arch wiki   
    has a section on AMDGPU sysfs fan control with some options and I've also   
   read   
      
    Controlling the fan curve of an AMD GPU on Pop!_OS.   
      
    I'm currently vaguely biased towards amdgpu-fan, but I haven't tried any   
   of the options out.   
    "   
      
   At some point, when the hardware companies switched to closed loop control   
   for core voltage, clock speed, power-limiter, that included re-doing the fan   
   control so it was automated (sensor in GPU feeds a fan control block similar   
   to how the BIOS or SuperIO have done these things for the motherboard fans).   
   And you are correct, that some cards implement their defaults, as "zero speed   
   fan   
   up to 60C". And you have to run Furmark, to actually test that the fan   
   eventually comes on.   
      
   This stuff should really work on its own. The fan should *never* be entirely   
   disabled.   
   NVidia learned about this, when on a couple occasions for the manual fan   
   control,   
   they released driver updates which failed to turn on the fan. Leading to some   
   damaged product. The current scheme of closed loop controls, was supposed to   
   prevent bad driver updates from destroying equipment via "in-attention to   
   detail   
   and poor driver testing". I expect with enough effort, a driver could just turn   
   off the fan anyway, but that would require some degree of malicious design   
   behavior   
   on the devs part.   
      
    Paul   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca