我遇到了一个问题联想 t460s使用 Ubuntu 16.04.2。如果笔记本电脑从未对接,则挂起工作正常。一旦断开对接,尝试从挂起状态恢复时它会冻结。
我怎样才能解决这个问题?
答案1
我也遇到过这个问题,并做了一些调查。问题是由 i915 驱动程序引起的。如果在使用扩展坞时启用了外部显示器,就会发生这种情况。i915 驱动程序已反向移植到 Ubuntu 16.04 中的 4.4.0 内核,这可能没有帮助。实际崩溃是:[440183.307053] kernel BUG at /build/linux-0uniEn/linux-4.4.0/ubuntu/i915/intel_ddi.c:730!
如果你看一下代码,就会发现问题是驱动程序对一个输出消失感到惊讶/困惑,并通过使整个内核崩溃来处理这个问题,而不是仅仅报告故障。这是相当粗制滥造的代码。
我尝试了 ubuntu 内核升级 PPA 中的内核 4.12.3,效果更好,但有时仍然会崩溃。它经常在非睡眠状态下挂起几分钟,然后屏幕才最终出现,这比崩溃和丢失东西要好,但很累。
解决此问题的一个完全可靠的方法是在脱离对接之前明确关闭外部显示器。此脚本“undock”可实现此目的:
#!/bin/sh
xrandr | awk '$2 == "connected" && !/^eDP/ {system("xrandr --output " $1 " --off")}'
(相应的 s/--off/--auto/ 将把它重新打开。)
答案2
一些人声称较新的内核/xorg 可能可以解决这个问题。点击此处了解更多。要安装此运行:
sudo apt install --install-recommends xserver-xorg-hwe-16.04
我正在使用 i3,它损坏了几个东西。i3bar+i3status 停止工作(不显示),xbacklight 停止工作(运行但不改变亮度)。为了恢复它们,我不得不按照建议摆弄 xorg 设备这里。
仅供参考:我还没有进行足够的测试来验证 hwe 包是否解决了挂起后冻结的问题。将在此处更新。
更新:我的笔记本电脑已经开机超过 30 天了,对接、断开对接以及断开对接后休眠(还没有尝试过在对接上)。所以这似乎解决了问题,直到。
内核版本现在是:
Linux mylaptop 4.8.0-46-generic #49~16.04.1-Ubuntu SMP Fri Mar 31 14:51:03 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux