No announcement yet.

5700(XT) cards with custom fan curve on linux via kernel patch + fanctl!

  • Filter
  • Time
  • Show
Clear All
new posts

  • 5700(XT) cards with custom fan curve on linux via kernel patch + fanctl!

    Hey everyone, I don't really know where to post this, but I thought it might be quite useful to people around here, and maybe even Michael.

    Since the default fan curve on the 5700/5700XT is quite bad on the reference cards, I wanted to get a custom fan curve working. It required both a bugfix patch for the kernel/amdgpu, and writing a simple fan controller.

    You can find my kernel patch (should be on amd-staging-drm-next soon) here: That patch will make the sysfs interface for the fans work.

    My fan controller (fanctl), can be found on GitLab here:

    Here is a config file I'm using for a very aggressive fan curve on my 5700 XT. It's loud, but you won't be hurting your card while benchmarking! :

    To run the fan controller (as root for proper permissions), use the following command.

    fanctl -c /path/to/fanctl.yml
    I hope this helps somebody out. If you have comments on fanctl itself, please let me know, as I'd really like to keep building it out as a way better alternative to fancontrol as I find the configuration interface for fancontrol to be moderately confusing, and hard to use.

    FWIW, I also noticed that to get my card to use the correct power profile mode, I had to do the following:

    echo 1 | sudo tee /sys/class/drm/card0/device/pp_power_profile_mode && echo 0 1 | sudo tee /sys/class/drm/card0/device/pp_dpm_sclk
    Changing the power profile mode didn't really seem to impact performance in any meaningful way, but I thought it should be in the correct mode regardless.

    Cheers, and happy hacking,

  • #2
    When I run fanctl I get : [2019-08-08T13:04:49Z ERROR fanctl] Error updating fanctl graph: Error updating fan: Error updating fan (gpu_fan): Invalid argument (os error 22)

    dmesg tell me : [71898.806182] manual fan speed control should be enabled first

    Is there is another switch I have to enable before?