Jak wyłączyć automatyczne zawieszanie po zamknięciu pokrywy laptopa?


129

Używam archlinuxa. Nigdy nie zawiesza się automatycznie przed ostatnią aktualizacją systemu (może zaktualizowałem jądro?).

Myślę, że jest to związane laptop-modealbo acpid, więc ich powstrzymać:

/etc/rc.d/laptop-mode stop
/etc/rc.d/acpid stop

Ja również edytuję /etc/laptop-mode/laptop-mode.conf:

ENABLE_LAPTOP_MODE_TOOLS=0

Następnie edytuję /etc/acpi/actions/lm_lid.sh, skomentowałem ostatni wiersz:

# /usr/sbin/laptop_mode auto

Ale wszystkie powyższe nie działają. Znaleziono następujące wiersze /var/log/kernel.log(niepowiązane linie pominięto):

Oct 23 15:29:20 localhost kernel: [18617.549098] PM: Syncing filesystems ... done.
Oct 23 15:29:20 localhost kernel: [18618.001898] PM: Preparing system for mem sleep
Oct 23 15:29:30 localhost kernel: [18618.039565] Freezing user space processes ... (elapsed 0.01 seconds) done.
Oct 23 15:29:30 localhost kernel: [18618.052596] Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done.
Oct 23 15:29:30 localhost kernel: [18618.065999] PM: Entering mem sleep
Oct 23 15:29:30 localhost kernel: [18618.066167] Suspending console(s) (use no_console_suspend to debug)
Oct 23 15:29:30 localhost kernel: [18618.097917] sd 0:0:0:0: [sda] Synchronizing SCSI cache
Oct 23 15:29:30 localhost kernel: [18618.098103] sd 0:0:0:0: [sda] Stopping disk
Oct 23 15:29:30 localhost kernel: [18618.270537] snd_hda_intel 0000:00:14.2: power state changed by ACPI to D3hot
Oct 23 15:29:30 localhost kernel: [18619.274374] PM: suspend of devices complete after 1196.192 msecs
Oct 23 15:29:30 localhost kernel: [18619.274691] PM: late suspend of devices complete after 0.313 msecs
Oct 23 15:29:30 localhost kernel: [18619.440877] ohci_hcd 0000:00:14.5: wake-up capability enabled by ACPI
Oct 23 15:29:30 localhost kernel: [18619.642144] ACPI: Waking up from system sleep state S3
Oct 23 15:29:30 localhost kernel: [18620.049424] PM: noirq resume of devices complete after 333.503 msecs
Oct 23 15:29:30 localhost kernel: [18620.049852] PM: early resume of devices complete after 0.334 msecs
Oct 23 15:29:30 localhost kernel: [18622.418605] PM: resume of devices complete after 2371.906 msecs
Oct 23 15:29:30 localhost kernel: [18622.419018] PM: Finishing wakeup.
Oct 23 15:29:30 localhost kernel: [18622.419019] Restarting tasks ... done.
Oct 23 15:29:30 localhost kernel: [18622.464752] video LNXVIDEO:01: Restoring backlight state

Myślę, że nie jest to spowodowane pm-susend, ponieważ /var/log/pm-suspend.logniczego nie loguj.

Nie chcę, żeby mój laptop poszedł spać, kiedy zamykam wieko. Jak to zrobić?

Wersja jądra: 3.6.2-1-ARCH


2
Właśnie miałem to zadać samemu, gdy pojawiło się twoje pytanie w „Pytaniach, które już mogą mieć twoją odpowiedź”. Tak się stało. Dzięki.
cjm 11.11. O

1
W Debianie 8 „Jessie” polecenie systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.targetwyłącza zawieszenie każdego typu.
CDuv

Odpowiedzi:


158

Edytuj /etc/systemd/logind.confi upewnij się, że masz,

HandleLidSwitch=ignore

co spowoduje, że zignoruje zamykanie pokrywy. (Może być konieczne cofnięcie innych wprowadzonych zmian).

Następnie przeładuj, logind.confaby wprowadzić zmiany w życie (podziękowania dla Ehtesh Choudhury za wskazanie tego w komentarzach):

systemctl restart systemd-logind

Pełne szczegóły na archlinux Wiki .

Strona man dla logind.conf zawiera również odpowiednie informacje,

   HandlePowerKey=, HandleSuspendKey=, HandleHibernateKey=,
   HandleLidSwitch=
       Controls whether logind shall handle the system power and sleep
       keys and the lid switch to trigger actions such as system power-off
       or suspend. Can be one of ignore, poweroff, reboot, halt, kexec,
       suspend, hibernate, hybrid-sleep and lock. If ignore logind will
       never handle these keys. If lock all running sessions will be
       screen locked. Otherwise the specified action will be taken in the
       respective event. Only input devices with the power-switch udev tag
       will be watched for key/lid switch events.  HandlePowerKey=
       defaults to poweroff.  HandleSuspendKey= and HandleLidSwitch=
       default to suspend.  HandleHibernateKey= defaults to hibernate.

16
Po zmianie HandleLidSwitch, jak mogę ponownie załadować logind.conf w locie? Nieważne, to jest systemctl stop systemd-logind && systemctl start systemd-logind.
Ehtesh Choudhury

11
A może systemctl restart systemd-logind, a nawet po prostu systemctl reload systemd-logind? nie jestem pewien, czy w związku z tym nie mogę się doczekać odpowiedzi przed próbą zamknięcia pokrywy (trwają długie obliczenia ... (
:). Czy

2
zdecydowanie nie ma go już na wiki i nie widzę artykułu logind.conf (krótka krótka sekcja na tej stronie).
Ehtesh Choudhury,

1
Powiązany temat został przeniesiony do zarządzania energią na Arch Wiki.
dzień

3
systemctl restart systemd-logindspowodował mój Archlinux z zawieszeniem pulpitu GNOME. Być przygotowanym.
Mehdi Sadeghi

24

Możesz użyć tego do tymczasowego wyłączenia zdarzeń zmiany pokrywy:

systemd-inhibit --what=handle-lid-switch sleep 1d

3
Nigdy systemd-inhibitwcześniej nie wiedziałem , bardzo fajnie
Hubro

Myślę, że kiedyś było na arch-wiki - idk co się stało.
user3467349,

2
To handle-lid-switchw tym przypadku po prostu blokuje określone polecenie sleep 1d. Ale ogólnie nie wyłącza automatycznego zawieszenia podczas zamykania pokrywy laptopa.
CMCDragonkai

3
To, co napisałem, może służyć do tymczasowego wyłączania zdarzeń zmiany pokrywy - co jest najczęściej tym, czego ja lub inni ludzie mogą chcieć. Więc nie jestem pewien, o czym jest twój komentarz?
user3467349,

Czy to 1dznaczy 1 dzień? Jeśli tak, jakie są inne opcje? h, m, s? Nie mogę znaleźć niczego, co wyjaśniałoby ostatnią część twojego polecenia.
malan
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.