解决 ubuntu 中的 CPU 锁定问题

解决 ubuntu 中的 CPU 锁定问题

因此,由于某种原因,当启用 bdprochot 时,我的笔记本电脑会遭遇严重的限制问题,根据 cpufreq-info 显示,我的 CPU 从 2.8 上限降至 400 MHz,而根据 Windows 任务管理器显示,我的 CPU 从 2.6 上限降至 380 mhz。

它存在于 3 个不同的驱动器、7 次重新安装的 Windows 10 和 7 次重新安装的 3 个不同的 Linux 发行版中。我已在 steam OS、Ubuntu gamepack 和 Lubunt 上尝试过。在 Windows 中,我使用了节流阀停止,但在 Linux 上却不行。我使用外部风扇通过节流阀停止将 bdprochot 关闭,将温度降低到 40 度以下,即使没有它,我的温度上限通常为 67,平均为 50,因此我并不担心传闻中的 bdprochot 发热问题。

我尝试使用 msr tools 修复,但没有效果,我收到一条消息说

wrmsr: pwrite: Operation not permitted

这是一台笔记本电脑,因此没有 BIOS 电源设置。

我遵循了指南这里(引述如下)

我遇到了同样的问题,并找到了一个适合我的解决方案。您必须下载 cpufrequtils。

在终端中运行每个命令:注意:'-c' 参数表示核心数。如果您的 CPU 有四个核心,则运行给定的命令 0 到 3;如果您的 CPU 有八个核心,则运行给定的命令 0 到 7。

sudo cpufreq-set -c 0 -g performance
sudo cpufreq-set -c 1 -g performance
sudo cpufreq-set -c 2 -g performance
sudo cpufreq-set -c 3 -g performance
sudo cpufreq-set -c XX -g performance
sudo modprobe msr
sudo rdmsr 0x1FC

这里的 XX 是你的核心编号。完成此步骤后,你将得到一个输出,你需要记下它,然后在下一个命令中使用。

sudo wrmsr 0x1FC XXXXX 

这里,XXXXX 是上一个命令执行的输出。最后,要检查它是否有效,请运行:

cpufreq-info

我排除了该行,因为它会导致错误输出

 sudo cpufreq-set -c XX -g performance

这在基于 debrian 8: jessie 的 steam 操作系统上有效,但似乎在 lubuntu 上不起作用,它似乎只能编辑设置以进行性能

每次重新启动时,rdmsr 的输出都会发生变化。

每次启动时为了让我的电脑可用而处理所有这些命令也有点麻烦。

当我交换到 lubuntu 时,我将安全启动更改为开启,以便将启动文件添加到加载顺序,这可能是阻止 wrmsr 工作的原因。

即使这样,也无法改变该问题仍然存在的固有问题,以及每次启动时我都必须花时间在命令行上的事实,这是一个巨大的麻烦。

眼镜

  • 型号 Acer Spin SP-513-51-51PB-N16W1

  • CPU Intel i5-6200U @2.3Ghz 双核 4 个逻辑核心

  • 内存:16G DDR4

  • 硬盘:NVMe m.2 ssd 1tb

  • 显卡:英特尔 HD 520

  • 操作系统:Windows 10 家庭版 Ver 1809 KB4497934 和 Lubuntu 18.04.2 双启动

    • Ram 和 SSD 升级

答案1

解决 Ubuntu 中的 CPU 锁定问题

我遇到了同样的问题,CPU 卡在 0.79 GHz,您需要做的就是......

1)在 Ubuntu 20.04 上禁用 bd prochot

sudo apt-get install msrtool 

sudo modprobe msr 

sudo wrmsr 0x1FC 2

2)实时检查你的实际CPU频率:

sudo apt install i7z 

sudo i7z

3)使用压力模拟 CPU 满负荷使用

sudo apt install stress

stress -c 8

答案2

当我在将近 2 年的休眠状态后重新安装 Linux Mint 时,我的 Dell 7558 笔记本电脑也遇到了同样的问题。插入电源时,CPU 频率保持在 500 MHz,但在电池供电下最高可达 2.7 GHz。(事实上,有时插入电源块实际上可以正常工作,而不会过度节流。但这是 1/20 或用一些压缩空气罐吹破连接器。也许问题出在有故障的连接器或电池上......)

无论如何,我在这里找到了一个简洁的脚本:

https://github.com/yyearth/turnoff-BD-PROCHOT/blob/master/bdprochot_off.sh

#!/bin/bash
# 4005d --> 4005e

# Slightly modified for root

/sbin/modprobe msr
r=`/usr/sbin/rdmsr 0x1FC`
s='0x'$r'' 
f=$(($s&0xFFFFE))
sudo /usr/sbin/wrmsr 0x1FC "obase=16;$f"|/usr/bin/bc
echo "$r"" write to ""reg 0x1FC" 
echo "BD PROCHOT off."

问题是,该脚本需要导入第三方内核模块:msr。我相信您在运行此类代码之前已经通过运行安装了它

    sudo apt -y install msr-tools

因此,您可以在任何启动后使用“sudo”运行脚本。但话又说回来,这有点笨拙,因为我们希望在启动时立即关闭此 bd-prochot。问题是,在启动时运行此脚本,例如使用带有“@reboot bd-prochot-off-script.sh”的 crontab 效果不佳,因为出于某种原因,使用带有第三方工具的“modprobe”有点被阻止。(但我不确定为什么)因此,不得不操纵一些模块加载内容

    /etc/modules-load.d/ 

以 root 身份创建一个新的 conf 文件

    sudo touch /etc/modules-load.d/msr.conf

并将‘msr’放入‘msr.conf’文件。

然后将上面的脚本添加到crontab中

    sudo crontab -u root -e

作为..

    @reboot /path/to/the/bd-prochot-off.sh

现在,CPU 节流问题不再发生。但话又说回来,我相信这只是一种解决方法。也许更换电池在“除掉邪恶根源”类型的解决方案方面效果更好。但话又说回来,截至目前(2020 年底),这台笔记本电脑还不是很出色,我不想在它报废之前花很多钱买它。

答案3

我假设您使用了 sudo,如脚本中所述,因此权限被拒绝不是由于缺少用户空间权限。

https://github.com/tiziw/iuvolt/issues/11

在 credits 中链接的 notebookreview 线程中,有人指出,如果启用了安全启动,wrmsr 将不起作用,因为写入被用户空间阻止。

为了使其继续工作,您必须重新编译 msr 模块或重新编译整个内核(如果模块内置于内核)。您必须禁用安全启动或使用此处提到的补丁重新编译 msr。

带有“XX”的行不起作用,因为它只是作为示例存在。

答案4

解决 ubuntu 中的 CPU 锁定问题

sudo cpufreq-set -c 0 -g performance sudo cpufreq-set -c 1 -g performance sudo cpufreq-set -c 2 -g performance sudo cpufreq-set -c 3 -g performance sudo modprobe msr sudo wrmsr 0x1FC 17422

解决 Windows 中的 CPU 锁定问题

Just download throttlestop and Disable BD PROCHOT and Turbo

眼镜:
型号 # ASUS Vivobook s551ln
CPU Intel i7-4710U @2.6Ghz
内存:6 gig DDR3
硬盘:SSHD 1tb
GPU:Intel hd 440 + NVIDIA GeForce 840M
操作系统:Windows 10 home Ver 1809 KB4497934 和 Lubuntu 19.10 双启动

相关内容