在ubuntu中禁用Intel Turbo Boost

我是Ubuntu的新手,想要禁用涡轮增压器。 我尝试了cpufreq但我无法让它工作。 有没有其他方法可以做到这一点。

在Windows中,将CPU速度从100更改为99非常简单。

要读取Turbo Boost的当前状态,我们需要安装msr-tools

 sudo apt-get install msr-tools 

要了解Turbo Boostfunction是否已禁用,请运行:

 rdmsr -pi 0x1a0 -f 38:38 1=disabled 0=enabled 

将i替换为核心编号


注意:如果您收到以下错误:

 rdmsr:open: No such file or directory 

然后通过以下命令加载“msr”模块:

 sudo modprobe msr 

要禁用Turbo Boostfunction,可以将整个0x1a0 MSR寄存器设置为0x4000850089,如下所示:

 wrmsr -pC 0x1a0 0x4000850089 

其中C指的是特定的核心数

你可以通过跑步来获得这些数字

 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

用于禁用/启用turbo boost的脚本

以下脚本可用于关闭/启动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 

将其保存到名为turbo-boost.sh的文件中

用法:您可以复制上面的脚本并将其保存到名为turbo-boost的文件中,然后将其设置为可执行文件:

 sudo chmod +x turbo-boost.sh 

然后你可以用它来禁用/启用turbo boost:

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

如果您的系统使用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 

然后,您可以查询turbo启用或禁用状态:

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

其中0表示启用turbo,1表示禁用turbo。 您可以通过将(作为sudo)写入同一位置来更改它。

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

我从来没有记住位置或如何正确地做’tee’的事情,所以我更喜欢脚本作为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 

您可以尝试将/sys/devices/system/cpu/cpufreq/boost值设置为0。

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