comutação de perfis nvidia

2

Eu tenho um laptop antigo com uma placa nivdia (360m) e uso o powermizer para forçá-lo a ter um clock muito baixo. Heres minha configuração em /etc/X11/xorg.conf.d/20-nvidia.conf

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

Neste momento, sempre que assisto a filmes ou jogo alguns jogos no Steam, altero manualmente o arquivo para que o gpu seja executado em um clock maior. É um pouco desajeitado, mas faz o trabalho. Existem maneiras melhores de fazer isso? (Como um perfil X diferente para usuários diferentes)

    
por feverDream 01.05.2014 / 13:09

1 resposta

1

Como uma função bash para tornar a chamada mais fácil, e assim você pode adicionar o que for necessário para reiniciar o X facilmente.

O bit principal é a edição do arquivo Perl in place ( perl -i ) e o regex para localizar PowerMizerLevelAC=".*" e substituí-lo pelo mesmo texto ( $1 ) e seu novo valor ( $value ).

Esteja ciente de que o regex precisará ser mais exato se você tiver vários locais em que o PowerMizerLevelAC="" possa ocorrer, pois isso substituirá todos eles.

Execute com 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 
  ##
}
    
por 02.05.2014 / 16:11

Tags