Gdzie hybryda zawiesza się?

16

Więc co się stało z hybrydowym zawieszeniem, gdzie zawieszałoby się zarówno na pamięci RAM, jak i na dysku? Kilka lat temu było trochę gorąco, ale wygląda na to, że zostało upuszczone. Czy jest jakiś sposób na skonfigurowanie tego w najnowszych wersjach Ubuntu?

Ryan C. Thompson
źródło
Jaki jest sens zawieszenia hybrydowego?
LassePoulsen
5
Hybrydowe zawieszanie ma miejsce wtedy, gdy komputer jednocześnie zawiesza dyski i dyski. Otrzymujesz więc szybką prędkość wznawiania zawieszenia do pamięci RAM, ale nie tracisz sesji, jeśli stracisz energię lub skończy się bateria. Więc w zasadzie jest to lepsze niż samo zawieszenie do pamięci RAM lub zawieszenie na dysk. Dlatego zastanawiam się, dlaczego wydaje się, że zniknął z list funkcji współczesnych dystrybucji Linuksa.
Ryan C. Thompson,
W zakładce „Zasilanie bateryjne” w menedżerze zasilania widzę opcję „Gdy poziom naładowania baterii jest krytycznie niski: hibernacja”, być może eliminuje to potrzebę zawieszenia hybrydowego?
Jorge Castro,
1
@Jorge: Innym przypadkiem użycia jest to, że z jakiegoś powodu musisz wyjąć baterię z laptopa (lub odłączyć zawieszony komputer stacjonarny). Jeśli masz zawieszenie hybrydowe, nie będzie to miało znaczenia. Jeśli regularnie korzystasz z funkcji zawieszenia do pamięci RAM, musisz wznowić, a następnie zawiesić na dysk.
Ryan C. Thompson,

Odpowiedzi:

9

Istnieje program o nazwie, pm-is-supportedktóry można wykorzystać do sprawdzenia możliwości zawieszenia systemu.

W moim systemie są wyniki (0 oznacza obsługiwane, 1 oznacza nieobsługiwane):

$ pm-is-supported --suspend ; echo $?  
0  
$ pm-is-supported --hibernate ; echo $?
0
$ pm-is-supported --suspend-hybrid ; echo $?
1

Strona pm-is-supportedsugeruje, że s2both obsługuje zawieszenie hybrydowe. Zainstalowałem s2both, dostępny w uswsusppakiecie, ale nadal informuje, że zawieszenie hybrydowe nie jest obsługiwane. Mam przeczucie, że potrzebuje restartu, ponieważ zaktualizował obraz initrd. Uruchomię się ponownie i zgłoś. Życz mi powodzenia .

Aktualizacja: Uruchomienie sudo s2bothzapisało migawkę na dysku i zostało poprawnie zawieszone w pamięci RAM, ale kiedy nacisnąłem klawisz, aby wznowić restart systemu (i nie przywróciłem migawki z dysku).

Myślę, że coś jest nie tak z uswsusppakietem w Ubuntu. splashyPakiet (który jest używany przez uswsusp) ma konfliktu pliku z lsb-basektórego został pozostawiony utrwalona od Jaunty ( https://bugs.launchpad.net/ubuntu/+source/splashy/+bug/328089 )

Spróbuj uruchomić sudo s2bothlub sudo pm-suspend-hybridsprawdź, czy działa w twoim systemie.

Li Lo
źródło
Próbowałem s2bothi uzyskałem takie same wyniki jak ty. Próbowałem także przejść na jądro smokingu i powiedzieć pm-utils, aby używało tuxonice, a następnie używając zawieszenia hybrydowego tuxonice przez pm-suspend-hybrid. Ekran nigdy się nie włączał po wznowieniu, ale Control + Alt + Delete działało, aby ponownie uruchomić komputer, więc myślę, że faktycznie działało, ale nie udało się włączyć ekranu.
Ryan C. Thompson,
Myślę, że to nie jest obsługiwane.
Ryan C. Thompson,
0

To pytanie pojawia się na tyle często w Google, że myślę, że warto się zastanawiać. Li wyjaśnia, że ​​hybrydowe zawieszenie doskonale. Jednak s2both wymaga uswsusp (a zatem nie używa zawieszenia w jądrze), a pm-hsuspend-hybrid robi coś złego, ponieważ jest nieobsługiwany [1].

Oto jak włączyć płynne zawieszanie hybrydowe:

  • Zastąp wywołanie „suspend”, aby wykonać „hybrid_suspend” w pm-utils.
    % cat /etc/pm/config.d/00-use-suspend-hybrid
    # Zawsze używaj suspend_hybrid zamiast zawieszenia
    if ["$ METHOD" = "suspend"]; następnie
        METODA = zawiesina hybrydowa
    fi
  • Wykonaj kopię zapasową funkcji / usr / lib / pm-utils / pm-functions
  • Pobierz łatkę stąd: https://bugs.freedesktop.org/attachment.cgi?id=68712
    • Ta łatka umożliwia zawieszenie hybrydowe, jeśli jest dostępne (tj. W jądrach 3.6+)
  • Zastosuj go za pomocą „łatki-p0” lub połącz ręcznie, jeśli to się nie powiedzie

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:

diff --git a / pm / pm-functions.in b / pm / pm-functions.in
--- a / pm / pm-functions.in
+++ b / pm / pm-functions.in
@@ -316,8 + 316,28 @@ jeśli [-z "$ HIBERNATE_MODULE"] && \
    {
        [-n „$ {HIBERNATE_MODE}”] && \
        grep -qw "$ {HIBERNATE_MODE}" / sys / power / disk && \
+ HIBERNATE_MODE_SAVE = $ (cat / sys / power / disk) && \
+ HIBERNATE_MODE_SAVE = "$ {HIBERNATE_MODE_SAVE ## * [}" && \
+ HIBERNATE_MODE_SAVE = "$ {HIBERNATE_MODE_SAVE %%] *}" && \
        echo -n "$ {HIBERNATE_MODE}"> / sys / power / disk
        echo -n „dysk”> / sys / power / state
+ RET = $?
+ echo -n "$ HIBERNATE_MODE_SAVE"> / sys / power / disk
+ zwróć „$ RET”
+}
+ fi
+
+ # dla jąder, które obsługują zawieszenie do obu (tj. hybrydowe zawieszenie)
+ # od jądra 3.6
+ jeśli [-z „$ SUSPEND_HYBRID_MODULE”] && \
+ [-f / sys / power / disk] && \
+ grep -q dysk / sys / power / state && \
+ grep -q suspend / sys / power / disk; następnie
+ SUSPEND_HYBRID_MODULE = „jądro”
+ do_suspend_hybrid ()
+ {
+ HIBERNATE_MODE = „zawieś”
+ do_hibernate
    }
 fi

Źródła:

[1]: pm-utils poprzedza zawieszenie hybrydowe w jądrze dostępne w jądrach 3.6+. To, co faktycznie robi PM-Suspend-Hybrid, to domyślnie przejście komputera w tryb uśpienia na 15 minut, a następnie hibernacja.

Rohan Dhruva
źródło