02 June 2019

Automatic NVidia fan control

NVidia doesn't care about proper fan control so here's the solution.
Note that I have a supported NVidia graphics card with the last available driver to date. I'm not sure if this works with legacy drivers.

First things first, you should've CoolBits activated for your configuration. Use my config as an example:

/etc/X11/xorg.conf.d/10-screen.conf Section "Screen"
        Identifier      "Screen0"
        Option          "metamodes" "1920x1080_60 +0+- {ForceCompositionPipeline=On}"
        Option          "AllowIndirectGLXProtocol" "off"
          Option             "Coolbits" "28"        Option          "TripleBuffer" "on"
        Option          "SLI" "off"
        Option          "MultiGPU" "off"

You should change some things in nvidia-settings:

Make sure Fan Control is enabled:

Also make sure the prefered mode is Prefer Maximum Performance

Now there's a software called nfancurve, if you use Arch Linux or Artix Linux, it's available in AUR.

The config is pretty simple (there's an example in /usr/share/doc/nfancurve/, copy to something like $HOME/.nfancurve:

# The temperature that the fans will be turned off, be really careful with this one:

# f_curve is the fan speeds, t_curve is the temperature speeds. Keep in mind that the last value is the maximum temperature before the fan should hit 100%.
fcurve=( "30" "37" "45" "55" "57" )
tcurve=( "45" "55" "65" "75" "85" )
To start, you should use nfancurve -c <your config file>. 
DON'T use as a systemd service or whatever, it should be something to start at the user login.  

No comments:

Post a Comment