Jak mogę całkowicie wyłączyć Hibernację w Kubuntu?

11

Widziałem odpowiedź na temat wyłączania hibernacji? , ale nie mam takiego pliku. Być może dlatego, że ta sugestia została napisana dla Ubuntu, a nie Kubuntu (KDE, nie Gnome).

Nie mam zamiany na zaszyfrowanym dysku SSD, mój system zawiesza się (nie mogę nawet zmienić Caps Lock), jeśli przypadkowo naciśnie przycisk „Hibernuj” w „Zarządzanie energią”. Moja klawiatura ma przycisk Hibernacji ( Fn+ F4) obok przycisków regulacji głośności i za każdym razem, gdy naciskam zły klawisz, system zawiesza się po.

Więc jaki jest właściwy sposób, aby to wyłączyć? Jeśli nie ma rozwiązania, obejście jest również mile widziane.

Lekensteyn
źródło
+1 To (i wyłączenie zawieszenia) jest bardzo ważnym pytaniem dla każdego, kto korzysta z dysków OCZ Vertex2 ... funkcja zawieszenia / hibernacji może natychmiast zniszczyć dysk bez nadziei na odzyskanie jednego bajtu. :(
Russ

Odpowiedzi:

6

Wyzwalacze do hibernacji:

  • Naciśnij przycisk Hibernacji w opcji Rozpoczęcie -> Wyjdź -> Hibernacja
  • Naciśnij Hibernacja na ikonie Energia na pasku zadań
  • Wyślij sygnał dbus: qdbus org.kde.kded /modules/powerdevil suspend 4

Po uruchomieniu hibernacji jest to przepływ wykonywania:

  1. /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux nazywa się
  2. /usr/sbin/pm-hibernate jest wywoływany z kilkoma argumentami
  3. Logowanie zaczyna się /var/log/pm-suspend.log
  4. Haki są wykonywane, aby przygotować się do hibernacji. Te haki są umieszczone na /usr/lib/pm-utils/sleep.d/i /etc/pm/sleep.d, i sortowane według nazwy (numery pierwszy)
  5. performing hibernate jest zapisywany w dzienniku
  6. Wywoływana do_hibernatejest funkcja powłoki , instruująca system do hibernacji
  7. Po wznowieniu działania systemu wykonywane są haki w celu przywrócenia ze stanu hibernacji
  8. System działa ponownie

Aby wyłączyć hibernację, utwórz /etc/pm/sleep.d/000no-hibernationz następną treścią:

#!/bin/sh
# prevents hibernation
. "$PM_FUNCTIONS"
[ "$1" = "hibernate" ] && inhibit || true

Jak 000no-hibernationto się nazywa przed skryptami takimi jak 00logging(moduły wyjściowe i informacje o pamięci w dzienniku), żadne aplikacje ani moduły nie są przerywane ani rozładowywane. Nazwa ta została zainspirowana /usr/lib/pm-utils/sleep.d/000kernel-change. Uwaga na błąd nr 665651, który powoduje, że niezerowe wartości zwracane przez haki nie anulują zawieszenia lub hibernacji.

To rozwiązuje problem hibernacji. Chociaż ekran jest zablokowany, mogę z tym żyć. Jest znacznie lepszy w porównaniu do systemu powodującego awarię.

Lekensteyn
źródło
Dodałem, || trueaby zapobiec niezerowemu kodowi wyjścia, który zapobiega zawieszaniu. Testowany pod kątem działania w celu zawieszenia i blokowania hibernacji.
Lekensteyn,
Świetna odpowiedź! Bardzo dokładna .. Dziękujemy za opublikowanie tego, co znalazłeś. Rozszerzając go, ten skrypt (z raportu o błędzie, który podłączyłeś) czysto zatrzymuje zarówno hibernację, jak i zawieszenie. Edycja tylko jednego z nich jest banalna.
Russ