桌面随机从挂起状态唤醒 (14.04)

twe*_*wex 9 suspend 14.04

我的桌面正在自行从挂起状态中唤醒。有时只需要一两分钟,有时则需要几个小时。

我不知道从哪里开始解决这个问题。任何帮助将不胜感激。

twe*_*wex 12

Jos 和 Rinzwind 给出的建议给了我一个开始,但没有解决问题。我没有连接以太网电缆,也没有 WOL(这实际上并不作为 BIOS 中的一个选项存在)或启用键盘唤醒。

我尝试拔掉鼠标,一个带有 USB 接收器的罗技无线鼠标,然后将计算机挂起过夜 - 没有唤醒!

为什么我之前没有想到这一点?暂停电脑时,我总是关闭鼠标。我不认为这会引起更多问题。

那么,如何防止鼠标/接收器引起唤醒呢?首先,运行命令cat /proc/acpi/wakeup。这将列出可能导致唤醒的设备。

$ cat /proc/acpi/wakeup 
Device  S-state     Status      Sysfs node
P0P1    S4          *disabled   pci:0000:00:1e.0
USB1    S3          *disabled
USB2    S3          *disabled
USB3    S3          *disabled
USB4    S3          *disabled
USB5    S3          *disabled
USB6    S3          *disabled
USB7    S3          *disabled
RP01    S4          *disabled   pci:0000:00:1c.0
PXSX    S4          *disabled   pci:0000:01:00.0
RP02    S4          *disabled
PXSX    S4          *disabled
RP03    S4          *disabled
PXSX    S4          *disabled
RP04    S4          *disabled
PXSX    S4          *disabled
RP05    S4          *disabled   pci:0000:00:1c.4
PXSX    S4          *enabled    pci:0000:02:00.0
RP06    S4          *disabled
PXSX    S4          *disabled
RP07    S4          *disabled
PXSX    S4          *disabled
RP08    S4          *disabled
PXSX    S4          *disabled
PEG0    S4          *disabled
PEGP    S4          *disabled
PEG1    S4          *disabled
PEG2    S4          *disabled
PEG3    S4          *disabled
GLAN    S4          *disabled
EHC1    S4          *enabled    pci:0000:00:1d.0
EHC2    S4          *enabled    pci:0000:00:1a.0
XHC     S4          *enabled    pci:0000:00:14.0
HDEF    S4          *disabled   pci:0000:00:1b.0
PWRB    S3          *enabled 
Run Code Online (Sandbox Code Playgroud)

在字段中,Status您可以看到它们是否可以唤醒计算机 ( enabled) 或不能 ( disabled)。

EHC1,EHC2XHC代表 USB 控制器。显然USB1 - USB7也是如此,但在我的情况下它们都被禁用了。我无法详细说明,因为我对此知之甚少。

我认为PWRB(最后一行)代表电源按钮。启用它是个好主意,因为您可能希望能够使用电源按钮唤醒您的计算机。

通过给出命令,sudo sh -c "echo EHC1 > /proc/acpi/wakeup"您可以切换EHC1. 如果您再次运行命令列出设备,您将看到设置为EHC1已更改。

我想这与控制器EHC1EHC2XHC因为我不知道什么控制器控制什么USB设备。

对我来说,离开EHC1XHC启用和禁用EHC2给了我想要的结果。现在键盘或鼠标(即使打开)都不会引起唤醒。我必须按下计算机本身的物理电源按钮。

不幸的是,当您重新启动时,该设置将被重置。为了解决这个问题,你可以把下面的代码放在你的/etc/rc.local. 它必须使用提升的权限进行编辑:sudo gedit /etc/rc.local例如。

for device in EHC2
do
    if grep -q "$device.*enabled" /proc/acpi/wakeup
    then
        echo $device > /proc/acpi/wakeup
    fi
done
Run Code Online (Sandbox Code Playgroud)

您可以通过更改代码中的第一行来添加更多设备:for device in EHC1 EHC2 XHC USB1等等。我找到了由用户 toojays 编写的脚本

这解决了我的问题。