有时,opensuse 12.3 会立即从睡眠状态唤醒。我在 /etc/init.d 中创建了一个服务,可以使用以下代码从键盘和鼠标唤醒:
echo enabled > /sys/bus/usb/devices/usb5/power/wakeup
echo enabled > /sys/bus/usb/devices/5-1/power/wakeup
echo enabled > /sys/bus/usb/devices/5-2/power/wakeup
我还在 grub 中添加了这个选项:
usbcore.autosuspend=-1
我有安装了 319.32 驱动程序的 nvidia 卡。大多数时候,进入睡眠状态并恢复工作正常,但一段时间后,它总是立即唤醒,只有重新启动系统才有用。
答案1
将此脚本复制到:
/etc/pm/sleep.d/10unbindusb
并使其可执行。
# Revision: 21.12.2009
# Author: Sandro Mani
function unbind_usb {
for driver in ehci ohci uhci; do
cd "/sys/bus/pci/drivers/${driver}_hcd";
ids=$(ls | grep :);
echo $ids > /tmp/DISABLED_$driver;
for id in $ids; do
echo -n "$id" > unbind;
done;
done;
}
function bind_usb {
for driver in ehci ohci uhci; do
cd "/sys/bus/pci/drivers/${driver}_hcd";
for id in $(cat /tmp/DISABLED_$driver); do
echo -n "$id" > bind;
done;
rm /tmp/DISABLED_$driver;
done;
}
case "$1" in
hibernate|suspend)
unbind_usb;
;;
thaw|resume)
bind_usb;
;;
*)
exit 1;
;;
esac;
exit 0;