I have an EVGA Nvidia GTX 970, Nvidia driver 470, and three monitors.  If I
hibernate at night and resume in the morning, the GPU gets in a state where:

temp<60C: fan speed is actually and reported 0
temp>60C: fan speed is actually 0, but is reported as crazy non-contiguous
values

Which means I can only run two monitors (the third has to be disabled) and I
can't do anything that puts too much load on the CPU, lest the GPU overheat
and effectively crash the OS.  I put some GPU stats in the top center panel
so I could keep an eye on it.

Anyhow, if I use ddccontrol to turn off and on each monitor, that forces the
GPU to straighten up and fly right.  It hangs out at temp=63C and fan=8-9%.
I'm not sure of the actual minimum I have to do (maybe one monitor is
enough?  Maybe a state lower than DPMS 5 will work?) because I just figured
this out today.  But maybe it can help someone else.

I wrote a script (/bin/sh) a while back that resets the monitors to the way
I like them, and added this to it:

DDC=ddccontrol

# default
DPMS=no

while [ $# -gt 0 ] ; do
    case "$1" in
        -dpms|-DPMS)    DPMS=yes
                        shift ;;
        *)              echo "Unknown option '$1'"
                        exit 1
    esac
done

if [ $DPMS = yes ] ; then
    # toggles each detected monitor off and on using DPMS
    devices="$("$DDC" -p 2>/dev/null | sed -n /Detected/,/^$/p | grep '^ -
D' | cut -f 4 -d ' ')"
    for device in $devices ; do
        echo '-=>' $device '<=-'
        "$DDC" -r 0xd6 -w 5 "$device" # off
        "$DDC" -r 0xd6 -w 1 "$device" # on
    done
    exit
fi

--
Unfortunately, our Bright Young PFY will no longer be assisting
     with expeditions downtown, as he has been dubbed the
       Telecom Destruction Bunny and banned from taking
his aura anywhere near anything major. -- Anthony DeBoer on ASR

Reply via email to