Paksa hibernasi menggunakan hibernate alih-alih pm-hibernate


15

Saya menjalankan 18.04 dan mencoba agar sistem saya menggunakan hibernate bukannya pm-hibernate ketika tutup laptop saya tutup.

Saya memiliki partisi swap 20GB pada 16GB RAM, jadi cukup ruang.

Ketika saya menggunakan pm-hibernate, saya mendapatkan kesalahan apci kecil yang muncul dengan sangat cepat ketika keduanya hibernasi dan memulihkan yang tidak bisa saya baca. Sementara hibernate berfungsi dalam arti tampaknya membuang ke disk dan memulihkan dari disk, tampaknya kondisi tidur karena menggunakan baterai pada tingkat normal, daripada mematikan sepenuhnya dan menghentikan penggunaan baterai.

Namun, ketika saya menggunakan hibernate yang diinstal oleh:

sudo apt-get install hibernate

Dan lari:

sudo hibernate

Dan kembalikan dari itu, saya perhatikan mesin saya memang mematikan --- LED berhenti berdenyut, dll --- dan penggunaan baterai menjadi nol. Ini adalah perilaku yang saya ingin lihat ketika tutup saya tertutup, bukan perilaku tidur yang menggunakan baterai seolah-olah saya menggunakan komputer secara aktif.

Saya telah mengikuti panduan ini:

diubah

/etc/systemd/logind.conf

untuk memasukkan:

#HandleLidSwitch=suspend
HandlelidSwitch=hibernate

Dan menambahkan perubahan partisi swap saya di:

/etc/default/grub

Untuk memasukkan resume = tautan yang benar, dan meminta s2disk secara khusus dengan:

sudo cat /etc/pm/config.d/00sleep_module
SLEEP_MODULE="swsusp"

Saya telah membaca askubuntus terkait berikut:

Saya juga telah membaca tautan ini di forum Lenovo dan Arch:

Bagaimana saya bisa memastikan bahwa hibernate yang dipanggil oleh tutup-tutup adalah hibernate bukan pm-hibernate?

Memperbarui

Ini masih merupakan masalah dan masih membuat Carbon X1 6 gen pada dasarnya tidak berguna dengan ubuntu. Solusi apa pun yang dapat memperbaikinya dan mungkin menambahkan prompt login mungkin hampir sama baiknya dengan mesin Windows sejak 4 tahun lalu ...;)


@Mittenchops Saya dapat mengatasi masalah ini untuk saya, silakan lihat askubuntu.com/questions/1028947/…
Christopher Will

1
Bisakah Anda menambahkan data log dari siklus hibernate-resume penuh ke pertanyaan Anda? Itu harus di /var/log/pm-suspend.log. Terima kasih.
David Foerster

@Mittenchops tidak yakin tapi mungkin masalah saya terkait dengan masalah Anda. punyaku juga merupakan perangkat keras Lenovo.
ViBE

1
Saya tidak menggunakan hibernasi tetapi Anda dapat mencoba mengubah nama /usr/sbin/pm-hibernatemenjadi /usr/sbin/pm-hibernate.OLD. Kemudian buat /usr/sbin/pm-hibernatebash scxript yang berisi hibernateperintah. Gunakan type -a hibernateuntuk menemukan jalur yang tepat untuk perintah. Itu tidak ada di sistem saya karena saya belum menginstalnya.
WinEunuuchs2Unix

Saya telah memperbarui jawaban saya dengan skrip pembungkus yang diusulkan pada 14 Juli 1818.
WinEunuuchs2Unix

Jawaban:


1

Saya juga benci harus melewati URL sehingga saya akan menyalin dan menempelkan informasi dan melampirkan halaman web ke bawah. Saya tidak melihat ini di tautan Anda.

Saat membaca ini, saya perhatikan bahwa hibernasi mungkin tidak berfungsi jika Anda diformat dengan sistem file btrfs? Jadi, bagaimana hibernasi diaktifkan secara permanen di Ubuntu 16.04?

Untuk menjadikan proses hibernasi Ubuntu permanen, Anda perlu membuat file baru menggunakan editor teks pada baris perintah:

sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

Sistem membutuhkan hak akses root untuk mengaktifkan opsi hibernasi, karenanya, perintah sudo harus ditambahkan. Anda dapat menggunakan editor teks lain seperti vi, gedit, emacs, dll.

Sekarang, salin dan tempel teks berikut ke file (gunakan mouse; pintasan keyboard tidak akan berfungsi):

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes

Tekan CTRL+ Ountuk menyimpan, dan CTRL+ Xuntuk keluar dari editor nano.

Sekarang, logout dari sistem Anda dan kemudian login lagi. Anda sekarang akan melihat opsi hibernasi, bersama dengan opsi Shut Down dan Suspend.

Tautan untuk kenyamanan Anda adalah: https://fossbytes.com/enable-disable-hibernate-option-ubuntu-power-menu/


2
Tampaknya ini tidak berfungsi di 18.04
Mittenchops

1

Dua pilihan

Opsi pertama (terdaftar kedua) adalah untuk meninjau journalctlkemungkinan pesan kesalahan terkait dengan hibernasi. Jika opsi pertama tidak menghasilkan hasil, opsi kedua adalah membuat skrip wrapper yang menggantikan pm-hibernatedengan `hibernate.

Buat skrip Wrapper

Membuat skrip pembungkus memungkinkan hibernateuntuk menggantipm-hibernate .

Temukan direktori perintah berada di

Sebelum membuat skrip wrapper, Anda perlu mengetahui direktori hibernatedan pm-hibernateperintah yang berada. Gunakan dua perintah ini:

$ 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

Script wrapper yang ingin Anda buat akan menjadi /usr/sbin/pm-hibernate. Saya tidak memiliki hibernatepaket yang diinstal sehingga pencarian pertama hanya menemukan utilitas Windows. Menurut daftar file paket , itu harus mengungkapkan/usr/sbin/hibernate bersama dengan beberapa file lainnya.

Cadangkan file asli

Pertama, kami ingin membuat salinan cadangan online dari file asli:

sudo cp -a /usr/sbin/pm-hibernate /usr/sbin/pm-hibernate.bak

Selanjutnya hapus file asli:

sudo rm -f /usr/sbin/pm-hibernate

Buat skrip wrapper

Catatan: alih-alih skrip pembungkus, banyak orang merasa lebih mudah membuat tautan simbolik pm-hibernateke hibernate: Bagaimana cara membuat tautan lunak atau simbolik?

Saya suka menggunakan gedituntuk mengedit tetapi Anda dapat menggantinya dengan nanoatau vimatau editor mana pun yang Anda inginkan:

sudo -H gedit /usr/sbin/pm-hibernate

File kosong akan muncul. Tempel di baris berikut

#!/bin/bash
# Wrapper script to replace pm-hibernate with hibernate package
/usr/sbin/hibernate "$@"

Ubah skrip wrapper menjadi executable

Saat ini skrip wrapper adalah file biasa. Kita perlu mengubahnya menjadi objek yang dapat dieksekusi:

sudo chmod a+x /usr/sbin/pm-hibernate

Kami sekarang memiliki skrip pembungkus operasional sehingga setiap kali pm-hibernatedisebut hibernateberjalan sebagai gantinya. Seperti yang disebutkan di atas, Anda harus meninjaujournalctl dulu (dijelaskan berikutnya) sebelum membuat skrip wrapper.

Ulasan journalctl

Anda dapat grepmengirim pesan hibernasi kejournalctl untuk kemungkinan masalah.

Saya tidak menggunakan hibernasi tetapi saya menggunakan menunda. Perintah berikut memungkinkan saya untuk melihat semua pesan suspendyang ingin Anda gantikan dengan 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

Bagaimana cara sudo -H /usr/sbin/pm-hibernatemembuka editor? Saya mencoba mengikuti instruksi, tidak ingin membuat asumsi
Stewart

1
@ Mulailah tangkapan yang bagus. Itu harus dibaca sudo -H gedit /usr/sbin/pm-hibernatekarena saya baru saja berubah.
WinEunuuchs2Unix

1
@Stewart Apakah Anda hibernasi dengan tutup-dekat, tombol daya atau opsi menu?
WinEunuuchs2Unix

1
Akhirnya perbaiki! Saran Anda memberi saya petunjuk yang cukup, bahwa dengan beberapa google-fu, saya berakhir di unix.stackexchange.com/a/386837
Stewart

1
@Mulailah Senang mendengarnya. Terima kasih telah menunjukkan jawaban Unix & Linux. Saya memilihnya.
WinEunuuchs2Unix
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.