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 
  ##
}

関連情報