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

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

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

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

答案1

Jos 和 Rinzwind 的建议让我有所警醒,但并没有解决问题。我没有连接以太网电缆,也没有启用 WOL(BIOS 中实际上没有此选项)或键盘唤醒。

我尝试拔掉鼠标(带有 USB 接收器的 Logitech 无线鼠标),然后让计算机在夜间处于挂起状态 - 没有唤醒!

我之前怎么没想到呢?我总是在挂起电脑时关闭鼠标。我没想到这会引起更多问题。

那么,如何防止鼠标/接收器引起唤醒?首先,运行命令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 

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

EHC1EHC2XHC代表 USB 控制器。显然USB1 - USB7也是如此,但在我的例子中它们都被禁用了。我无法详细说明,因为我对此了解不多。

我认为PWRB(最后一行)代表电源按钮。最好将其保持启用状态,因为您可能希望能够使用电源按钮唤醒计算机。

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

我尝试使用控制器进行此操作EHC1EHC2因为XHC我不知道哪个控制器控制哪个 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

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

这解决了我的问题。

相关内容