我有一台带有 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
##
}