如何防止暂停和/或休眠状态立即唤醒?


35

几天来,我的Ubuntu 12.04台式计算机在进入挂起模式后立即神秘地醒来。

自安装以来,我的Ubuntu 12.10便携式计算机在挂起和休眠后也立即恢复。

如何预防?

Answers:


35

此问题可能是由奇怪的USB信号引起的。gedit /proc/acpi/wakeup向我展示了USB0和USB2的唤醒功能已启用。

sudo -s
echo USB0 > /proc/acpi/wakeup
echo USB2 > /proc/acpi/wakeup

将它们切换为禁用gedit /proc/acpi/wakeup再次检查 或刷新文件视图),然后,计算机将保持应有的暂停状态。:-)


此解决方案对我不起作用。PS2K已启用(键盘唤醒),但对其进行更改没有任何区别。
布莱斯,2012年

4
在我的情况下,没有USB *设备,好像它们是通过USB集线器在内部连接的:将EHC1,EHC2和XHC添加到/ proc / acpi / wakeup对我有帮助。
弗拉基米尔·鲁斯基(Fladimir Rutsky),2014年

2
在我的情况下,它是用于USB 3的XHCI
Andy

@Bazon能否请您看看,http://askubuntu.com/questions/852600/ubuntu-16-04-wakes-up-immediately-from-suspend-after-installing-fprint-in-lenovo帮我弄清楚
Kasun Siyambalapitiya

对我来说,使IGBE工作失去能力
Kasun Siyambalapitiya

22

我最近在Ubuntu 15.04上的Asus Zenbook Pro UX501上出现了相同的症状。Bazon的确切解决方法不起作用,但Vladimir Rutsky的变体成功了。特别:

如果从终端运行则cat /proc/acpi/wakeup显示以下几行

EHC1      S3    *enabled  pci:0000:00:xx.x
EHC2      S3    *enabled  pci:0000:00:xx.x
XHC       S3    *enabled  pci:0000:00:xx.x

(pci地址可能不同)

然后通过发出以下命令将这三个设置为禁用:

sudo -s
echo EHC1 > /proc/acpi/wakeup
echo EHC2 > /proc/acpi/wakeup
echo XHC > /proc/acpi/wakeup

做上述事情并不能解决我的问题:(
Kasun Siyambalapitiya

对我来说,禁用IGBE工作无效,以上三个都不起作用
Kasun Siyambalapitiya

@ilikerrobots这样不会永久性修复它,如何permanetly修复
Kasun Siyambalapitiya

GLAN快速切换回启用状态。知道为什么吗?
Alfred M.

为了使其持久存在,请将其放在定时的cron条目中@reboot。我发现只有在实际上通过在外壳脚本中进行测试egrep -q '^XHC1\s+S[0-9]\s+\*enabled' /proc/acpi/wakeup && echo XHC1 > /proc/acpi/wakeup(例如,我的问题设备是XHC1-USB芯片组)启用了回声的情况下,才运行回声很有用。
David Schoen

15

如果您知道哪个设备可以唤醒您的PC,请按照第一步进行操作。如果不这样做,请打开终端并执行以下操作:

cat /var/log/syslog

并找到哪个设备正在唤醒您的PC。

所以现在:

  1. 在终端点击

    grep . /sys/bus/usb/devices/*/power/wakeup
    

列出所有唤醒计算机的USB端口。

sudo su

我们现在拥有根特权。

2.我有8个USB端口,在这个例子中,我想禁用usb8,所以:

echo disabled > /sys/bus/usb/devices/usb8/power/wakeup

继续进行测试。现在,USB端口8中的特定设备不会唤醒PC。

下一步,在每次启动后使更改永久生效:

3。

sudo nano /etc/rc.local

然后将步骤2中的命令粘贴到那里。(当然,在出口0之前)。

而已。

可选仅在睡眠/唤醒过程之后,在我的示例中,USB 8设备恢复为启用状态。

  1. udev每次启动,睡眠,唤醒后,也要编写一条规则来执行命令。

打开终端并执行以下操作:

lsusb

在您的键盘设备ID信息中,前4位是供应商ID,后4位是产品ID 屏幕截图

下一步:

sudo nano /etc/udev/rules.d/10-wakeup.rules

在“唤醒”中,输入所需的脚本名称。如果您有许多其他udev规则,则数字10是优先级,“规则”将在其他规则之前执行的数字越小。

复制此代码并将其替换为您自己的无线键盘供应商ID和产品ID。

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="062a", ATTRS{idProduct}=="4101" RUN+="/bin/sh -c 'echo disabled > /sys/bus/usb/devices/usb8/power/wakeup'"

*对我来说,usb8是我的无线键盘(您也可以在屏幕快照(Bus 008)中看到它),将其替换为您自己的键盘。

Ctrl+ O保存,Ctrl+ X退出并重新启动。


谢谢!这看起来很有趣。您介意在这里添加您的指南(对其进行更改,以便解决该问题的具体问题)
geoffrey

谢谢。这不是我想要的,但是它使我得以解决-通过修改rc.local文件(我的问题并不特定于USB端口)。我已经发布了自己的解决方案,但您会得到赏金(尽管我不能在明天之前授予它)
geoffrey

哪些安全禁用?如果禁用所有功能,是否会遇到问题?对我来说唯一启用的是/ sys / bus / usb / devices / 1-2 / power / wakeup:enabled
Alfred

syslog甚至没有提到唤醒计算机的原因
Ken Sharp

5

使修复永久化

(我正在编译Bazon,Ilikerobots和Pavlos Theodorou提供的解决方案-它们一起解决了我的特定问题)

要永久解决此问题,无论是唤醒系统的USB端口还是其他原因:

  1. 找出允许唤醒系统的条件:

gedit / proc / acpi / wakeup

您可能会得到以下或类似的内容:

EHC1 S3 *已启用pci:0000:00:xx.x

EHC2 S3 *已启用pci:0000:00:xx.x

XHC S3 *已启用pci:0000:00:xx.x

然后打开:

须藤gedit /etc/rc.local

并添加这些线(或类似的,这取决于上述结果)之前 exit 0

回声EHC1> / proc / acpi / wakeup

回声EHC2> / proc / acpi / wakeup

回声XHC> / proc / acpi / wakeup


哦,我没想到。当然,它可能是USB以外的另一个端口。我很高兴你解决了它。
Pavlos Theodorou
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.