Відключення Intel Turbo Boost в ubuntu


17

Я новачок в Ubuntu і хочу відключити турбо-імпульс. Я спробував, cpufreqале я не можу змусити його працювати. чи є інший спосіб це зробити.

У Windows це було так просто, як змінити швидкість процесора з 100 на 99.


яка ваша модель процесора?
Рон

@Ron: це процесор Intel (R) Pentium (R) B960 @ 2,20 ГГц. Я отримав інформацію з чату, в який вони переїхали. Я думаю, що це неважливо, що важливо, який драйвер масштабування використовується. В даний час (який відрізняється від минулого) він буде за замовчуванням Intel_pstate, якщо процесор підтримує його.
Doug Smythies

хлопці, я спробував: sudo cpupower встановити частоту -g powersave, і він говорить: Налаштування процесора: 0 Налаштування процесора: 1 Так куди поставити, яке ядро ​​змінити? :)
Івайло

Незалежно від того, який драйвер масштабування ви використовуєте, турбо включений чи ні - це глобальна настройка, одне місце охоплює всі процесори. Сам я використовую лише примітивні команди, ніколи інструменти вищого рівня, такі як cpupower.
Doug Smythies

Відповіді:


18

Щоб прочитати поточний стан Turbo Boost, нам потрібно встановити msr-інструменти

sudo apt-get install msr-tools

Щоб знати, чи відключена функція Turbo Boost, запустіть:

rdmsr -pi 0x1a0 -f 38:38

1=disabled
0=enabled

Замініть я своїм номером ядер


ПРИМІТКА: Якщо ви отримаєте таку помилку:

rdmsr:open: No such file or directory

потім завантажте модуль "msr" за допомогою наступної команди:

sudo modprobe msr

Щоб відключити функцію Turbo Boost, можна встановити весь регістр MSR 0x1a0 на 0x4000850089, як тут:

wrmsr -pC 0x1a0 0x4000850089

Де С посилається на певне число ядра

Ви можете отримати це число, запустивши

cat /proc/cpuinfo | grep processor

то, як тільки ви дізнаєтесь ваші числа, вам потрібно виконати команду вище для кожного ядра. у вашому випадку цифри будуть 0 і 1, так що вам потрібно зробити

wrmsr -p0 0x1a0 0x4000850089

wrmsr -p1 0x1a0 0x4000850089

Рішення означає цей блог


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

Сценарій для відключення / включення турбо-імпульсу

Наступний сценарій можна використовувати для вимкнення / ввімкнення турбопідсилення:

#!/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

збережіть це у файлі під назвою turbo-boost.sh

Використання: Ви можете скопіювати вищезазначений сценарій і зберегти його у файл під назвою turbo-boost, а потім встановити його для виконання:

sudo chmod +x turbo-boost.sh

Ви можете використовувати його для відключення / включення турбо-імпульсу:

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

Коментарі не для розширеного обговорення; ця розмова була переміщена до чату .
Мітч

$ rdmsr -pi 0x1a0 -f 38:38дає мені лише список варіантів, які слід використовувати з командою. наприклад: Usage: rdmsr [options] regno --help -h Print this help --version -V Print current version ....Чи наведений вище синтаксис застарілий / не застосовується взагалі?
Сер Хенніхау

30

Якщо ваша система використовує драйвер масштабування частоти 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

Тоді ви можете запитати про статус турбо включеного чи вимкненого:

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

Де 0 означає, що турбо включено, а 1 означає, що він відключений. І ви можете змінити його, написавши (як судо) на те саме місце.

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

Я ніколи не пам'ятаю місце розташування або як правильно робити "трійку", тому я вважаю за краще сценарії виконувати як 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

Якщо у вас є проблеми з дозволами, спробуйтеsudo echo "0" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
Cirelli94

Чи можна це встановити постійно, щоб залишитися після перезавантаження?
Олексій

@ Алекс: Якщо ви хочете, щоб він був постійним, я б запропонував зробити це в BIOS. Інакше змусьте вищезазначений set_cpu_turbo_offсценарій запуститись під час запуску.
Doug Smythies

1
@ Cirelli94 - навіть так: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
Чомусь це не має жодного ефекту для мене в Ubuntu Server 14. sudo wrmsr --all 0x1a0 0x4000850089робить свою справу.
судо

2

Ви можете спробувати встановити /sys/devices/system/cpu/cpufreq/boostзначення 0.

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

1
там сказано, що немає такого файлу чи каталогу
Івайло,

@Ron Я рекомендую розширити цю відповідь поясненням, як це зробити.
Елія Каган

2
Я згоден з коментарем Іллі. Це правильна відповідь, якщо драйвером масштабування частоти є acpi-cpufreq.
Doug Smythies
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.