在我的笔记本电脑上安装 Kubuntu 20.04 后,我遇到了一个问题,一段时间后,CPU 随机卡在 400MHz 并且无法加速,导致响应时间非常慢。上网,甚至写文档都变得很麻烦。
我检查了很多页面(有些报告说这可能是内核错误)并尝试了不同的方法,例如:
现在总共重新安装了电脑 6-8 次(几天后又会发生这种情况)
禁用 thermald 服务:
systemctl disable thermald.service
禁用 intel_pstate
/etc/default/grub
:GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=disable"
将 CPU 调节器设置为性能:
GOVERNOR="performance"
将所有 CPU 设置为最大值:
cpupower frequency-set -d `cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq`
或者
cpupower frequency-set -d 2.5GHz
我安装了“Intel P-State 和 CPUFreq Manager”KDE Widget 来监控和调整所有内容,使其达到高性能,没有任何影响
硬件和软件信息:
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver
intel_pstate
intel_pstate
intel_pstate
intel_pstate
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
performance
performance
performance
performance
$ cpupower frequency-info
analyzing CPU 0:
driver: intel_pstate
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: Cannot determine or is not supported.
hardware limits: 400 MHz - 3.10 GHz
available cpufreq governors: performance powersave
current policy: frequency should be within 3.10 GHz and 3.10 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency: Unable to call hardware
current CPU frequency: 400 MHz (asserted by call to kernel)
boost state support:
Supported: yes
Active: yes
$ grep "model name" /proc/cpuinfo
model name : Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
model name : Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
model name : Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
model name : Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
$ uname -a
Linux kubu 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
请帮忙。我试过了,但真的很令人沮丧,我不知道还能尝试什么 :(
答案1
我在 Dell Latitude 7490 上遇到了完全相同的问题;频率随机卡在/固定在 400Mhz,有时是在从使用电池的挂起状态恢复后,或者在拔下交流适配器时。热重启也不会消失此问题。我必须完全关闭机器并重新打开,或重新插入交流适配器。当问题发生时,我对 Windows 进行了热重启(因为我正在双启动 Kubuntu 20.04 和 Windows 10),发现 Windows 10 也卡在 400mhz 频率。
最后发现这是硬件或固件相关的问题。截至目前的最新 BIOS(BIOS 日期为 2021 年 2 月)
按照戴尔另一篇文章中的建议进行了 RTC 重置(实时时钟重置),但拔下交流适配器时问题偶尔会出现。在 BIOS 中禁用 C 状态和英特尔 Speed Shift(仅启用 SpeedStep),问题仍然偶尔发生,所以我重新启用了它们。
最后,我找到了一种基于软件的解决方法,不需要重新插入交流适配器或冷启动。
在您的路径中创建名为 cpufix 的脚本:
$ sudo nano /usr/local/bin/cpufix
内容如下:
#!/bin/bash
# Determinate CPU capabilities
MAX_CPU=$(cpupower frequency-info -l | tail -n1 | cut -d' ' -f2)
# Disable "BD PROCHOT"
wrmsr -a 0x1FC 262238;
# Set and apply frequencies
cpupower frequency-set \
-d $(expr $MAX_CPU / 4) \
-u $MAX_CPU \
-r \
-g powersave;
然后将其设置为可执行文件:
$ sudo chmod +x /usr/local/bin/cpufix
您还可以更改“节能“ 在上面最后一行中表现“如果您希望在使用电池供电时获得更高的性能,而不是正常的省电配置。
当问题发生并且您的频率固定在 400Mhz 时,只需运行:
$ sudo cpufix
在 Windows 中(如果您也是双启动),您可以执行类似操作“油门停止“程序,并取消选中“BD PROCHOT”复选框(如果已选中)(当您的 CPU 由于制造商固件问题而固定在 400Mhz 时可能会发生这种情况)
答案2
我认为这可能与以下未解决的问题有关thermald
:https://github.com/intel/thermal_daemon/issues/293
我看到了这个问题Dell Latitude 7320
,这几个命令暂时修复了它(直到下次重启):
sudo rmmod intel_rapl_msr
sudo modprobe intel_rapl_msr
如果您想让它们在每次启动时运行,您可以将它们添加到您的初始化脚本中。