Laptop nie zawiesza się po zamknięciu pokrywy


24

Jestem nowym użytkownikiem Ubuntu 13.10. Zamknięcie pokrywy mojego laptopa nie powoduje przejścia komputera w tryb wstrzymania, co oznacza, że ​​za każdym razem, gdy zamykam pokrywę bez ręcznego zawieszania komputera, bateria umiera.

Właściwe ustawienia są ustawione w Zarządzaniu energią - zawiesić laptop na pokrywie blisko dla prądu przemiennego i stałego, ale nie mają one wpływu na rzeczywiste zachowanie.

Wygląda na to, że jest to powszechny problem wielu użytkowników już od Ubuntu 11 - jedynym rozwiązaniem, jakie mogłem znaleźć, jest poniżej. Jednak jako nowy użytkownik Linuksa nie wiem, jak właściwie wykonać instrukcje. Gdyby ktoś mógł podać dodatkowe szczegóły, które byłyby niezwykle pomocne.

Z góry dziękuję.

/etc/acpi/events/lidbtn triggers /etc/acpi/lid.sh which triggers
 /etc/acpi/local/lid.sh.post at the end of the script.
 /etc/acpi/local/* allows you to add your own config (e.g. required for
 wmii).

 generate /etc/acpi/local/lid.sh.post
 make it executable and add:

 \#!/bin/bash
 grep -q closed /proc/acpi/button/lid/*/state
 if [ $? = 0 ]
 then
 /usr/sbin/pm-suspend
 fi

 wmii will now go to suspend mode when closing the lid. It'll
 automatically wake up when opening the lid.
    #!/bin/bash

    load=$(cat /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0A:00/power_supply/BAT0/capacity)
    min_load=20
    if [ $load <= min_load ]; then
        pm-suspend
    fi

Odpowiedzi:


20

(Należy pamiętać, że #przed wydaniem polecenia wskazuje, że powinien on być uruchamiany przez administratora, aby wymienić #z sudo).

Otwórz logind.confjako root: # vim /etc/systemd/logind.confi usuń #wcześniej HandleLidSwitch=suspend. Możesz także zmienić opcję suspendna hibernatelubpoweroff

Poprawka z błędu Launchpad # 863834, komentarz nr 30 :

  1. Otwórz terminal: Ctrl+ Alt+t
  2. # mkdir /etc/acpi/local
  3. # vim /etc/acpi/local/lid.sh.post
  4. Skopiuj ten krótki skrypt:

     #!/bin/bash
     if grep -q closed /proc/acpi/button/lid/*/state
     then
         /usr/sbin/pm-suspend
     fi
    

    ... i wklej go do vima, wpisując: "+p

  5. Zaoszczędź, pisząc ZZwielkimi literami
  6. # chmod 755 /etc/acpi/local/lid.sh.post (więc działa nawet wtedy, gdy zarządzanie energią jest obsługiwane przez zalogowanego użytkownika zamiast roota)

ps: jeśli nie jesteś pewien, jak korzystać z vima, zastąp go gedit i sudo gksu
Meow

Miau, dzięki za szybką odpowiedź. Niestety nadal nie jestem w 100% czysty. Czy wprowadzam te polecenia w terminalu? Gdy wpisuję „sudo vim /etc/systemd/logind.conf”, pojawia się błąd „sudo: vim: polecenie nie znaleziono”. Jestem też na komputerze z systemem Linux, jeśli to robi różnicę.
Kyle Chadha,

użyj sudo gedit /etc/systemd/logind.conf, jeśli vim nie jest zainstalowany i tak, musisz wprowadzić je w terminalu
Meow

Hrm nadal nie działa. Brak zmian w zamkniętej pokrywie po ponownym uruchomieniu. '# HandlePowerKey = wyłączenie # HandleSuspendKey = zawieszenie # HandleHibernateKey = hibernacja HandleLidSwitch = zawieszenie'
Kyle Chadha

1
To działało dla mnie, ale musiałem dodać:sudo chmod 755 /etc/acpi/local/lid.sh.post
qbert220

5

W odpowiedzi na ten post miałem ten sam problem z moim Toshiba Satellite a305-s6902 (który kupiłem wyłącznie w celu ćwiczenia na Linuksie) i stwierdziłem, że to działało dla mnie:

sudo vim /etc/systemd/logind.conf

następnie jak wyżej, usuń #przed HandleLidSwitch=suspendi zapisz ( ESC :wq).

JEDNAK ---> Uważam, że muszę najpierw ręcznie zawiesić komputer i po każdym ponownym uruchomieniu, aby uruchomić spust. Nie wiem dlaczego, ale działało to dla mnie konsekwentnie.



1

Miałem ten sam problem z Linux Mint Cinnamon 17.2. Ponieważ jest oparty na Ubuntu 14.04, spodziewam się, że wiele rzeczy jest tak samo.

Po przeszukaniu problemu z zawieszeniem na zamkniętej pokrywie znalazłem się tu i do tej pory, najlepszym, co wymyśliłem, było ręczne zawieszenie za pierwszym razem po rozruchu, a następnie zamknięta pokrywa się zawieszała. Po przeczytaniu tych postów i komentarzy uważam, że rozwiązałem problem.

Oto co zrobiłem:

  1. Otworzyłem sesję terminalową i używając nano zamiast vima, wpisałem;

    sudo nano /etc/systemd/logind.conf
    
  2. Zgodnie z sugestią usunąłem # wcześniej HandleLidSwitch=suspend. Potem go uratowałem.

  3. Potem napisałem ...

    mkdir /etc/acpi/local
    sudo nano /etc/acpi/local/lid.sh.post
    

    ... oraz skopiował i wkleił kolejne 5 wcześniej opublikowanych wierszy

    #!/bin/bash
    if grep -q closed /proc/acpi/button/lid/*/state
    then
        sudo /usr/sbin/pm-suspend
    fi
    

    UWAGA: Aby to zadziałało, dodałem sudodo linii /usr/sbin/pm-suspend. W przeciwnym razie nie działałoby.

  4. W końcu go zapisałem i jak napisałem wcześniej, napisałem; zalogowany użytkownik zamiast root, wpisany;

    sudo chmod 755 /etc/acpi/local/lid.sh.post
    

Niestety to nie zadziałało. Jednak wykonałem kilka testów poleceń w skrypcie i zadziałały, więc zdecydowałem, że coś innego ich nie wyzwala. W dalszej części postów znalazłem odniesienie do błędu Gnome power manager:

https://bugs.launchpad.net/ubuntu/+source/upower/+bug/863834

Szczególnie interesujący był post Michaela Backhausa z dnia 06.06.2012, w którym napisał:

/etc/acpi/events/lidbtnwyzwalacze, /etc/acpi/lid.shktóre wyzwalają /etc/acpi/local/lid.sh.post.

Następnie była niemal identyczna wersja powyższego skryptu bash lid.sh.post.

W tej wersji Mennicy /etc/acpi/events/lidbtni /etc/acpi/lid.shnie istniały. Jednak /etc/acpi/events/powerbtni /etc/acpi/powerbtn.shzrobił. Spojrzenie na „powerbtn” dostarczyło odpowiedzi

Oto moje obejście:

  1. Aby utworzyć niestandardowe „lidbtn”, wpisz;

    sudo nano /etc/acpi/events/powerbtn
    

    i zmodyfikowałem go tak, aby pasował do lidbtn;

    # /etc/acpi/events/lidbtn
    # This is called when the user closes the lid and calls
    # /etc/acpi/lidbtn.sh for further processing.
    
    # Optionally you can specify the placeholder %e. It will pass
    # through the whole kernel event message to the program you've
    # specified.
    
    # We need to react on "button lid.*" and "button/lid.*" because
    # of kernel changes.
    
    event=button[ /]lid
    action=/etc/acpi/lidbtn.sh
    
  2. Uratowałem to. Następnie skopiowałem /etc/acpi/local/lid.sh.postgo /etc/acpi/i zmieniłem jego nazwę lidbtn.sh.

Uruchomiłem się ponownie, a teraz zamknięcie pokrywy zawsze zawiesza mój laptop. Jednak muszę go ręcznie obudzić podczas otwierania pokrywy. Następny projekt do pracy.

DODATEK: Powinienem dodać, że nie mam drugiego monitora. Dla mnie problemem było to, że zawieszenie po prostu nie działało, gdy pokrywa była zamknięta.


Czy to zadziałało dla Linux Mint 18 „Sarah”? I @ bob-el, czy znalazłeś sposób obejścia problemu?
kisanme

0

Dla mnie problemem było to, że zamknięcie pokrywy jest obsługiwane inaczej, gdy podłączony jest monitor zewnętrzny . Zmiana tej opcji jako użytkownika dconf-editorrozwiązała dla mnie problem:

Schemat:

org.cinnamon.settings-daemon.plugins.power

lub (w zależności od używanego środowiska pulpitu)

org.gnome.settings-daemon.plugins.power

Imię:

lid-close-suspend-with-external-monitor

Ustawić:

true

Opis:

Bez podłączonych zewnętrznych monitorów zamknięcie pokrywy laptopa spowoduje zawieszenie komputera (zgodnie z ustawieniami klawiszy zamykania i zamykania baterii oraz zamykania pokrywy). Domyślnie jednak zamknięcie pokrywy, gdy obecny jest monitor zewnętrzny, nie spowoduje zawieszenia urządzenia, dzięki czemu można kontynuować pracę na tym monitorze (np. W przypadku stacji dokujących lub przeglądarek multimediów). Ustaw ten klucz na False, aby zachować domyślne zachowanie, lub True, aby zawiesić laptopa za każdym razem, gdy pokrywa jest zamknięta i niezależnie od monitorów zewnętrznych.


0

Używam Mint 18.1 na Macbooku Air 6,2. Oto rozwiązanie, które mam i działa prawie idealnie.

Używam mba6x_bl, aby naprawić mój czarny ekran MBA po przebudzeniu. Postępuj zgodnie z ich instrukcjami .

Następnie użyj powyższego rozwiązania Boba-El, aby rozwiązać problem zawieszenia.

  • tworzenie kopii zapasowych i otwieranie / etc / acpi / events / powerbtn
    sudo cp / etc / acpi / events / powerbtn / etc / acpi / events / powerbtn_bak
    sudo nano / etc / acpi / events / powerbtn
  • zamień zawartość powerbtn na tekst poniżej

    # /etc/acpi/events/lidbtn
    # This is called when the user closes the lid and calls  
    # /etc/acpi/lidbtn.sh for further processing.  
    # Optionally you can specify the placeholder %e. It will pass  
    # through the whole kernel event message to the program you've  
    # specified.  
    # We need to react on "button lid.*" and "button/lid.*" because  
    # of kernel changes.  
    event=button[ /]lid  
    action=/etc/acpi/lidbtn.sh
    
  • Stwórz /etc/acpi/lidbtn.sh

    sudo nano /etc/acpi/lidbtn.sh
    
  • umieść w nim następujący tekst

    #!/bin/bash
    if grep -q closed /proc/acpi/button/lid/*/state
      then
      /usr/sbin/pm-suspend
    fi
    
  • Otwórz Zarządzanie energią -> Zasilanie prądem przemiennym -> Działania -> Gdy pokrywa laptopa jest zamknięta , wybierz Pusty ekran . Spowoduje to zawieszenie MBA podczas podłączania do zasilania.

Jedyny problem, jaki zauważyłem, to zawieszenie MBA przy podłączonym zasilaniu , a podświetlenie klawiatury automatycznie się włączy. Ale poza tym wszystko działa dobrze.

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.