有时,当我让笔记本电脑进入睡眠状态后,它的 CPU 会被锁定在最慢的频率 - 大约 600-700MHz。
我的笔记本电脑是戴尔 E6420,配备 i5-2520m。
内核版本:4.6.0-040600-generic。
我第一次遇到这个错误是在 14.04 版本中。现在我们有了 16.04,它仍然存在。
我正在使用笔记本电脑,一切都很好,快速而流畅。我合上盖子,让笔记本电脑进入睡眠状态,断开电源,它正在靠电池休眠。我过一段时间回来,打开盖子。一切都慢得要命;
我使用
watch -n 1 'cat /proc/cpuinfo | grep MHz'
我发现所有核心都以~600Mgz 频率工作。
我检查扩展管理器
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
我看到了‘省电’。
为了“修复”这个问题,我必须做这样的事情
echo 'performance' > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 'performance' > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
echo 'performance' > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
echo 'performance' > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
此后一切都像以前一样快。
CPU 扩展驱动程序通过 tel_pstate 检查
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver
我一直运行这个脚本,这让我很累。我好像不能再依赖 Ubuntu 或我的笔记本电脑了(我不知道是谁的错)。
为什么睡眠后 CPU 会变慢。为什么会发生这种情况?如何解决此错误?
答案1
您的笔记本电脑所遇到的问题是某些戴尔笔记本电脑所存在的一个已知问题。当您从使用电池供电的挂起状态恢复时,戴尔 BIOS 将设置使用时钟调制来稍微限制性能以节省电池电量。问题是 intel_pstate CPU 频率调节驱动程序在其当前形式下与时钟调制不兼容,它不是稍微限制性能,而是将 CPU 频率硬性降低到正常下限以下。
建议的解决方案是禁用 intel_pstate 驱动程序,改用 acpi-cpufreq CPU 频率调节驱动程序。acpi-cpufreq 驱动程序对时钟调制做出“正确”响应。
如果您使用的是 grub,请编辑/etc/default/grub
并更改该GRUB_CMDLINE_LINUX_DEFAULT
行。例如,我在该行上添加了其他内容:
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 intel_pstate=disable"
确保sudo update-grub
之后运行。在编辑之前保存原始文件的副本也是一种很好的做法。以 sudo 身份编辑。
答案2
在 ubuntu 20.04 中,这个错误仍然存在!我可以通过移除外部电源并再次插入电源来恢复正常运行,直到 cpufreq-info 显示的 CPU 频率与最低频率不同。