以上的答案都对我没有用,使用nvidia-settings图形界面无法生效。以下是我在通过ssh隧道连接到我的桌面时,使用bash命令成功改变风扇速度的方法。(注意:我安装的是SDDM(简单桌面显示管理器),而不是GDM(GNOME桌面管理器))。
获取当前X服务器的Xauthority。
(注意:您可能需要先插入监视器并打开它,否则,有一个非常有趣的解决方法可以运行一个新的X服务器(例如:X :0 && export DISPLAY=:0
在nvidia论坛上可用)。
我不需要那个方法,因为我只需将一个(关闭电源的)监视器插入HDMI插座即可。以下是更简单的版本:
ps -ax | grep Xorg
找到类似于
-auth /var/run/sddm/{31a6ce92-51d1-4cef-b30e-61d63b0221bb}
的授权文件路径,并复制该路径(即
/var/run/sddm/{Authorization File}
)。 (不要在这里使用虚拟示例,它不起作用 - 您需要使用上述命令找到您的Auth文件路径)。
调整Nvidia GPU风扇速度
现在我们准备好将完整的命令组合在一起 - 要设置GPU 0的速度为95%,命令如下(记得用上面复制的路径替换授权文件路径):
sudo DISPLAY=:0 XAUTHORITY=/var/run/sddm/{31a6ce92-22d1-4cef-b29e-91d63b0221bb} nvidia-settings -a [gpu:0]/GPUFanControlState=1 -a [fan:0]/GPUTargetFanSpeed=95
将值更改为您所需的内容。通过运行此代码来检查是否成功。
nvidia-smi
将所有内容封装到一个Python脚本中
如果你像我一样懒,只想要一个Python脚本来完成所有这些操作 - 你可以将以下内容粘贴到一个文件中(例如,创建一个名为fanspeed.py的新文件),然后运行python fanspeed.py
。
#!/usr/bin/python
import subprocess
import re
# Run 'ps' command and capture the output
ps_process = subprocess.Popen(['ps', '-ax'], stdout=subprocess.PIPE)
ps_output = ps_process.communicate()[0].decode('utf-8')
# Search for the string that looks like '/usr/lib/xorg/Xorg -nolisten tcp -auth /var/run/sddm/{c88c6851-f0c3-48f8-9689-814f25e12450} -background none -noreset -displayfd 17 -seat seat0 vt1'
xauth_line = None
for line in ps_output.split('\n'):
if '-auth /var/run/sddm/{' in line:
xauth_line = line
print("Found Xauth line " + xauth_line)
break
# Extract the '-auth' value
xauth_value = None
if xauth_line:
match = re.search(r'-auth\s+(.+?})', xauth_line)
#match = re.search(r'-auth\s+(.+)\s+', xauth_line)
if match:
xauth_value = match.group(1)
print("Found Xauth value:" + xauth_value)
# Adjust fan speed
if xauth_value:
fan_speed_command = f'sudo DISPLAY=:0 XAUTHORITY={xauth_value} nvidia-settings -a [gpu:0]/GPUFanControlState=1 -a [fan:0]/GPUTargetFanSpeed=95'
print("Issuing command to adjust fanspeed"+fan_speed_command)
subprocess.run(fan_speed_command, shell=True)
# Check if it worked by running 'nvidia-smi' command
nvidia_smi_process = subprocess.run(['nvidia-smi'], stdout=subprocess.PIPE)
nvidia_smi_output = nvidia_smi_process.stdout.decode('utf-8')
print(nvidia_smi_output)
xorg.conf
文件,并在Section "Screen"
中添加了Option "Coolbits" "4"
。而被称为 NVIDIA X Server Settings 的应用程序是nvidia-settings
。 - scai