Linux 立即从睡眠状态唤醒

Linux 立即从睡眠状态唤醒

有时,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;

http://ubuntuforums.org/showthread.php?t=1168204

相关内容