Jak zapobiec natychmiastowemu obudzeniu się z trybu wstrzymania i / lub hibernacji?


35

Od kilku dni mój komputer stacjonarny z systemem Ubuntu 12.04 w tajemniczy sposób budzi się natychmiast po przejściu w tryb zawieszenia.

Od czasu instalacji mój laptop Ubuntu 12.10 również został wznowiony natychmiast po zawieszeniu i hibernacji.

Jak temu zapobiec?

Odpowiedzi:


35

Ten problem był prawdopodobnie spowodowany dziwnymi sygnałami USB. gedit /proc/acpi/wakeuppokazał mi, że wakeup jest włączony dla USB0 i USB2.

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

przełączono je na wyłączone (zaznaczone gedit /proc/acpi/wakeupponownie lub odświeżając widok pliku) , a następnie komputer pozostaje zawieszony tak, jak powinien. :-)


To rozwiązanie nie działało dla mnie. Włączono PS2K (wybudzanie klawiatury), ale zmiana nie miała znaczenia.
— Bryce,

4
W moim przypadku nie było urządzeń USB *, wygląda na to, że były wewnętrznie połączone przez hub USB: dodanie EHC1, EHC2 i XHC do / proc / acpi / wakeup pomogło mi.
— Vladimir Rutsky

2
W moim przypadku był to XHCI na USB 3
— Andy

@Bazon, proszę, spójrz http://askubuntu.com/questions/852600/ubuntu-16-04-wakes-up-immediately-from-suspend-after-installing-fprint-in-lenovoi pomóż mi to
— rozgryźć

U mnie wyłączenie IGBEdziałało
— Kasun Siyambalapitiya

22

Ostatnio miałem ten sam objaw na Asus Zenbook Pro UX501 na Ubuntu 15.04. Dokładna poprawka Bazona nie działała, ale odmiana Vladimira Rutsky'ego działała. Konkretnie:

Jeśli uruchomiony z terminala cat /proc/acpi/wakeuppokazuje następujące linie

EHC1      S3    *enabled  pci:0000:00:xx.x
EHC2      S3    *enabled  pci:0000:00:xx.x
XHC       S3    *enabled  pci:0000:00:xx.x

(adresy pci mogą być inne)

następnie przełącz te trzy na wyłączone, wydając następujące polecenia:

sudo -s
echo EHC1 > /proc/acpi/wakeup
echo EHC2 > /proc/acpi/wakeup
echo XHC > /proc/acpi/wakeup

Wykonanie powyższego nie rozwiązało mojego problemu :(
— Kasun Siyambalapitiya

Dla mnie wyłączenie IGBEdziałało, powyżej trzech nie
— Kasun Siyambalapitiya

@ilikerrobots To nie naprawia tego na stałe, jak to naprawić na stałe
— Kasun Siyambalapitiya

GLAN szybko przełącza się z powrotem na włączony. Wiesz, dlaczego?
— Alfred M.,

Aby pozostało, umieść je w odpowiednim wpisie crona @reboot. Uznałem, że użyteczne jest uruchamianie echa tylko wtedy, gdy jest ono faktycznie włączone poprzez umieszczenie testu w takim skrypcie powłoki egrep -q '^XHC1\s+S[0-9]\s+\*enabled' /proc/acpi/wakeup && echo XHC1 > /proc/acpi/wakeup(moim problematycznym urządzeniem był XHC1 - chipset USB).
— David Schoen,

15

Jeśli wiesz, które urządzenie wybudza komputer, przejdź do pierwszego kroku, postępując zgodnie z instrukcją. Jeśli nie, otwórz terminal i wykonaj:

cat /var/log/syslog

I sprawdź, które urządzenie budzi Twój komputer.

Więc teraz:

  1. uderzył w terminal:

    grep . /sys/bus/usb/devices/*/power/wakeup
    

Aby wyświetlić listę wszystkich portów USB, które budzą nasz komputer.

sudo su

mamy teraz rootowanie uprzywilejowania.

2.Mam 8 portów USB, w tym przykładzie powiedzmy, że chcę wyłączyć usb8, więc:

echo disabled > /sys/bus/usb/devices/usb8/power/wakeup

Śmiało i przetestuj to. Teraz to konkretne urządzenie w porcie USB 8 nie obudzi komputera.

Następny krok, aby zmiana była trwała po każdym uruchomieniu:

3)

sudo nano /etc/rc.local

I wklejamy polecenie z kroku 2. Tam (oczywiście przed wyjściem 0).

to jest to!

opcjonalne Tylko jeśli po zakończeniu trybu uśpienia / budzenia urządzenie USB 8 w moim przykładzie powróci do stanu włączenia.

  1. Napisz udevregułę, aby wykonać polecenie po każdym uruchomieniu, uśpieniu, przebudzeniu.

Otwórz terminal i wykonaj:

lsusb

W informacjach o identyfikatorze urządzenia klawiatury 4 pierwsze cyfry to identyfikator dostawcy, a 4 kolejne cyfry to identyfikator produktu zrzut ekranu

Następnie wykonaj:

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

Gdzie „wakeup” wpisz żądaną nazwę skryptu. Liczba 10 jest priorytetem w przypadku, gdy masz wiele innych reguł udev, im niższa liczba, którą „reguła” zostanie wykonana przed innymi.

Skopiuj wklej to i zamień identyfikator dostawcy i identyfikator produktu na własny identyfikator dostawcy i identyfikator produktu klawiatury bezprzewodowej.

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

* usb8 dla mnie klawiatura bezprzewodowa (możesz to również zobaczyć na zrzucie ekranu (Bus 008)), zamień ją na własną.

Ctrl+, Oaby zapisać, Ctrl+, Xaby wyjść i uruchomić ponownie.


dzięki! to wygląda interesująco. czy mógłbyś dodać tutaj swój przewodnik (zmieniając go, aby rozwiązał konkretny problem tego pytania)
— geoffrey

dzięki. nie do końca tego chciałem, ale udało mi się naprawić problem - modyfikując plik rc.local (mój problem nie dotyczy portów USB). Opublikowałem własne rozwiązanie, ale dostaniesz nagrodę (nie mogę jej przyznać przed jutrem)
— geoffrey

Które można bezpiecznie wyłączyć? Czy wystąpią problemy, jeśli wyłączę wszystko? Jedyne włączone to dla mnie / sys / bus / usb / devices / 1-2 / power / wakeup: włączone
— Alfred M.

syslog nawet nie wspomina o tym, co budzi komputer
— Ken Sharp

5

Aby naprawić na stałe

(Kompiluję rozwiązania dostarczone przez Bazon, Ilikerobots i Pavlos Theodorou - razem rozwiązują mój konkretny problem)

Aby trwale rozwiązać problem, niezależnie od tego, czy jest to port USB, który budzi system, czy coś innego:

  1. Dowiedz się, co może obudzić twój system:

gedit / proc / acpi / wakeup

Możesz dostać te lub podobne linie:

EHC1 S3 * włączony pci: 0000: 00: xx.x

EHC2 S3 * włączony pci: 0000: 00: xx.x

XHC S3 * włączony pci: 0000: 00: xx.x

Następnie otwórz:

sudo gedit /etc/rc.local

i dodaj te linie (lub podobne, w zależności od powyższych wyników) wcześniej exit 0

echo EHC1> / proc / acpi / wakeup

echo EHC2> / proc / acpi / wakeup

echo XHC> / proc / acpi / wakeup


och, nie myślałem o tym. oczywiście może to być inny port niż USB. Cieszę się, że to rozwiązałeś.
— Pavlos Theodorou
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.