问题描述
几天来,我的Ubuntu 12.04台式计算机在进入挂起模式后立即神秘地醒来。
自安装以来,我的Ubuntu 12.10便携式计算机在挂起和休眠后也已立即恢复。
如何预防?
最佳回答
此问题可能是由奇怪的USB信号引起的。 gedit /proc/acpi/wakeup
告诉我,已为USB0和USB2启用唤醒。
sudo -s
echo USB0 > /proc/acpi/wakeup
echo USB2 > /proc/acpi/wakeup
将它们设置为禁用(再次由gedit /proc/acpi/wakeup
进行检查或刷新file-view),然后,计算机将保持应有的状态处于挂起状态。 🙂
次佳回答
我最近在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
第三种回答
如果您知道哪个设备可以唤醒您的PC,请按照第一步进行操作。如果不这样做,请打开终端并执行以下操作:
cat /var/log/syslog
并找到哪个设备正在唤醒您的PC。
所以现在:
-
在终端点击
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设备恢复为启用状态。
-
还要编写一个
udev
规则,以便在每次引导,睡眠,唤醒后执行该命令。
打开终端并执行以下操作:
lsusb
在您的键盘设备ID信息中,前4位是供应商ID,后4位是产品ID
下一步:
sudo nano /etc/udev/rules.d/10-wakeup.rules
在”wakeup”中输入所需的脚本名称。如果您有许多其他udev规则,则数字10是优先级,’rule’将在其他规则之前执行的数字越小。
复制此代码并将其替换为您自己的无线键盘供应商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 *enabled pci:0000:00:xx.x
EHC2 S3 *enabled pci:0000:00:xx.x
XHC S3 *enabled 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