nvidia gpu fan speed control

时间:2021-09-12 16:33:38

nvidia在linux上控制风扇速度,需要起X,在无显示器链接的服务器上显得有点坑,这里汇总一下整个流程

1.nvidia-xconfig --cool-bits=4 生成xorg.conf

2.在X已启动的前提下,用nvidia-settings -q all | grep -i fan 列出关于风扇的所有属性,其中应该有 GPUFanControlState,把它设置为 1,然后再根据需要设置 GPUFanTarget,例如nvidia-settings -a [gpu:0]/GPUFanControlState=1 -a [fan:0]/GPUTargetFanSpeed=70

3.如果X没有启动,管理员权限执行 X :1 & 启动X,注意,这里:1需要根据实际情况修改,例如改为2、3。

多GPU风扇控制,参考

https://sites.google.com/site/akohlmey/random-hacks/nvidia-gpu-coolness

主要改动是针对不同GPU,修改xorg.conf Device BusID,添加CustomEDID,欺骗X链接显示器,启动不同的X,并指定环境变量DISPLAY(例如=:2、=:3),之后再执行nvidia-settings。这里提供一个xorg.conf模板

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 352.39 (buildmeister@swio-display-x64-rhel04-18) Fri Aug 14 18:49:16 PDT 2015

Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection

Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
EndSection

Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BusID "PCI:131:0:0"
Screen 0
Option "UseDisplayDevice" "DFP-0"
Option "ConnectedMonitor" "DFP-0"
Option "CustomEDID" "DFP-0:/opt/set-gpu-fans/dfp-edid.bin"
Option "Coolbits" "5"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "Coolbits" "5"
Option "UseDisplayDevice" "DFP-0"
Option "ConnectedMonitor" "DFP-0"
Option "CustomEDID" "DFP-0:/opt/set-gpu-fans/dfp-edid.bin"
SubSection "Display"
Depth 24
Modes "1024x768"
EndSubSection
EndSection