切换 nvidia 配置文件

切换 nvidia 配置文件

我有一台带有 nivdia 卡 (360m) 的旧笔记本电脑,我使用 powermizer 强制它运行非常低的时钟。这是我的配置/etc/X11/xorg.conf.d/20-nvidia.conf

   Section "Device"
      Identifier "Device0"                                                  
      Driver    "nvidia"                                                                
      Option     "RegistryDwords" "PowerMizerLevelAC=0x3"                                                                                                                                  
      Option     "NoLogo" "1"
   EndSection

现在,每当我在 Steam 上看电影或玩一些游戏时,我都会手动更改文件,以便 GPU 以更高的时钟运行。它有点笨拙,但它完成了工作。有更好的方法来做到这一点吗? (就像不同用户的不同X配置文件)

答案1

作为一个 bash 函数,使调用更容易,因此您可以添加任何您需要的内容来轻松重新启动 X。

主要部分是 Perl 就地文件编辑 ( ) 和用于查找并用相同文本 ( ) 和新值 ( ) 替换它的perl -i正则表达式。PowerMizerLevelAC=".*"$1$value

请注意,如果您有多个可能发生的位置,则正则表达式将需要更加精确,PowerMizerLevelAC=""因为这将替换所有位置。

运行它set_nvidia_clock 0x1

function set_nvidia_clock() {
  local file="/etc/X11/xorg.conf.d/20-nvidia.conf"
  local level="$1"
  [ -z "$level" ] && echo "Error: specify new level as argument: set_nvidia_clock foo" && return 1

  perl -pi -e '
   BEGIN{ $value=shift;}
   s/"(PowerMizerLevelAC)=.*"/"${1}=${value}"/;
  ' "$level" "$file"

  if ! grep "PowerMizerLevelAC" "$file"; then 
    echo "Error: problem with replace"
    return 1
  fi

  # restart X 
  ##
}

相关内容