许多人在使用 Ubuntu 14.04、16.04 和 16.10 时遇到系统完全冻结的问题,我就是其中之一。
在我尝试下载并测试之前,我想知道 Ubuntu 17.04 是否会解决该问题,是否已经在 17.04 的试用 ISO 映像中修复了该问题。
Zan*_*nna 16
当处理器尝试进入内核不支持的低功耗状态(c 状态)时,就会发生这些冻结。这个问题是由
commit 8fb55197e64d5988ec57b54e973daeea72c3f2ff
Date: Tue Apr 7 16:20:28 2015 +0100
drm/i915: Aggressive downclocking on Baytrail
Run Code Online (Sandbox Code Playgroud)
这在内核 4.2 中上游,从那时起我们就遇到了问题。正如在heynnema 的回答(以及我试图整理信息的这篇文章)中所解释的,有一个简单而有效的解决方法,传递一个禁用低功耗状态的引导参数。
当前可用的 17.04 测试版使用 4.9(据我了解,它基于上游 4.9.6),到 4 月份发布时,我相信它将使用 4.10。问题仍然存在于这些内核中,因此我得出的结论是,到目前为止还没有解决。我检查了 Ubuntu 内核更新日志,没有发现任何东西,但如果我错了,请纠正我。
很长一段时间以来,我一直在 kernel.org 上跟踪c-state 错误。2017 年 1 月,Mika Kuoppala将此补丁添加到线程中。显然,它恢复了导致问题的较早提交。该补丁称为
drm/i915/byt: Avoid tweaking evaluation thresholds
Run Code Online (Sandbox Code Playgroud)
测试表明此补丁的效果非常好,该补丁于 1 月 25 日提交给 i915 驱动程序所有者。 一切顺利,它可以在 4.11 窗口中合并。4.11 内核可能会在 4 月底左右发布。 此补丁的一个版本已在 4.11 窗口中合并,报告表明该错误已在 4.11 中修复。
每个麻烦的 BayTrail 处理器对每个不同的内核都有一点不同。在 16.04(4.4 内核)中,我在没有 intel_idle 参数的 Atom Z3735F 上的正常运行时间大约是在冻结前 15 分钟。我在实时模式下测试了 beta 17.04 ISO,我没有在 90 分钟内卡住,所以看起来我对这个内核很幸运。您可以做同样的事情来测试系统上的任何映像 - 只需制作一个可启动的 USB 并“尝试 Ubuntu 而不安装”并尽可能长时间地测试它。
17.04出来的时候我安装了,前两周不带intel_idle参数跑了,只有3个c-state死机,比之前的版本有很大的提升。
最安全的做法是使用引导参数。根据我的研究,我预计该错误将在 17.10(以及今年晚些时候的其他发行版)中修复,该版本将使用大于等于 4.11 的内核,但不会在 17.04 中修复。
但是,Ubuntu 内核团队总是有可能自己修补它。如果您可以容忍偶尔运行不稳定的系统,您可以通过运行定期更新 ( sudo apt update && sudo apt full-upgrade) 并在每个新内核到达时在没有引导参数的情况下测试它来观察进度。您还可以在安装新软件包或(同样,如果您可以容忍不稳定)安装主线内核时阅读更改日志。
How to set intel_idle.max_cstate=1 中对此有一个修复。
在 中terminal,键入:
gksudo gedit /etc/default/grub
Run Code Online (Sandbox Code Playgroud)
并更改此行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
Run Code Online (Sandbox Code Playgroud)
包括这个:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_idle.max_cstate=1"
Run Code Online (Sandbox Code Playgroud)
然后做:
sudo update-grub
reboot
Run Code Online (Sandbox Code Playgroud)
这是 Intel 的问题,而不是 Ubuntu 的问题,但谢天谢地,我们已经解决了。
没有人知道 Ubuntu 17.04 是否需要此修复程序。
| 归档时间: |
|
| 查看次数: |
7400 次 |
| 最近记录: |