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
i pm-hibernate
. Użyj tych dwóch poleceń:
$ locate bin/hibernate
/mnt/c/Program Files (x86)/CyberPower PowerPanel Business Edition/bin/hibernate.dll
$ locate bin/pm-hibernate
/mnt/clone/usr/sbin/pm-hibernate
/mnt/old/usr/sbin/pm-hibernate
/usr/sbin/pm-hibernate
Skryptem opakowania, który chcesz utworzyć, będzie /usr/sbin/pm-hibernate
. Nie mam hibernate
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:
sudo cp -a /usr/sbin/pm-hibernate /usr/sbin/pm-hibernate.bak
Następnie usuń oryginalny plik:
sudo rm -f /usr/sbin/pm-hibernate
Utwórz skrypt opakowania
Uwaga: zamiast skryptu opakowania wielu łatwiej jest utworzyć łącze symboliczne, pm-hibernate
aby hibernate
: Jak utworzyć łącze miękkie lub symboliczne?
Lubię używać gedit
do edycji, ale możesz go zastąpić nano
lub innym vim
edytorem:
sudo -H gedit /usr/sbin/pm-hibernate
Pojawi się pusty plik. Wklej w następujących wierszach
#!/bin/bash
# Wrapper script to replace pm-hibernate with hibernate package
/usr/sbin/hibernate "$@"
Konwertuj skrypt opakowania na plik wykonywalny
Obecnie skrypt opakowania jest zwykłym plikiem. Musimy przekonwertować go na obiekt wykonywalny:
sudo chmod a+x /usr/sbin/pm-hibernate
Mamy teraz operacyjny skrypt skryptowy, więc za każdym razem pm-hibernate
nazywany jest hibernate
uruchomieniem. Jak wspomniano na górze, należy journalctl
najpierw przejrzeć (opisane dalej) przed utworzeniem skryptu opakowania.
Przejrzeć journalctl
Możliwe są grep
komunikaty hibernacji journalctl
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
:
$ journalctl -b | grep -i suspend
Oct 09 22:26:33 alien eyesome[21740]: Lid Open/Close: Wait 3 seconds to see if suspending
Oct 09 22:26:48 alien systemd[1]: Starting TLP suspend/resume...
Oct 09 22:26:48 alien systemd[1]: Started TLP suspend/resume.
Oct 09 22:26:48 alien systemd[1]: Starting Suspend...
Oct 09 22:26:48 alien systemd-sleep[22938]: /lib/systemd/system-sleep/sound: Going to suspend...
Oct 09 22:26:48 alien eyesome[22952]: Wakeup: Going to suspend. Creating: /tmp/eyesome-is-suspending
Oct 09 22:26:49 alien systemd-sleep[22938]: Suspending system...
Oct 10 04:26:38 alien kernel: PM: Suspending system (mem)
Oct 10 04:26:38 alien kernel: Suspending console(s) (use no_console_suspend to debug)
Oct 10 04:26:38 alien kernel: PM: suspend of devices complete after 1142.044 msecs
Oct 10 04:26:38 alien kernel: PM: late suspend of devices complete after 19.766 msecs
Oct 10 04:26:38 alien kernel: PM: noirq suspend of devices complete after 61.505 msecs
Oct 10 04:26:38 alien kernel: Suspended for 21583.011 seconds
Oct 10 04:26:38 alien eyesome[23137]: Lid Open/Close: Wait 3 seconds to see if suspending
Oct 10 04:26:38 alien systemd-sleep[22938]: /lib/systemd/system-sleep/sound: Waking up from suspend...
Oct 10 04:26:38 alien eyesome[23168]: Wakeup: Called from suspend.
Oct 10 04:26:41 alien systemd[1]: Started Suspend.
Oct 10 04:26:41 alien systemd[1]: Stopping TLP suspend/resume...
Oct 10 04:26:41 alien systemd[1]: Reached target Suspend.
Oct 10 04:26:41 alien systemd[1]: suspend.target: Unit is bound to inactive unit systemd-suspend.service. Stopping, too.
Oct 10 04:26:41 alien systemd[1]: Stopped target Suspend.
Oct 10 04:26:42 alien systemd[1]: Stopped TLP suspend/resume.
Oct 10 04:26:52 alien eyesome[24459]: Daemon: Removed file: /tmp/eyesome-is-suspending
Oct 10 05:47:09 alien eyesome[12434]: Lid Open/Close: Wait 3 seconds to see if suspending
Oct 10 05:51:43 alien systemd[1]: Starting TLP suspend/resume...
Oct 10 05:51:44 alien systemd[1]: Started TLP suspend/resume.
Oct 10 05:51:44 alien systemd[1]: Starting Suspend...
Oct 10 05:51:44 alien systemd-sleep[28353]: /lib/systemd/system-sleep/sound: Going to suspend...
Oct 10 05:51:44 alien eyesome[28367]: Wakeup: Suspending. Creating /tmp/eyesome-is-suspending
Oct 10 05:51:45 alien systemd-sleep[28353]: Suspending system...
Oct 10 16:30:59 alien kernel: PM: Suspending system (mem)
Oct 10 16:30:59 alien kernel: Suspending console(s) (use no_console_suspend to debug)
Oct 10 16:30:59 alien kernel: PM: suspend of devices complete after 623.519 msecs
Oct 10 16:30:59 alien kernel: PM: late suspend of devices complete after 19.654 msecs
Oct 10 16:30:59 alien kernel: PM: noirq suspend of devices complete after 61.549 msecs
Oct 10 16:30:59 alien kernel: Suspended for 38348.943 seconds
Oct 10 16:30:59 alien eyesome[28563]: Lid Open/Close: Wait 3 seconds to see if suspending
Oct 10 16:30:59 alien systemd-sleep[28353]: /lib/systemd/system-sleep/sound: Waking up from suspend...
Oct 10 16:30:59 alien eyesome[28599]: Wakeup: Called from suspend.
Oct 10 16:31:02 alien systemd[1]: Started Suspend.
Oct 10 16:31:02 alien systemd[1]: Stopping TLP suspend/resume...
Oct 10 16:31:02 alien systemd[1]: Reached target Suspend.
Oct 10 16:31:02 alien systemd[1]: suspend.target: Unit is bound to inactive unit systemd-suspend.service. Stopping, too.
Oct 10 16:31:02 alien systemd[1]: Stopped target Suspend.
Oct 10 16:31:03 alien systemd[1]: Stopped TLP suspend/resume.
Oct 10 16:31:13 alien eyesome[30020]: Daemon: Removed file: /tmp/eyesome-is-suspending