Używam 18.04 i próbuję, aby mój system używał hibernacji zamiast pm-hibernacji, gdy pokrywa mojego laptopa zostanie zamknięta.
Mam partycję wymiany 20 GB na 16 GB pamięci RAM, więc dużo miejsca.
Kiedy używam pm-hibernacji, pojawia się mały błąd apci, który pojawia się bardzo szybko podczas hibernacji i przywracania, którego nie mogę odczytać. Podczas gdy hibernacja działa w tym sensie, że wydaje się, że zrzuca się na dysk i przywraca z dysku, wydaje się być stanem uśpienia, w którym używa baterii z normalną szybkością, zamiast całkowicie się wyłączać i zaprzestać używania baterii.
Jednak gdy korzystam z hibernacji zainstalowanej przez:
sudo apt-get install hibernate
I biegnij:
sudo hibernate
I przywróćmy z tego, zauważam, że moja maszyna faktycznie się wyłącza --- diody LED przestają pulsować itp. --- a zużycie baterii spada do zera. Jest to zachowanie, które chciałbym zobaczyć, gdy moja pokrywa się zamyka, a nie zachowanie podczas snu, w którym wykorzystuje się baterię, jak gdybym aktywnie korzystał z komputera.
Postępowałem zgodnie z tymi przewodnikami:
zmodyfikowany
/etc/systemd/logind.conf
zawierać:
#HandleLidSwitch=suspend
HandlelidSwitch=hibernate
I dodałem moją zmianę partycji wymiany w:
/etc/default/grub
Aby dołączyć poprawny link resume = i zażądać s2disk specjalnie z:
sudo cat /etc/pm/config.d/00sleep_module
SLEEP_MODULE="swsusp"
Przeczytałem następujące powiązane askubuntus:
- Hibernuj przy zamkniętej pokrywie
- Ubuntu 17.04 hibernacja działa, ale pm-hibernacja nie
- Laptop blokuje ekran zamiast hibernacji
- jak sprawić, by Linux wolał sudo pm-hibernację niż systemctl hibernację jako domyślny?
- Tryb uśpienia zużywa tyle samo baterii, ile podczas korzystania z laptopa
- Zamiana domyślnej metody hibernacji na s2disk
Przeczytałem również te linki na forach Lenovo i Arch:
- https://forums.lenovo.com/t5/Linux-Discussion/X1-Carbon-Gen-6-cannot-enter-deep-sleep-S3-state-aka-Suspend-to/td-p/3998182/page/ 4
- https://forums.lenovo.com/t5/Linux-Discussion/X1-Gen6-Massive-battery-drain-in-suspend-No-deep-sleep-support/mp/3997789
- https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X1_Carbon_(Gen_6)
- https://wiki.archlinux.org/index.php/Power_management/Suspend_and_hibernate
Jak mogę się upewnić, że hibernacja wywołana przez zamknięcie pokrywy jest hibernacją, a nie pm-hibernacją?
Aktualizacja
Jest to nadal problem i wciąż sprawia, że Carbon X1 6. generacji jest zasadniczo bezużyteczny w Ubuntu. Wszelkie rozwiązania, które mogłyby to naprawić i być może dodatkowo dodać monit logowania, mogą być prawie tak dobre, jak komputer z systemem Windows sprzed 4 lat ...;)
źródło
/var/log/pm-suspend.log
. Dzięki./usr/sbin/pm-hibernate
na/usr/sbin/pm-hibernate.OLD
. Następnie stwórz/usr/sbin/pm-hibernate
bash scxript, który zawierahibernate
polecenie. Użyj,type -a hibernate
aby znaleźć dokładną ścieżkę do polecenia. Nie istnieje w moim systemie, ponieważ go nie zainstalowałem.Odpowiedzi:
Ja też nie lubię podawać adresu URL, więc skopiuję i wkleję informacje oraz dołączę stronę do dołu. Nie widzę tego w twoim linku.
Czytając to zauważyłem, że hibernacja może nie działać, jeśli sformatowano ją w systemie plików btrfs? Jak więc hibernacja jest włączona na stałe w Ubuntu 16.04?
Aby proces hibernacji Ubuntu był trwały, musisz utworzyć nowy plik za pomocą edytora tekstu w wierszu poleceń:
System wymaga uprawnień roota, aby włączyć opcję hibernacji, dlatego należy dodać polecenie sudo. Możesz używać innych edytorów tekstu, takich jak vi, gedit, emacs itp.
Teraz skopiuj i wklej następujący tekst do pliku (użyj myszy; skróty klawiaturowe nie będą działać):
Naciśnij CTRL+, Oaby zapisać, i CTRL+, Xaby wyjść z nano edytora.
Teraz wyloguj się z systemu, a następnie zaloguj ponownie. Zobaczysz teraz opcję hibernacji oraz opcje Zamknij i Zawieś.
Link do Twojej wygody to: https://fossbytes.com/enable-disable-hibernate-option-ubuntu-power-menu/
źródło
Dwie opcje
Pierwsza opcja (wymieniona jako druga) to sprawdzenie
journalctl
możliwych komunikatów o błędach związanych ze hibernacją. Jeśli pierwsza opcja nie daje wyników, drugą opcją jest utworzenie skryptu opakowania, który zastąpipm-hibernate
`hibernacja.Utwórz skrypt opakowania
Utworzenie skryptu opakowania pozwala
hibernate
na zamianępm-hibernate
.Polecenia Znajdź katalogi znajdują się w
Przed utworzeniem skryptu opakowania musisz wiedzieć, które katalogi znajdują się w komendach
hibernate
ipm-hibernate
. Użyj tych dwóch poleceń:Skryptem opakowania, który chcesz utworzyć, będzie
/usr/sbin/pm-hibernate
. Nie mamhibernate
zainstalowanego pakietu, więc pierwsze wyszukiwanie znajduje tylko narzędzie Windows. Zgodnie z listą plików pakietu powinien on ujawniać się/usr/sbin/hibernate
wraz z kilkoma innymi plikami.Utwórz kopię zapasową oryginalnego pliku
Najpierw chcemy wykonać kopię zapasową oryginalnego pliku on-line:
Następnie usuń oryginalny plik:
Utwórz skrypt opakowania
Uwaga: zamiast skryptu opakowania wielu łatwiej jest utworzyć łącze symboliczne,
pm-hibernate
abyhibernate
: Jak utworzyć łącze miękkie lub symboliczne?Lubię używać
gedit
do edycji, ale możesz go zastąpićnano
lub innymvim
edytorem:Pojawi się pusty plik. Wklej w następujących wierszach
Konwertuj skrypt opakowania na plik wykonywalny
Obecnie skrypt opakowania jest zwykłym plikiem. Musimy przekonwertować go na obiekt wykonywalny:
Mamy teraz operacyjny skrypt skryptowy, więc za każdym razem
pm-hibernate
nazywany jesthibernate
uruchomieniem. Jak wspomniano na górze, należyjournalctl
najpierw przejrzeć (opisane dalej) przed utworzeniem skryptu opakowania.Przejrzeć
journalctl
Możliwe są
grep
komunikaty hibernacjijournalctl
dotyczące możliwych problemów.Nie używam hibernacji, ale używam zawieszenia. Następujące polecenie pozwala mi zobaczyć wszystkie wiadomości,
suspend
które chcesz zastąpićhibernate
:źródło
sudo -H /usr/sbin/pm-hibernate
otwiera się edytor? Staram się postępować zgodnie z instrukcjami, nie chcę przyjmować założeńsudo -H gedit /usr/sbin/pm-hibernate
tak, jak właśnie się zmieniłem.