Disabilitazione di Intel Turbo Boost in Ubuntu


17

Sono nuovo di Ubuntu e voglio disabilitare il turbo boost. Ho provato con cpufreqma non riesco a farlo funzionare. c'è un altro modo per farlo.

In Windows è stato facile cambiare la velocità della CPU da 100 a 99.


qual è il tuo modello di cpu?
Ron,

@Ron: è Intel (R) Pentium (R) CPU B960 @ 2.20GHz Ho ricevuto le informazioni dalla chat in cui si sono trasferiti. Penso che non importa, ciò che conta è quale driver di ridimensionamento viene utilizzato. Attualmente (che è diverso dal passato) verrà impostato automaticamente su intel_pstate se il processore lo supporta.
Doug Smythies,

ragazzi, ho provato: sudo cpupower frequenza-set -g powersave e dice: Impostazione cpu: 0 Impostazione cpu: 1 Quindi dove mettere quale core cambiare? :)
Ivaylo,

Indipendentemente dal driver di ridimensionamento in uso, abilitato o meno al turbo è un'impostazione globale, uno spot copre tutte le CPU. Io stesso uso solo comandi primitivi, mai strumenti di livello superiore come cpupower.
Doug Smythies,

Risposte:


18

Per leggere lo stato attuale di Turbo Boost, è necessario installare msr-tools

sudo apt-get install msr-tools

Per sapere se la funzione Turbo Boost è disabilitata, eseguire:

rdmsr -pi 0x1a0 -f 38:38

1=disabled
0=enabled

Sostituisci i con il tuo numero di core


NOTA: se viene visualizzato il seguente errore:

rdmsr:open: No such file or directory

quindi caricare il modulo "msr" con il seguente comando:

sudo modprobe msr

Per disabilitare la funzione Turbo Boost, è possibile impostare l'intero registro MSR 0x1a0 su 0x4000850089, come qui:

wrmsr -pC 0x1a0 0x4000850089

Dove C si riferisce a un determinato numero di core

puoi ottenere quel numero correndo

cat /proc/cpuinfo | grep processor

quindi una volta che conosci i tuoi numeri devi eseguire il comando sopra per ogni core. nel tuo caso i numeri sarebbero 0 e 1, quindi devi farlo

wrmsr -p0 0x1a0 0x4000850089

wrmsr -p1 0x1a0 0x4000850089

La soluzione sta per questo blog


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

Uno script per disabilitare / abilitare il turbo boost

Il seguente script può essere utilizzato per disattivare / attivare il 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

salvalo in un file chiamato turbo-boost.sh

Utilizzo: è possibile copiare lo script sopra e salvarlo in un file chiamato turbo-boost, quindi impostarlo come eseguibile:

sudo chmod +x turbo-boost.sh

puoi quindi usarlo per disabilitare / abilitare turbo boost:

./turbo-boost.sh disable
./turbo-boost.sh enable

I commenti non sono per una discussione estesa; questa conversazione è stata spostata in chat .
Mitch

$ rdmsr -pi 0x1a0 -f 38:38mi dà solo un elenco di opzioni da utilizzare con il comando. es: Usage: rdmsr [options] regno --help -h Print this help --version -V Print current version ....la sintassi sopra è obsoleta / non applicabile in modo generale?
Sir hennihau,

30

Se il sistema utilizza il driver di ridimensionamento di frequenza 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

Quindi è possibile verificare lo stato di turbo abilitato o disabilitato:

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

Dove 0 significa che turbo è abilitato e 1 significa che è disabilitato. E puoi cambiarlo scrivendo (come sudo) nella stessa posizione.

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

Non ricordo mai la posizione o come fare correttamente la cosa "tee", quindi preferisco che gli script vengano eseguiti come 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

Se hai problemi con le autorizzazioni, provasudo echo "0" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
Cirelli94,

Questo può essere impostato in modo permanente, per rimanere dopo il riavvio?
Alexey,

@Alexey: se vuoi che sia permanente, suggerirei invece di farlo nel BIOS. In caso contrario, eseguire lo set_cpu_turbo_offscript sopra per l'esecuzione durante l'avvio.
Doug Smythies,

1
@ Cirelli94 - anche così: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
Per qualche motivo, questo non ha alcun effetto per me in Ubuntu Server 14. sudo wrmsr --all 0x1a0 0x4000850089fa il trucco.
sudo,

2

Puoi provare a impostare il /sys/devices/system/cpu/cpufreq/boostvalore su 0.

echo "0" | sudo tee /sys/devices/system/cpu/cpufreq/boost

1
non dice tale file o directory
Ivaylo

@ Ron Raccomando di espandere questa risposta con una spiegazione su come farlo.
Eliah Kagan,

2
Sono d'accordo con il commento di Eliah. È una risposta corretta se il driver di ridimensionamento della frequenza è acpi-cpufreq.
Doug Smythies,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.