[Internal testing communication] NVIDIA GeForce GTX 970 风扇控制配置详细使用报告 Resolved
Tofloor
poster avatar
LiuYongzhang
deepin
4 hours ago
Author

NVIDIA GeForce GTX 970 风扇 手动开启并设置转速40%后,重新启动电脑就会重置,问了半天Ai 现在终于可以开机自动设置了。

以下是靠着Ai捣鼓半天的过程

image.png

NVIDIA GeForce GTX 970 风扇控制配置详细使用报告

适用系统:Deepin 25

用户名:liu

显卡型号:NVIDIA GeForce GTX 970

驱动版本:580.105.08

配置目标:实现 GPU 风扇手动调速(目标转速 40%),并配置开机自动生效

一、 问题背景与核心痛点

  1. 初始状态:GPU 风扇默认自动调速,低负载时转速为 0%,用户需要手动控制转速以优化散热或噪音
  2. 核心障碍
    • 系统缺失 nvidia-settings 命令的默认软链接,实际路径为 /usr/lib/nvidia/current/nvidia-settings
    • 未启用 Coolbits 配置,无法解锁风扇手动控制权限
    • nvidia-settings 依赖 X11 显示环境,rc.local 开机脚本执行时机过早导致失效
    • 修改风扇参数需要 root 权限,普通用户执行会提示权限不足

二、 配置步骤与关键操作

阶段 1:环境准备与权限解锁

  1. 定位 nvidia-settings 实际路径

    sudo find /usr -name "nvidia-settings" -type f
    

    结果:/usr/lib/nvidia/current/nvidia-settings

  2. 配置 Coolbits 解锁风扇控制权限

  3. 创建 Xorg 配置文件 /etc/X11/xorg.conf.d/10-nvidia-fan.conf,内容如下:

    Section "Device"
        Identifier     "NVIDIA Card"
        Driver         "nvidia"
        VendorName     "NVIDIA Corporation"
        BoardName      "NVIDIA GeForce GTX 970"
        Option         "Coolbits" "4"  # 解锁风扇控制最小权限
    EndSection
    

    配置后重启系统生效

阶段 2:手动风扇调速验证

  1. 核心执行命令(解决权限与环境变量问题)

    sudo DISPLAY=:0 XAUTHORITY=$HOME/.Xauthority /usr/lib/nvidia/current/nvidia-settings -a "(gpu:0)/GPUFanControlState=1" -a "(fan:0)/GPUTargetFanSpeed=40"
    
    • DISPLAY=:0:指定 X11 显示会话
    • XAUTHORITY=$HOME/.Xauthority:提供 X 会话权限认证
    • GPUFanControlState=1:开启手动控制模式(必须前置步骤)
    • GPUTargetFanSpeed=40:设置目标转速 40%
  2. 验证配置结果

    nvidia-smi --query-gpu=index,temperature.gpu,fan.speed --format=csv
    

    成功输出:

    index, temperature.gpu, fan.speed [%]
    0, 35, 40 %
    

阶段 3:开机自动生效配置

  1. 放弃 rc.local 方案:原因是执行时机过早,无 X11 环境支持

  2. 创建桌面级自启脚本

    • 脚本路径:~/.config/autostart-scripts/set_nvidia_fan.sh

    • 脚本内容:

      #!/bin/bash
      # 等待桌面与 X Server 完全加载
      sleep 15
      
      # 以 root 权限执行风扇设置
      sudo DISPLAY=:0 XAUTHORITY=/home/liu/.Xauthority /usr/lib/nvidia/current/nvidia-settings -a "(gpu:0)/GPUFanControlState=1" -a "(fan:0)/GPUTargetFanSpeed=40"
      
      # 写入日志,方便排查
      echo "[$(date)] 风扇转速已自动设置为40%,当前实际转速: $(nvidia-smi --query-gpu=fan.speed --format=csv,noheader,nounits) %" >> ~/nvidia_fan_log.txt
      
    • 赋予脚本执行权限:

      chmod +x ~/.config/autostart-scripts/set_nvidia_fan.sh
      
  3. 配置 sudo 免密(避免开机弹密码框)

    编辑 sudoers 文件:

    sudo visudo
    

    在文件末尾添加(替换 liu为你的用户名):

    liu ALL=(ALL) NOPASSWD: /usr/lib/nvidia/current/nvidia-settings
    
  4. 创建自启项配置文件

    路径:~/.config/autostart/set_nvidia_fan.desktop

    内容:

    [Desktop Entry]
    Type=Application
    Name=NVIDIA Fan Control
    Exec=/home/liu/.config/autostart-scripts/set_nvidia_fan.sh
    Terminal=false
    Hidden=false
    NoDisplay=false
    X-GNOME-Autostart-enabled=true
    X-Deepin-Autostart-enabled=true
    
  5. 最终验证

    重启系统后等待 20 秒,执行验证命令,转速稳定在 40% 即配置成功

三、 常见问题与解决方案

问题现象 原因分析 解决方法
nvidia-settings:找不到命令 无默认软链接 创建软链接 sudo ln -s /usr/lib/nvidia/current/nvidia-settings /usr/bin/nvidia-settings
ERROR: The control display is undefined 缺少 X11 环境变量 执行命令时添加 DISPLAY=:0 XAUTHORITY=$HOME/.Xauthority
ERROR: The current user does not have permission for operation 无 root 权限 命令前加 sudo,并配置 sudo 免密
开机脚本执行失败 rc.local 执行时机过早 改用桌面自启脚本,添加 15 秒延迟
风扇转速设置后回落至 0% 手动控制状态未持久化 每次设置必须先执行 GPUFanControlState=1

四、 日常维护命令

  1. 手动设置转速

    # 设置为 40%
    sudo DISPLAY=:0 XAUTHORITY=$HOME/.Xauthority /usr/lib/nvidia/current/nvidia-settings -a "(gpu:0)/GPUFanControlState=1" -a "(fan:0)/GPUTargetFanSpeed=40"
    
    # 设置为 80%(按需调整)
    sudo DISPLAY=:0 XAUTHORITY=$HOME/.Xauthority /usr/lib/nvidia/current/nvidia-settings -a "(gpu:0)/GPUFanControlState=1" -a "(fan:0)/GPUTargetFanSpeed=80"
    
  2. 恢复自动调速

    sudo DISPLAY=:0 XAUTHORITY=$HOME/.Xauthority /usr/lib/nvidia/current/nvidia-settings -a "(gpu:0)/GPUFanControlState=0"
    
  3. 实时监控风扇状态 watch -n 1 nvidia-smi --query-gpu=index,temperature.gpu,fan.speed --format=csv

  4. 查看配置日志

    cat ~/nvidia_fan_log.txt
    

五、 配置总结

本次配置通过 解锁权限、解决环境依赖、配置自启脚本 三个核心步骤,成功实现了 GTX 970 风扇的手动控制与开机自动生效。关键要点如下:

  1. Coolbits=4 是解锁风扇控制的必要条件,需写入 Xorg 配置并重启
  2. nvidia-settings 执行必须同时满足 root 权限 + X11 环境变量
  3. Deepin 25 系统需使用桌面自启脚本,避免 rc.local 时机问题
  4. sudo 免密配置是实现开机自动执行的关键优化

为什么nvidia-settings 设置好的配置,重新启动电脑会重置,以前的其他配置可以保存,唯独风扇设置不能保存,现在除了powermizer保存。其他所有设置重新电脑都会重置

image.png

Reply Favorite View the author
All Replies
LiuYongzhang
deepin
2 hours ago
#1

经过生命不止就不停的折腾捣鼓

发现设置好配置后不要点nvidia控制面板的保存

要使用终端命令保存(不用加sudo)如图

nvidia-settings --rewrite-config-file

不知道什么原理
image.png

Reply View the author