Как предотвратить немедленное пробуждение от приостановки и / или гибернации?

35

В течение нескольких дней мой настольный компьютер Ubuntu 12.04 таинственным образом просыпался сразу после перехода в режим ожидания.

После установки мой ноутбук Ubuntu 12.10 также возобновлял работу сразу после приостановки и спящего режима.

Как это предотвратить?

Bazon
источник

Ответы:

35

Эта проблема, вероятно, была вызвана странными сигналами USB. gedit /proc/acpi/wakeupпоказал, что пробуждение было включено для USB0 и USB2.

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

переключил их на отключенный (проверенный gedit /proc/acpi/wakeupснова или обновив представление файла) , и после этого компьютер остается в режиме ожидания, как и должно. :-)

Bazon
источник
Это решение не сработало для меня. PS2K был включен (пробуждение клавиатуры), но его изменение не имело значения.
Брайс
4
В моем случае не было USB * устройств, похоже, что они были внутренне подключены через USB-концентратор: добавление EHC1, EHC2 и XHC в / proc / acpi / wakeup мне помогло.
Владимир Руцкий
2
В моем случае это был XHCI для USB 3
Andy
@ Базон, не могли бы вы взглянуть http://askubuntu.com/questions/852600/ubuntu-16-04-wakes-up-immediately-from-suspend-after-installing-fprint-in-lenovoи помочь мне разобраться
Касун Сиямбалапития
У меня отключение IGBEработало
Касун Сиямбалапития
22

Недавно у меня был такой же симптом на Asus Zenbook Pro UX501 на Ubuntu 15.04. Точное исправление Базона не сработало, но вариация Владимира Руцкого сработала. В частности:

При запуске из терминала 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
ilikerobots
источник
Это не решило мою проблему :(
Касун Сиямбалапития,
У меня отключение IGBEсработало, свыше трех не сработали
Касун Сиямбалапития
@ilikerrobots Это не исправить это навсегда, как это исправить навсегда
Kasun Siyambalapitiya
GLAN быстро переключается обратно на включен. Есть идеи почему?
Альфред М.
Чтобы сохранить его, поместите его в запись cron, рассчитанную на @reboot. Я считаю полезным запускать эхо, только если оно действительно было включено, поместив тест в сценарий оболочки, например, так egrep -q '^XHC1\s+S[0-9]\s+\*enabled' /proc/acpi/wakeup && echo XHC1 > /proc/acpi/wakeup(моим проблемным устройством был XHC1 - набор микросхем USB).
Дэвид Шоен
15

Если вы знаете, на каком устройстве вы просыпаетесь, перейдите к первому шагу и следуйте инструкциям. Если нет, откройте терминал и выполните:

cat /var/log/syslog

И найдите какое устройство будит ваш ПК.

А сейчас:

  1. хит в терминале:

    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 не разбудит ПК.

Следующий шаг, чтобы сделать изменение постоянным после каждой загрузки:

3.

sudo nano /etc/rc.local

И мы вставляем команду из шага 2. Там (до выхода 0, конечно).

Вот и все.

опционально, только если после процесса сна / пробуждения устройство USB 8, в моем примере, вернется к включенному.

  1. Напишите также udevправило для выполнения команды после каждой загрузки, сна, пробуждения.

Откройте терминал и выполните:

lsusb

В информации об идентификаторе устройства клавиатуры 4 первые цифры - это идентификатор поставщика, а 4 следующие цифры - это идентификатор продукта. Скриншот

Далее сделайте:

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

Где "пробуждение" введите желаемое имя скрипта. Число 10 является приоритетом, если у вас есть много других правил udev, чем меньше число, которое будет выполняться «правилом» перед остальными.

Скопируйте, вставьте его и замените идентификатор поставщика и идентификатор продукта на собственный идентификатор поставщика беспроводной клавиатуры и идентификатор продукта.

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

* usb8 для меня - моя беспроводная клавиатура (вы также можете видеть это на скриншоте (шина 008)), замените ее на свою.

Ctrl+ Oдля сохранения, Ctrl+ Xдля выхода и перезагрузки.

Павлос Теодору
источник
Благодарность! это выглядит интересно. Не могли бы вы добавить сюда свое руководство (изменив его так, чтобы оно решало конкретную проблему этого вопроса)
Джеффри
Спасибо. это не совсем то, что я хотел, но это заставило меня решить проблему - изменив файл rc.local (моя проблема не связана с портами USB). Я опубликовал свое собственное решение, но вы получите награду (хотя я не могу назначить ее до завтра)
Джеффри
Какие из них безопасно отключить? Буду ли я сталкиваться с проблемой, если я отключу все? Для меня включено только / sys / bus / usb / devices / 1-2 / power / wakeup: включено
Альфред М.
системный журнал даже не упоминает, что пробуждает компьютер
Кен Шарп
5

Сделать исправление постоянным

(Я собираю решения, предоставленные Базоном, Иликероботсом и Павлосом Теодору - вместе они решают мою конкретную проблему)

Чтобы навсегда решить проблему, будь то 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

Затем откройте:

sudo gedit /etc/rc.local

и добавьте эти строки (или аналогичные, в зависимости от результатов выше) перед exit 0

echo EHC1> / proc / acpi / wakeup

echo EHC2> / proc / acpi / wakeup

echo XHC> / proc / acpi / wakeup

Джеффри
источник
о, я не думал об этом. конечно это может быть другой порт, кроме USB. Я рад, что ты решил это.
Павлос Теодору