Intel i5 CPU 8세대 제한

Intel i5 CPU 8세대 제한

CPU를 제한하고 싶습니다. 최대 3.9GHz까지 실행되는 i5-8265U가 있지만 이 속도는 거의 필요하지 않습니다.

이제 어떤 문제로 인해 부하가 높아지면 CPU 성능이 향상되고 팬에서 소음이 발생합니다.

이미 다음으로 설정됨powersave

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
powersave

시도할 때 userspace사용할 수 없음

sudo cpufreq-set -f 2.0

이러한 CPU를 최대 2GHz로 제한하는 방법은 무엇입니까?

답변1

BIOS에 이러한 설정이 없으면 Linux용 솔루션이 여기에서 잘 작동합니다.http://notepad2.blogspot.com/2014/11/a-script-to-turn-off-intel-cpu-turbo.html

터보 부스트를 전환하기 위해 GitHub에서 이 스크립트의 향상된 버전을 만들었습니다.
https://github.com/rubo77/intel-turbo-boost


구 버전:

스크립트 를 작성하세요 /usr/local/sbin/turbo-boost.sh.

#!/bin/bash

is_root () {
    return $(id -u)
}

has_sudo() {
    local prompt

    prompt=$(sudo -nv 2>&1)
    if [ $? -eq 0 ]; then
        # has_sudo__pass_set
        return 0
    elif echo $prompt | grep -q '^sudo:'; then
        # has_sudo__needs_pass"
        return 0
    else
        echo "no_sudo"
        return 1
    fi
}

if ! is_root && ! has_sudo; then
    echo "Error: need to call this script with sudo or as root!"         
    exit 1
fi

modprobe msr
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" != "toggle" && "$1" != "enable" && "$1" != "disable" ]]; then
    echo "Invalid argument: $A" >&2
    echo ""
    echo "Usage: $(basename $0) [disable|enable|toggle]"
    exit 1
fi

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

그것을 제공

chmod +x /usr/local/sbin/turbo-boost.sh

이제 전화하면 돼

sudo turbo-boost.sh disable
sudo turbo-boost.sh enable
sudo turbo-boost.sh toggle

시동 시 터보 부스트를 자동으로 비활성화합니다.

부팅 후 1분 후에 자동으로 시작하려면 비밀번호 없이 실행을 허용하면 됩니다 /etc/sudoers.

# Allow command for my user without password         
my_username_here ALL = NOPASSWD: /usr/local/sbin/turbo-boost.sh

그런 다음 60초 지연으로 systemd 시작 스크립트를 만듭니다.

스크립트 생성 /etc/systemd/system/turbo-boost-disable.service:

[Unit]
Description=disables turbo-boost

[Service]
TimeoutStartSec=infinity
ExecStartPre=/bin/sleep 60
ExecStart=/usr/local/sbin/turbo-boost.sh disable

[Install]
WantedBy=default.target

시스템 업데이트:

sudo systemctl daemon-reload
sudo systemctl enable turbo-boost-disable

데스크탑에 토글 버튼 추가

터보를 수동으로 더 자주 제어하고 싶다면 데스크탑에 버튼을 추가할 수 있습니다.

  1. sudo gedit /usr/share/applications/toggle-turbo-boost.desktop
[Desktop Entry]
Version=1.0
Type=Application
Terminal=true
Name=toggle turbo-boost
Icon=/usr/share/icons/Humanity/apps/64/gkdebconf-icon.svg
Exec=sudo /usr/local/sbin/turbo-boost.sh toggle
X-MultipleArgs=false
Categories=GNOME;GTK;
StartupNotify=true
GenericName=Toggle Turbo-Boost
Path=/tmp/
  1. SUPER를 누르고 "Toggle Turbo Boost"를 검색하면 아이콘이 표시됩니다.
  2. Enter 키를 눌러 실행하거나 즐겨찾기에 추가를 마우스 오른쪽 버튼으로 클릭하면 빠른 실행 표시줄에 버튼이 추가됩니다.

관련 정보