Tidur hibrida tidak langsung
Ini adalah metode yang lebih lama: tunda dulu dan kemudian bangun untuk hibernate setelah jeda (15 menit secara default). Gunakan ini dengan kernel Linux sebelum 3.6, atau jika Anda suka itu tidak menggunakan daya apa pun setelah 15 menit lagi.
Tambahkan file /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
Anda mungkin ingin memastikan bahwa metode hybrid didukung pada sistem Anda melalui kode berikut. Jika berbunyi "0" itu seharusnya berfungsi:
sudo pm-is-supported --suspend-hybrid && echo $?
Hibrida nyata ditangguhkan dengan Linux 3.6+
Jika Anda memiliki kernel Linux 3.6, Anda dapat menggunakan yang berikut, yang akan ditangguhkan ke disk dan RAM dari awal.
Tambahkan file /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
Ini akan selalu menulis gambar ke disk dan kemudian menangguhkan ke RAM, memiliki manfaat bahwa melanjutkan kembali akan selalu cepat (selama baterai tidak habis) dan bahwa mesin tidak akan bangun untuk waktu yang singkat (setelah PM_HIBERNATE_DELAY) untuk hibernasi secara nyata.
Kekurangannya adalah prosesnya lebih lama (karena selalu hibernasi ke disk), dan baterai Anda mungkin habis dalam jangka panjang (misalnya setelah 12 jam).
resume
argumen dalam/etc/default/grub.conf
. Juga sebagai pengguna nvidia yang harus saya aturnomodeset
. Jadi dihasilkan entri grub dalam kasus saya adalah:GRUB_CMDLINE_LINUX_DEFAULT="nomodeset resume=UUID=uuidofswappartition"
. Jangan lupagrub-update
. Dan juga beberapa modul harus dibongkar sehingga dibuat file/etc/pm/config.d/00-unload_modules
dengan barisSUSPEND_MODULES="ath5k r8169"
dan hanya untuk memastikan saya juga mengganti nama 00-use-suspend-hybrid to10-use-suspend-hybrid
Ubuntu 18,04 opsi berjangka waktu
Di Ubuntu 18.04 telah memiliki opsi berjangka waktu baru. In
systemd
adalah tersedia mode barususpend-then-hibernate
. Ini akan mulai dengan mode tidur dan kemudian beralih ke mode hibernasi setelah waktu yang tetap.Dalam
hybrid-sleep
mode, bagian hibernasi menjadi efektif hanya ketika baterai sangat lemah dan sistem dimatikan.Untuk mulai menggunakan fungsi ini, Anda perlu membuat file
/etc/systemd/sleep.conf
dengan konten berikutnya:Ini akan berubah dari tidur menjadi hibernasi setelah 1 jam tidur. Anda dapat mengedit
HibernateDelaySec
untuk mengubah penundaan ke hibernasi.Pertama, uji apakah suspend-then-hibernate berfungsi menggunakan systemd
Buka terminal dengan menekan Ctrl+ Alt+ Tdan masukkan:
Jika berhasil membuatnya permanen.
Buka file
/etc/systemd/logind.conf
menggunakan editor pilihan Anda. Anda perlu meminta kekuatan administratif Anda dengansudo
,gksudo
ataupkexec
mengedit file ini.Temukan dua baris:
Catatan, Baris-baris ini dikomentari
#
di depannya. Inisuspend
adalah tindakan default. Hapus#
dan ubahsuspend
kesuspend-then-hibernate
dalam dua baris ini sehingga terlihat seperti ini:Simpan file. Logout dan log in atau restart
logind
layanan dengan perintah:peringatan! sesi pengguna Anda akan dimulai kembali
Sumber: Tutup Ditutup, Tangguhkan lalu Hibernasi
Ubuntu 16.04 dan lebih tinggi
The solusi oleh blueyed untuk hybrid Estat menangguhkan dengan Linux 3.6+ tidak bekerja untuk saya. Saya menduga ini karena Ubuntu 16.04 menggunakan
systemd
dan tidak menggunakan file/etc/pm/config.d/00-use-suspend-hybrid
.Pertama, uji apakah hibernate dan hybrid-sleep berfungsi menggunakan systemd
Buka terminal dengan menekan Ctrl+ Alt+ Tdan masukkan:
Ini akan membuat komputer Anda hibernasi. Untuk mencoba tidur hibrida, masukkan:
Jika berhasil membuatnya permanen.
Buka file
/etc/systemd/logind.conf
menggunakan editor pilihan Anda. Anda perlu meminta kekuatan administratif Anda dengansudo
,gksudo
ataupkexec
mengedit file ini.Temukan dua baris:
Catatan, Baris-baris ini dikomentari
#
di depannya. Inisuspend
adalah tindakan default. Hapus#
dan ubahsuspend
kehybrid-sleep
dalam dua baris ini sehingga terlihat seperti ini:Simpan file. Logout dan log in kembali.
catatan:
suspend
atauhybrid-sleep
ada opsi ketigahibernate
,.Suspend
dari menu cog menempatkan komputer untuk menunda normal tidak hibrida-tidur.Sumber: https://superuser.com/questions/719447/how-to-use-systemd-hybrid-sleep-instead-of-suspend-under-gnome-in-linux
saya harap ini membantu
sumber
Dalam 12.04 saya perhatikan bahwa ketika hibernasi dipicu (menggunakan
PM_HIBERNATE_DELAY=XX
), resume / mencairkan skrip shell tidak menghapus variabel grub recordfail. Karenanya grub tidak melakukan autoboot.Waktu habis diatur ke -1 dan menunggu pilihan pengguna. Saya menduga ini memerlukan beberapa pengeditan skrip di
/etc/pm/sleep.d/10_grub-common
. Saya seorang pemula jadi saya belum mencoba-coba mencari tahu perubahan yang tepat sayangnya.sumber
Pertanyaan ini cukup sering muncul di Google sehingga saya pikir ini layak untuk ditabrak. Metode yang dijelaskan di sini adalah (imo) bukan penangguhan hibrid. Ini "hibernasi setelah X menit ditangguhkan". True hybrid suspend menulis RAM Anda ke disk dan kemudian pergi dalam kondisi daya rendah (mode tidur). Sementara itu membutuhkan waktu lebih lama, resume adalah instan ketika mesin memiliki baterai yang tersisa, jika tidak dilanjutkan dari hard disk. Perilaku ini adalah apa yang kebanyakan orang tahu sebagai tidur hibrida, dan digunakan secara default di laptop Windows dan Mac yang lebih baru.
Berikut cara mengaktifkan penangguhan hibrid nyata :
Metode ini berfungsi untuk saya di Sony Vaio SVS saya.
PS: Mereproduksi tambalan di sini jika file dihapus di masa depan:
Sumber:
sumber
Ada solusi lain tanpa menambahkan file apa pun di config.d, hanya menggunakan wakealarm di / sys / class / rtc / rtc0. Manfaatkan kode usang di pm-functions (/ usr / lib / pm-utils) setelah komentar # karena kernel tidak secara langsung mendukung ..., (karena kernel saat ini (setelah 3,6 sesuatu) tidak langsung mendukung). Kembalikan kode itu dan masukkan bagian do_suspend () alih-alih do_suspend_hybrid (), dan gunakan patch untuk fungsi-pm (sampai mereka memperbaikinya).
Kode usang (menangguhkan lalu hibernasi ketika suspend_hybrid dipanggil):
Direkomendasikan. Lebih mudah menggunakan uswsusp sementara pada saat yang sama memaksimalkan manfaat s2both yaitu s2both saat ditangguhkan. Masukkan kode yang dikembalikan ke do_suspend () bagian dari modul uswsusp (/usr/lib/pm-utils/module.d).
Kode yang dikembalikan (suspend_hybrid saat suspend dipanggil):
Dengan uswsusp, kita dapat melihat progres suspend / hibernate dan proses sebaliknya ditampilkan dalam teks, bahkan kita dapat membatalkannya dengan menekan backspace. Tanpa uswsusp, suspend / hibernate hanya muncul-menghilang secara mengganggu, terutama ketika wakealarm dipicu dan menjalankan hibernate (s2disk di uswsusp). Atur periode tidur sebelum hibernasi di tempat biasa di file pm-functions.
Inilah mod uswsusp: (ingat, modul ini dipanggil dari pm-functions sehingga variabel yang dimasukkan adalah sama)
sumber
Jawaban oleh user68186 untuk Ubuntu 16.04 tidak berhasil untuk saya. Namun, solusinya di sini .
Pertama, pastikan hibernasi berfungsi. Kemudian
Dalam pengaturan daya saya, opsi ini muncul sebagai kosong, tetapi mereka berfungsi sebagaimana mestinya.
sumber
Di Ubuntu 18.04 lebih mudah. Dalam systemd tersedia mode baru suspend-then-hibernate . Untuk mulai menggunakan fungsi ini, Anda perlu membuat file /etc/systemd/sleep.conf dengan konten berikutnya:
Kemudian Anda dapat mengujinya dengan perintah:
(Anda dapat mengedit HibernateDelaySec untuk mengurangi penundaan menjadi hibernasi). Jika semua berfungsi dengan baik Anda dapat mengubah Tutup Tutup Tindakan, untuk melakukannya Anda perlu mengedit file /etc/systemd/logind.conf
Anda perlu menemukan opsi HandleLidSwitch = , batalkan komentar dan ubah ke HandleLidSwitch = menangguhkan-lalu-hibernasi . Maka Anda perlu me-restart layanan logind (wirning! Sesi pengguna Anda akan direstart) dengan perintah berikut:
Itu saja! Sekarang Anda dapat menggunakan fungsi yang bagus ini.
sumber