因此,我试图弄清楚如何为我的 Gigabyte GTX 960 ITX 卡制作自定义风扇曲线。它的长度约为一半(对于我的小机箱而言),但这意味着它的散热器非常小,而 Nvidia 驱动程序无法正确补偿这一点。
我进行了大量谷歌搜索,但大多数答案由于某种原因并没有起到什么作用。
如何制作自定义风扇曲线?
答案1
我发现我的大部分答案在 Ubuntu 论坛上但给出的设置风扇速度的命令是错误的。我也自己写了 shell 脚本(我是菜鸟),所以请随意评论我做错了什么,只要你告诉我如何修复它 :) 我添加了过多的评论,以便不懂 bash 的人可以了解我在做什么。这仅适用于 1 个 GPU,并且需要修改多个 GPU。顺便说一句,我设置的风扇曲线是speed%=0.028*(degreesC^2)
。
设置
- 以 root 身份运行您选择的文件浏览器(就我而言
sudo konqueror
)。 - 转至
/etc/X11
所有组并允许其写访问(但保持窗口打开)。 - 打开 Nvidia X 服务器设置窗口(
nvidia-settings
在终端中)。 - 前往nvidia-settings 配置。
- 点击保存当前配置然后在弹出的窗口中单击“保存”。
- 关闭Nvidia 设置并运行
sudo nvidia-xconfig
,然后再用--cool-bits=4
。 - 重启。
脚本
#!/bin/bash
# Put "sleep 30" here if you run it at start-up
# to make sure this starts after the Nvidia driver does.
fan="0"
gpu="0"
echo "GPU fan controller service started."
nvidia-settings -a "[gpu:$gpu]/GPUFanControlState=1" > /dev/null
check="$(nvidia-settings -a \"[fan:$fan]/GPUTargetFanSpeed=30\" | tr -d '[[:space:]]')"
working="Attribute'GPUTargetFanSpeed'($(hostname):0fan:$fan)assignedvalue30."
if [[ "$check" != "$working" ]]; then
echo "error on fan speed assignment: $check"
echo "Should be: $working"
exit 1
fi
while true
do
degreesC="$(nvidia-smi -i $gpu | grep -owEe '[0-9]+C')"
fanSpeed=$(($degreesC ** 2))
fanSpeed=$(($fanSpeed / 50))
if [[ $fanSpeed -gt 100 ]]
then
fanSpeed=100
fi
nvidia-settings -a "[fan:$fan]/GPUTargetFanSpeed=$fanSpeed" > /dev/null
sleep 8
done
我将来可能不会更新它,因为我将升级到 RX 480。
答案2
我为此编写了自己的脚本,这是我迄今为止见过的最好的脚本。我希望你们中的一些人能够贡献并改进我的代码。我的代码只需运行它就可以工作,并且应该能够支持 349.16 以下的旧版本。它还具有可调节的风扇曲线。
这是 github 链接: https://github.com/abc123me/Nvidia-Fancontrol
答案3
感谢提供脚本。我遇到了风扇控制器的问题,这会破坏硬件风扇控制(第二个风扇无法识别,第一个风扇开始疯狂旋转。)。软件控制在 Windows 上运行良好,所以我决定检查如何在 Ubuntu 上使用风扇曲线实现软件控制。
无论如何,我输入这些内容的原因是您在脚本中硬编码了计算机的名称(第 4 行:Bens-PC)。最好使用变量,并对脚本进行注释,这样人们就可以更容易地注意到它。