Désactiver Intel Turbo Boost dans Ubuntu

17

Je suis nouveau sur Ubuntu et je souhaite désactiver le turbo boost. J'ai essayé avec cpufreqmais je ne peux pas le faire fonctionner. existe-t-il une autre façon de le faire.

Dans Windows, c'était aussi simple que de changer la vitesse du processeur de 100 à 99.

Ivaylo
la source
quel est votre modèle de processeur?
Ron
@Ron: il s'agit du processeur Intel (R) Pentium (R) B960 à 2,20 GHz. J'ai obtenu les informations du chat vers lequel ils ont déménagé. Je pense que cela n'a pas vraiment d'importance, ce qui importe, c'est quel pilote de mise à l'échelle est utilisé. Actuellement (ce qui est différent du passé), il sera par défaut intel_pstate si le processeur le prend en charge.
Doug Smythies
les gars, j'ai essayé: sudo cpupower fréquence-set -g powersave et il dit: Réglage cpu: 0 Réglage cpu: 1 Alors, où mettre quel cœur changer? :)
Ivaylo
Quel que soit le pilote de mise à l'échelle que vous utilisez, turbo activé ou non est un paramètre global, un emplacement couvre tous les processeurs. Moi-même, j'utilise uniquement des commandes primitives, jamais des outils de niveau supérieur tels que cpupower.
Doug Smythies

Réponses:

18

Pour lire l'état actuel du Turbo Boost, nous devons installer les outils msr

sudo apt-get install msr-tools

Pour savoir si la fonction Turbo Boost est désactivée, exécutez:

rdmsr -pi 0x1a0 -f 38:38

1=disabled
0=enabled

Remplacez i par votre nombre de cœurs


REMARQUE: si vous obtenez l'erreur suivante:

rdmsr:open: No such file or directory

puis chargez le module «msr» par la commande suivante:

sudo modprobe msr

Pour désactiver la fonction Turbo Boost, on peut définir l'ensemble du registre MSR 0x1a0 sur 0x4000850089, comme ici:

wrmsr -pC 0x1a0 0x4000850089

Où C fait référence à un nombre de base particulier

vous pouvez obtenir ce numéro en exécutant

cat /proc/cpuinfo | grep processor

puis une fois que vous connaissez vos numéros, vous devez exécuter la commande ci-dessus pour chaque cœur. dans votre cas, les nombres seraient 0 et 1, vous devez donc faire

wrmsr -p0 0x1a0 0x4000850089

wrmsr -p1 0x1a0 0x4000850089

La solution représente ce blog


Depuis http://notepad2.blogspot.com/2014/11/a-script-to-turn-off-intel-cpu-turbo.html

Un script pour désactiver / activer le turbo boost

Le script suivant peut être utilisé pour désactiver / activer le turbo boost:

#!/bin/bash

if [[ -z $(which rdmsr) ]]; then
    echo "msr-tools is not installed. Run 'sudo apt-get install msr-tools' to install it." >&2
    exit 1
fi

if [[ ! -z $1 && $1 != "enable" && $1 != "disable" ]]; then
    echo "Invalid argument: $1" >&2
    echo ""
    echo "Usage: $(basename $0) [disable|enable]"
    exit 1
fi

cores=$(cat /proc/cpuinfo | grep processor | awk '{print $3}')
for core in $cores; do
    if [[ $1 == "disable" ]]; then
        sudo wrmsr -p${core} 0x1a0 0x4000850089
    fi
    if [[ $1 == "enable" ]]; then
        sudo wrmsr -p${core} 0x1a0 0x850089
    fi
    state=$(sudo rdmsr -p${core} 0x1a0 -f 38:38)
    if [[ $state -eq 1 ]]; then
        echo "core ${core}: disabled"
    else
        echo "core ${core}: enabled"
    fi
done

enregistrez-le dans un fichier appelé turbo-boost.sh

Utilisation: Vous pouvez copier le script ci-dessus et l'enregistrer dans un fichier nommé turbo-boost puis le définir comme exécutable:

sudo chmod +x turbo-boost.sh

vous pouvez ensuite l'utiliser pour désactiver / activer le turbo boost:

./turbo-boost.sh disable
./turbo-boost.sh enable
Maythux
la source
Les commentaires ne sont pas pour une discussion approfondie; cette conversation a été déplacée vers le chat .
Mitch
$ rdmsr -pi 0x1a0 -f 38:38me donne juste une liste d'options à utiliser avec la commande. Par exemple: Usage: rdmsr [options] regno --help -h Print this help --version -V Print current version ....la syntaxe ci-dessus est-elle obsolète / ne s'applique pas de manière générale?
Sir hennihau
30

Si votre système utilise le pilote de mise à l'échelle de fréquence intel_pstate:

$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate

Ensuite, vous pouvez vous renseigner sur le statut activé ou désactivé du turbo:

$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
0

Où 0 signifie que le turbo est activé et 1 signifie qu'il est désactivé. Et vous pouvez le changer en écrivant (comme sudo) au même endroit.

$ echo "1" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
1

Je ne me souviens jamais de l'emplacement ou de la façon de faire correctement le `tee ', donc je préfère que les scripts soient exécutés en tant que sudo:

$ cat set_cpu_turbo_off
#! /bin/bash
echo "1" > /sys/devices/system/cpu/intel_pstate/no_turbo

$ cat set_cpu_turbo_on
#! /bin/bash
echo "0" > /sys/devices/system/cpu/intel_pstate/no_turbo
Doug Smythies
la source
Si vous avez des problèmes avec les autorisations, essayezsudo echo "0" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
Cirelli94
Peut-il être défini de façon permanente pour rester après le redémarrage?
Alexey
@Alexey: Si vous voulez qu'il soit permanent, je vous suggère de le faire dans le BIOS à la place. Sinon, set_cpu_turbo_offexécutez le script ci-dessus au démarrage.
Doug Smythies
1
@ Cirelli94 - quand même:sudo echo "1" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo 1 tee: /sys/devices/system/cpu/intel_pstate/no_turbo: Operation not permitted
1
Pour une raison quelconque, cela n'a aucun effet pour moi dans Ubuntu Server 14. sudo wrmsr --all 0x1a0 0x4000850089fait l'affaire.
sudo
2

Vous pouvez essayer de définir la /sys/devices/system/cpu/cpufreq/boostvaleur sur 0.

echo "0" | sudo tee /sys/devices/system/cpu/cpufreq/boost
Ron
la source
1
il ne dit aucun tel fichier ou répertoire
Ivaylo
@Ron Je recommande d'élargir cette réponse avec une explication sur la façon de le faire.
Eliah Kagan
2
Je suis d'accord avec le commentaire d'Eliah. C'est une bonne réponse si le pilote de mise à l'échelle de fréquence est acpi-cpufreq.
Doug Smythies