HP Envy x360 无法暂停

Sil*_*olo 6 suspend power-management hp 18.04

据我所知,这里已经有成百上千个“无法暂停”的问题,但我一直在挖掘它们,但提出的解决方案都不起作用,所以我在这里。

我有一台 HP Envy x360,它已经运行 Ubuntu 18.04 一年了。上周,它开始出现设备无法再正确挂起的问题。具体来说,当我暂停设备,然后尝试再次唤醒它时,它显示的只是黑屏(没有光标或任何东西),除了关闭电源并重新启动设备之外,我所做的任何事情都不会影响显示。通过以下任何一种方法暂停都有相同的结果

  • 使用主菜单中的“暂停”选项
  • 合上笔记本电脑盖
  • 只需等待半小时设备就会自行挂起

设备实际上没有正确挂起;这不仅仅是一个视频问题,因为CTRL++ALTF1没有任何效果,并且在唤醒失败后我也无法 ssh 进入设备。即使设备据称已暂停,设备的电源 LED 仍保持亮起。

/sys/power/mem_sleep内容:

[s2idle]
Run Code Online (Sandbox Code Playgroud)

相关条目来自/var/log/kern.log

Mar 27 15:51:33 silvenvius kernel: [ 1580.034024] wlo1: deauthenticating from 08:02:8e:d1:5f:90 by local choice (Reason: 3=DEAUTH_LEAVING)
Mar 27 15:51:33 silvenvius kernel: [ 1580.178236] PM: suspend entry (s2idle)
Run Code Online (Sandbox Code Playgroud)

(是的,就是这样。接下来的条目来自我强制终止后的重新启动)

我还应该注意到,在解决这个问题的过程中,我格式化了磁盘并从 USB 重新安装了 Ubuntu,但没有效果。所以我目前正在运行一个新的 Ubuntu,它在以前没有问题的设备上出现了这个问题。

我尝试过的方法不起作用:

但是,如果我从 Ubuntu 18.04.4 LiveUSB 启动,则暂停工作。??

我在这里的选项有点用完了,而且我的“从头开始重新安装”的核选项已经失败了,因此任何有关如何调试和理想地修复此问题的进一步建议将不胜感激。

Jul*_*ers 4

我也遇到了同样的问题,虽然我还没有解决,但我已经缩小了问题的范围。我希望这个解释以及其中提供的技术关键词能够帮助更多的人了解到底发生了什么。

TL;DR:在某些“现代”硬件上,BIOS 不再报告经典的“S3/挂起至 RAM”电源状态,而是支持 Microsoft 特有的新功能“现代挂起”(也称为“S0ix”)或“s2idle”)。
另外:AMDGPU 显卡驱动程序中存在恢复问题


对于第一个问题(缺少 S3 支持),唯一正确的解决方法是笔记本电脑制造商发布更新的 BIOS,允许用户在“现代 Windows 10”和“经典 S3”之间切换挂起模式。(微软指定的现代挂起方式与经典深度睡眠是互斥的,BIOS 不能同时宣传两者)

此问题的物理症状是,进入挂起状态后,您的电源 LED 永远不会开始闪烁,它只是保持亮起状态。

通过在引导期间提供更新的 BIOS 表,可以采取一些解决方法。然而,这是一个不平凡的过程,如果操作不当,可能会永久损坏硬件。(我目前正在争论是退回笔记本电脑还是尝试这个)


第二个问题是,在某些/许多情况下,AMDGPU 在恢复时挂起。如果您的笔记本电脑成功进入暂停状态(电源 LED 闪烁),但唤醒计算机后屏幕没有重新打开,则您遇到了此问题。在这种情况下,您应该仍然能够通过 SSH 连接到计算机。如果您可以通过 SSH 连接到计算机,dmesg日志中将充斥着数十个类似于以下内容的错误:

[  746.326429] [drm:amdgpu_job_run [amdgpu]] *ERROR* Error scheduling IBs (-22)
[  746.326444] amdgpu 0000:04:00.0: couldn't schedule ib on ring <sdma0> 
Run Code Online (Sandbox Code Playgroud)

您可以使用以下命令来确定缺少 S3 支持是否是问题所在,这些命令查询内核在引导期间识别出的挂起模式:

dmesg | grep -i acpi | grep supports
[    0.417055] ACPI: (supports S0)
Run Code Online (Sandbox Code Playgroud)

如您所见,在我的 Envy x360 上,缺少“S3”/suspend-to-ram。(S4/挂起到磁盘也是如此)

cat /sys/power/mem_sleep
[s2idle]
Run Code Online (Sandbox Code Playgroud)

我们所希望的是“ deep”条目也存在。指示[]默认状态。

更多信息请参见此处,包括涉及在启动时强制覆盖 ACPI 表的解决方法。