When will the 1080 fan issue be fixed on linux?

I just got my 1080 founders edition in the mail today and I am disappointed with the fan. It will randomly ramp up and produce a very loud noise which lasts about a second. This occurs about once a minute. I noticed that the windows driver 368 fixes this issue. When will there be a 368 driver available for linux which also fixes this? Also in the mean time is it bad for the card to run it under load with this issue?

The default fan profile is wrong on the Founder’s edition. Not just for Linux. For everyone. The aftermarket cards have fixed that issue. Nvidia’s attention to Linux drivers are right up there with women drivers in Saudi Arabia. In the meantime, you can try coolbits.

cd /etc/X11
sudo nvidia-xconfig
sudo nvidia-xconfig --cool-bits=4

gksu gedit /etc/X11/xorg.conf
Section “Device”
Identifier “Device0”
Driver “nvidia”
VendorName “NVIDIA Corporation”
BoardName “GeForce GTX 570”
Option “NoLogo” “True”
Option “Coolbits” “4”
EndSection

Then reboot.

You will then be able to edit the fan speed via Nvidia-Settings under the GPU0/Thermal Settings tab.
I suggest you install the latest working Linux 4.5.7 kernel as well as the 367.18 drivers(This sht driver doesn’t compile on 4.6).

On a side note I tried fixing it myself with the following python script.

import subprocess
import atexit
import time

MIN_SPEED = 25
MAX_SPEED = 100

def speed(t):
    if t <= 30:
        return 25
    if t <= 90:
        return 0.75 * t + 2.5
    else:
        return 100

def getCurrentState():
    fan, temp = os.popen('nvidia-settings -t -q [fan:0]/GPUCurrentFanSpeed -q [thermalsensor:0]/ThermalSensorReading').read().split()
    return (int(fan), int(temp))

def setSpeed(speed):
    assert(MIN_SPEED <= speed <= MAX_SPEED)
    script = 'nvidia-settings -a [gpu:0]/GPUFanControlState=1 -a [fan:0]/GPUTargetFanSpeed=%d > /dev/null' % speed
    assert(os.system(script) == 0)
    
@atexit.register
def disableControl():
    os.system('nvidia-settings -a [gpu:0]/GPUFanControlState=0 > /dev/null')

while True:
    t = getCurrentState()[1]
    s = int(speed(t))
    print('t = %d, s = %s' % (t, s))
    setSpeed(s)
    time.sleep(1)

What is interesting is that it still would spike the fan to 70% even though I never commanded more than 46%.