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

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

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

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

42
задан 27 October 2012 в 06:16

5 ответов

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

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

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

38
ответ дан 27 October 2012 в 06:16

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

(я собираю решения, предоставленные Bazon, Ilikerobots и Pavlos Theodorou - вместе они решают мою конкретную проблему)

Чтобы исправить проблему навсегда, будь то 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[12224 visible и добавьте эти строки (или аналогичные, в зависимости от результатов выше) перед exit 0

echo EHC1> / proc / acpi / wakeup

echo EHC2> / proc / acpi / wakeup

echo XHC> / proc / acpi / wakeup

6
ответ дан 27 October 2012 в 06:16

Недавно у меня был такой же симптом на 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
29
ответ дан 27 October 2012 в 06:16

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

cat /var/log/syslog

И найдите, какое устройство выводит ваш компьютер из спящего режима.

Итак:

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

     grep.  / система / шина / USB / устройства / * / питание / пробуждение
     

Чтобы перечислить все порты 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 следующие цифры - идентификатор продукта. screenshot

Далее выполните:

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

Где "wakeup" введите желаемое имя сценария. Число 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 для меня это моя беспроводная клавиатура (вы также можете видеть это на скриншоте (Bus 008)), замените ее своей собственной.

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

18
ответ дан 27 October 2012 в 06:16

Это то, что у меня сработало на моем Mac Book Pro 2015

. Я добавил следующее в / lib / systemd / system-sleep / wakeup_disable

#!/bin/sh

# /lib/systemd/system-sleep/wakeup_disable
#
# Avoids that system wakes up immediately after suspend or hibernate
#
# Tested on MacBookPro 2015

case $1 in
  pre)
    if grep -qE '^XHC1.*enabled' /proc/acpi/wakeup; then
        echo XHC1 > /proc/acpi/wakeup
    fi
    if grep -qE '^LID0.*enabled' /proc/acpi/wakeup; then
        echo LID0 > /proc/acpi/wakeup
    fi
    ;;
esac

Примечание это предотвратит пробуждение через открытие крышки и через клавиатуру / мышь / USB-устройство, вы должны нажать кнопку питания.

Ссылки:

  1. https://wiki.debian.org/InstallingDebianOn/Apple/MacBookPro/Early -2015-13-дюймовый # Immediate_wakeup_after_sleep

  2. https://wiki.archlinux.org/index.php/MacBookPro11,x

2
ответ дан 5 January 2021 в 23:40

Другие вопросы по тегам:

Похожие вопросы: