Wszystko zaczęło się dziać po aktualizacji do 13.10, teraz mam 14.04 i nadal mam ten sam problem.
Kiedy zamykam lub robię pokrywkę, sudo pm-suspend
laptop zawiesza się na 2-5 sekund i budzi się sam.
To samo dzieje się, jeśli spróbuję zrobić hibernację.
Mam przeczucie, że coś się budzi / wyjmuje procesor z trybu wstrzymania, ale nie wiem, co.
Czy jest jakaś pomoc w rozwiązaniu tego irytującego problemu?
Edytować:
Dzięki @Fabian, udało mi się dowiedzieć, że wygląda jak karta Ethernet jest niewłaściwie, a nawet po tym, jak ustawić kartę, aby nie obudzić się na LAN (albo robi acpitool -W 3
albo echo disabled > /sys/bus/pci/devices/0000:00:19.0/power/wakeup
albo echo IGBE > /proc/acpi/wakeup
, laptop zachowuje wstawania i pokazując to, gdy robięacpitool -w
Device S-state Status Sysfs node
---------------------------------------
1. LID S3 *enabled
2. SLPB S3 *disabled
3. IGBE S4 *enabled pci:0000:00:19.0
4. EXP1 S4 *disabled pci:0000:00:1c.0
5. EXP2 S4 *disabled pci:0000:00:1c.1
6. EXP3 S4 *disabled
7. EXP4 S4 *disabled
8. EXP5 S4 *disabled pci:0000:00:1c.4
9. EHC1 S3 *disabled pci:0000:00:1d.0
10. EHC2 S3 *disabled pci:0000:00:1a.0
11. HDEF S4 *disabled pci:0000:00:1b.0
Masz pomysł, jak stamtąd zacząć?
Sterownik sieciowy używany przez IGBE to e1000e
dmesg
aby zobaczyć najnowsze wiadomości z jądra, coś tam może dać ci wskazówkę co się dzieje.Odpowiedzi:
Mam płytę główną opartą na jądrze 13.13 i Intel Z77X, a dla mnie działa następujące polecenie:
źródło
Dla mnie działało:
Poszukaj wszystkich elementów z włączonym statusem, które wyglądają, jakby tam nie pasowały (dla mnie wszystko oprócz LID0). Następnie wyłącz je, mówiąc na przykład:
Sprawdź, czy odpowiednie wpisy rzeczywiście zostały wyłączone, wyślij laptopa do zawieszenia i licz na najlepsze :)
źródło
rmmod
sterownik przed zawieszeniem? (Tylko strzał w ciemność)Wystąpił dokładnie ten sam problem (ThinkPad T530, Ubuntu 14.04, ale także 13.10 i 13.04, po kilku wstrzymaniach komputer natychmiast wznawia działanie po zawieszeniu).
Wyłączenie IBGE z budzenia wcale nie pomogło.
Jak zasugerował Romano, próbowałem usunąć moduł e1000e, i voila zawiesić zgodnie z oczekiwaniami.
Więc:
przed zawieszeniem rozwiązuje problem.
Co ciekawe, problem pojawia się ponownie natychmiast po zainstalowaniu modułu back (
sudo modprobe e1000e
) i zawieszeniu bez jego usunięcia. Musiało to być coś związanego ze sprzętem.Aby to zautomatyzować, stworzyłem dwa proste skrypty zawieszenia / wznowienia (testowane na wyżej wspomnianym sprzęcie, Ubuntu Trusty 14.04)
sudo gedit /etc/pm/sleep.d/99_e1000e_remove
:i
sudo gedit /etc/pm/power.d/99_e1000e_probe
:Skrypty powinny być wykonywalne (
sudo chmod +x /etc/pm/sleep.d/99_e1000e_remove /etc/pm/power.d/99_e1000e_probe
).Uwagi:
źródło
e1000e
module. Zdarza się to tylko od czasu do czasu, przez większość czasu zawieszenie działa dobrze. Jeśli problem się pojawi, jarmmod e1000e
mogę pomyślnie zawiesić. Jeśli jednak to zrobięmodprobe
ponownie po wznowieniu, następne zawieszenie będzie działać nawet z obecnym modułem.e1000e
Wygląda na to, że „zresetowanie” modułu jest dla mnie wystarczające.To zadziałało dla mnie (wzięte z innego wątku na askubuntu):
Ubuntu 14.04 budzi się natychmiast po zawieszeniu
źródło
Rozwiązaniem systemd jest utworzenie instrukcji dla systemd-tmpfiles, aby zapisać coś do pliku po jego wywołaniu.
Utwórz plik
/etc/tmpfiles.d
, na przykład/etc/tmpfiles.d/disable-network-wake.conf
o następującej treści, w zależności od urządzenia, dla którego chcesz wyłączyć budzenie.Zobacz także systemd-tmpfiles (8) i tmpfiles.d (5).
Patrz: https://wiki.archlinux.org/index.php/Systemd#Temporary_files
źródło