Pośredni sen hybrydowy
Jest to starsza metoda: najpierw wstrzymaj, a następnie obudź się po hibernacji po pewnym czasie (domyślnie 15 minut). Użyj tego z jądrem Linuksa wcześniejszym niż 3.6, lub jeśli chcesz, nie zużywa żadnej mocy po 15 minutach.
Dodaj plik /etc/pm/config.d/00-use-suspend-hybrid
:
# Always use suspend_hybrid instead of suspend
if [ "$METHOD" = "suspend" ]; then
METHOD=suspend_hybrid
fi
# The delay after which hibernation gets triggered (default: 900 seconds, 15 minutes):
PM_HIBERNATE_DELAY=900
Możesz upewnić się, że metoda hybrydowa jest obsługiwana w systemie za pomocą następującego kodu. Jeśli mówi „0”, powinno działać:
sudo pm-is-supported --suspend-hybrid && echo $?
Prawdziwe hybrydowe zawieszanie w systemie Linux 3.6+
Jeśli masz jądro Linuksa 3.6, możesz użyć następujących elementów, które od początku zawieszą się zarówno na dysku, jak i pamięci RAM.
Dodaj plik /etc/pm/config.d/00-use-suspend-hybrid
:
# WORKAROUND: always set the default hibernate mode first (normal mode)
# (not required if you have the patch mentioned by Rohan below (http://askubuntu.com/a/344879/169))
HIBERNATE_MODE=platform
# Always use hibernate instead of suspend, but with "suspend to both"
if [ "$METHOD" = "suspend" ]; then
METHOD=hibernate
HIBERNATE_MODE=suspend
fi
# Make sure to use the kernel's method, in case uswsusp is installed etc.
SLEEP_MODULE=kernel
Spowoduje to zawsze zapisanie obrazu na dysku, a następnie zawieszenie w pamięci RAM, dzięki czemu wznowienie będzie zawsze szybkie (dopóki bateria się nie wyczerpie) i że urządzenie nie obudzi się przez krótki czas (po PM_HIBERNATE_DELAY) hibernować na serio.
Wadą jest to, że proces trwa dłużej (ponieważ zawsze hibernuje na dysk) i że bateria może wyczerpać się na dłuższą metę (np. Po 12 godzinach).
resume
kłótnie/etc/default/grub.conf
. Również jako użytkownik nvidii musiałem ustawićnomodeset
. Tak otrzymaną wpis grub w moim przypadku jest:GRUB_CMDLINE_LINUX_DEFAULT="nomodeset resume=UUID=uuidofswappartition"
. Nie zapomnijgrub-update
. A także niektóre moduły muszą zostać rozładowane, więc utworzony plik/etc/pm/config.d/00-unload_modules
z liniąSUSPEND_MODULES="ath5k r8169"
i żeby się upewnić, że10-use-suspend-hybrid
Ubuntu 18.04 opcja czasowa
W Ubuntu 18.04 ma nową opcję czasową. W
systemd
to availiable nowy trybsuspend-then-hibernate
. Rozpocznie się to od trybu uśpienia, a następnie po ustalonym czasie przejdzie w tryb hibernacji.W
hybrid-sleep
trybie hibernacja działa tylko wtedy, gdy poziom naładowania akumulatora jest krytycznie niski, a system wyłącza się.Aby rozpocząć korzystanie z tej funkcji, musisz utworzyć plik
/etc/systemd/sleep.conf
z następną treścią:Przejdzie ze snu do hibernacji po 1 godzinie snu. Możesz edytować,
HibernateDelaySec
aby zmienić opóźnienie na hibernację.Najpierw sprawdź, czy funkcja zawieszenia, a następnie hibernacji działa przy użyciu systemd
Otwórz terminal, naciskając Ctrl+ Alt+ Ti wprowadź:
Jeśli to działa, zrób to na stałe.
Otwórz plik
/etc/systemd/logind.conf
za pomocą preferowanego edytora. Trzeba będzie powołać swój potencjał administracyjny przezsudo
,gksudo
lubpkexec
edytować ten plik.Znajdź dwie linie:
Uwaga: te wiersze są komentowane
#
przed nimi. Jestsuspend
to akcja domyślna. Usuń#
i zmieńsuspend
nasuspend-then-hibernate
w tych dwóch wierszach, aby wyglądały tak:Zapisz plik. Wyloguj się i zaloguj ponownie lub uruchom ponownie
logind
usługę za pomocą polecenia:ostrzeżenie! twoja sesja użytkownika zostanie zrestartowana
Źródło: Lid Closed Suspend następnie Hibernacja
Ubuntu 16.04 i nowsze wersje
Rozwiązanie przez blueyed Real hybryda zawieszającego z Linux 3.6+ nie praca dla mnie. Podejrzewam, że
systemd
dzieje się tak, ponieważ system Ubuntu 16.04 używa i nie korzysta z pliku/etc/pm/config.d/00-use-suspend-hybrid
.Najpierw sprawdź, czy hibernacja i sen hybrydowy działają przy użyciu systemd
Otwórz terminal, naciskając Ctrl+ Alt+ Ti wprowadź:
To powinno doprowadzić twój komputer do hibernacji. Aby wypróbować tryb hybrydowy, wprowadź:
Jeśli to działa, zrób to na stałe.
Otwórz plik
/etc/systemd/logind.conf
za pomocą preferowanego edytora. Trzeba będzie powołać swój potencjał administracyjny przezsudo
,gksudo
lubpkexec
edytować ten plik.Znajdź dwie linie:
Uwaga: te wiersze są komentowane
#
przed nimi. Jestsuspend
to akcja domyślna. Usuń#
i zmieńsuspend
nahybrid-sleep
w tych dwóch wierszach, aby wyglądały tak:Zapisz plik. Wyloguj się i zaloguj ponownie.
Uwaga:
suspend
lubhybrid-sleep
jest jeszcze trzecia opcja,hibernate
.Suspend
menu ząb powoduje, że komputer normalnie zawiesza się, a nie tryb hybrydowy.Źródło: https://superuser.com/questions/719447/how-to-use-systemd-hybrid-sleep-instead-of-suspend-under-gnome-in-linux
mam nadzieję, że to pomoże
źródło
W 12.04 zauważyłem, że kiedy hibernacja zostanie uruchomiona (za pomocą
PM_HIBERNATE_DELAY=XX
), wznawianie / rozmrażanie skryptów powłoki nie powoduje rozbrojenia zmiennej grub recordfail. Dlatego grub nie uruchamia się automatycznie.Limit czasu jest ustawiony na -1 i oczekuje na wybór użytkownika. Zgaduję, że wymaga to edycji skryptów w
/etc/pm/sleep.d/10_grub-common
. Jestem nowicjuszem, więc nie starałem się niestety ustalić dokładnej zmiany.źródło
To pytanie pojawia się na tyle często w Google, że myślę, że warto na niego wpadać. Metodą opisaną tutaj jest (imo) nie hybrydowe zawieszanie. Jest to „hibernacja po X minutach zawieszenia”. Prawdziwe zawieszenie hybrydowe zapisuje pamięć RAM na dysk, a następnie przechodzi w stan niskiego poboru mocy (tryb uśpienia). Podczas gdy trwa to dłużej, wznawianie jest natychmiastowe, dopóki w urządzeniu nie ma baterii, w przeciwnym razie wznawia się z dysku twardego. Takie zachowanie jest znane jako większość uśpienia hybrydowego i jest używane domyślnie w nowszych laptopach z systemem Windows i Mac.
Oto jak włączyć prawdziwe zawieszenie hybrydowe:
Ta metoda działa dla mnie na moim Sony Vaio SVS.
PS: Odtworzenie łatki tutaj na wypadek, gdyby plik został usunięty w przyszłości:
Źródła:
źródło
Istnieje inne rozwiązanie bez dodawania żadnego pliku w config.d, po prostu użycie wakealarm w / sys / class / rtc / rtc0. Używaj przestarzałego kodu w funkcjach pm (/ usr / lib / pm-utils) po komentarzach #, ponieważ jądro nie obsługuje bezpośrednio ..., (ponieważ obecne jądro (po 3.6 coś) bezpośrednio obsługuje). Cofnij ten kod i wstaw część do_suspend () zamiast do_suspend_hybrid () i użyj łatki dla funkcji pm (dopóki nie naprawią).
Przestarzały kod (wstrzymaj, a następnie hibernuj, gdy wywoływana jest funkcja suspend_hybrid):
Zalecana. Jeszcze łatwiejszy w użyciu uswsusp, jednocześnie maksymalizując korzyści z s2both, tj. S2both po zawieszeniu. Umieść odwrócony kod w części do_suspend () modułu uswsusp (/usr/lib/pm-utils/module.d).
Cofnięty kod (suspend_hybrid po wywołaniu zawieszenia):
Za pomocą uswsusp możemy zobaczyć postęp zawieszenia / hibernacji i proces odwrotny wyświetlany w tekście, nawet możemy go przerwać, naciskając klawisz Backspace. Bez uswsusp, zawieszanie / hibernacja po prostu pojawiają się - znikają irytujące, szczególnie gdy wakealarm jest uruchamiany i wykonuje hibernację (s2disk w uswsusp). Ustaw czas snu przed hibernacją w zwykłym miejscu w pliku funkcji pm.
Oto mod uswsusp: (pamiętaj, ten moduł jest wywoływany z funkcji pm, więc wstawiane zmienne są takie same)
źródło
Odpowiedź użytkownika 68686 dla Ubuntu 16.04 nie działała dla mnie. Jednak rozwiązało to tutaj .
Najpierw upewnij się, że hibernacja działa. Następnie
W moich ustawieniach mocy opcje te są wyświetlane jako puste, ale działają zgodnie z przeznaczeniem.
źródło
W Ubuntu 18.04 jest znacznie łatwiejszy. W systemd dostępny jest nowy tryb wstrzymania, a następnie hibernacji . Aby rozpocząć korzystanie z tej funkcji, musisz utworzyć plik /etc/systemd/sleep.conf z następną zawartością:
Następnie możesz to przetestować za pomocą polecenia:
(możesz edytować HibernateDelaySec, aby zmniejszyć opóźnienie do hibernacji). Jeśli wszystko działa dobrze, możesz zmienić akcję Zamknij pokrywkę, aby to zrobić, musisz edytować plik /etc/systemd/logind.conf
Musisz znaleźć opcję HandleLidSwitch = , odkomentować i zmienić na HandleLidSwitch = zawiesić, a następnie hibernację . Następnie musisz zrestartować usługę logowania (wirowanie! Sesja użytkownika zostanie zrestartowana) za pomocą następnego polecenia:
To wszystko! Teraz możesz użyć tej ładnej funkcji.
źródło