如何防止立即从暂停和/或hibernate状态唤醒?
几天后,我的Ubuntu 12.04台式电脑在进入暂停模式后神秘地立即醒来。
自安装以来,我的Ubuntu 12.10笔记本电脑在暂停和hibernate后也立即恢复。
怎么预防那些?
这个问题可能是由奇怪的USB信号引起的。 gedit /proc/acpi/wakeup
向我展示了USB0和USB2的唤醒function。
sudo -s echo USB0 > /proc/acpi/wakeup echo USB2 > /proc/acpi/wakeup
将它们切换为禁用(再次通过gedit /proc/acpi/wakeup
检查或刷新文件视图) ,之后,计算机将保持暂停状态。 🙂
我最近在Ubuntu 15.04上的华硕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
如果您知道哪台设备唤醒了您的PC,请转到第一步,按照指南进行操作。 如果没有,那么打开终端并执行:
cat /var/log/syslog
并找到哪个设备唤醒您的PC。
所以现在:
-
点击终端:
grep . /sys/bus/usb/devices/*/power/wakeup
列出唤醒我们电脑的所有USB端口。
sudo su
我们现在有了root权限。
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设备(在我的示例中)还原为启用。
- 在每次启动,睡眠,唤醒后执行命令也写一个
udev
规则。
打开终端并执行:
lsusb
在您的键盘设备ID信息中,4个第一个数字是供应商ID,4个下一个数字是产品ID
接下来做:
sudo nano /etc/udev/rules.d/10-wakeup.rules
“唤醒”输入所需的脚本名称。 如果您有许多其他udev规则,则数字10是优先级,“规则”在其他规则之前执行的数字越低。
复制粘贴此内容并使用您自己的无线键盘供应商ID和产品ID替换供应商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退出并重启。
使修复永久化
(我正在编写Bazon,Ilikerobots和Pavlos Theodorou提供的解决方案 – 他们一起解决我的具体问题)
要永久解决问题,无论是USB端口唤醒系统还是其他东西:
- 找出允许唤醒系统的内容:
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
然后打开:
sudo gedit /etc/rc.local
并在 exit 0
之前添加这些行(或类似的,取决于上面的结果)
echo EHC1> / proc / acpi / wakeup
echo EHC2> / proc / acpi / wakeup
echo XHC> / proc / acpi / wakeup