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


35

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

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

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

Ответы:


35

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

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

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


Это решение не сработало для меня. 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

Это не решило мою проблему :(
Касун Сиямбалапития,

У меня отключение 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. Я рад, что ты решил это.
Павлос Теодору
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.