Примушуйте зимувати, використовуючи сплячку замість вечора сплячки


15

Я працюю 18.04 і намагаюся, щоб моя система використовувала сплячку замість вечора сплячки, коли кришка мого ноутбука закривається.

У мене є розділ обміну 20 ГБ на 16 ГБ оперативної пам’яті, тому достатньо місця.

Коли я використовую pm-hibernate, я отримую невелику помилку apci, яка дуже швидко з’являється при сплячому режимі та відновленні, яку я не можу прочитати. Хоча сплячий режим працює в тому сенсі, що він здається скинутим на диск і відновити з диска, здається, це стан сну, оскільки він використовує акумулятор зі звичайною швидкістю, а не повністю вимикається і припиняє використання акумулятора.

Однак, коли я використовую сплячку, встановлену:

sudo apt-get install hibernate

І біжіть:

sudo hibernate

І відновлюючись після цього, я помічаю, що моя машина насправді вимикається --- світлодіоди перестають пульсувати і т. Д. ---, а витрата акумулятора йде до нуля. Таку поведінку я хотів би побачити, коли кришка закривається, а не режим сну, який використовує акумулятор, як якщо б я активно використовував комп'ютер.

Я дотримувався цих посібників:

модифікований

/etc/systemd/logind.conf

включити:

#HandleLidSwitch=suspend
HandlelidSwitch=hibernate

І додав свою зміну розділу swap у:

/etc/default/grub

Щоб включити правильне резюме = посилання та запитувати s2disk спеціально з:

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

Я прочитав такі пов'язані аскубунтуси:

Я також читав ці посилання на форумах Lenovo та Arch:

Як я можу переконатися, що сплячка, яку називають кришкою-кришкою, перебуває в сплячому режимі, а не вечірній сплячці?

Оновлення

Це все ще залишається проблемою і все ще робить Carbon X1 6-го покоління принципово марним з ubuntu. Будь-які рішення, які могли б виправити це та, можливо, додатково додати підказку для входу, можуть бути майже такими ж хорошими, як і машина Windows з 4 років тому ...;)


@Mittenchops Я міг би вирішити цю проблему для мене, будь ласка, подивіться на askubuntu.com/questions/1028947/…
Крістофер буде

1
Чи можете ви додати до свого запитання дані журналу із повного циклу сплячого режиму? Це повинно бути в /var/log/pm-suspend.log. Спасибі.
Девід Фоерстер

@Mittenchops не впевнений, але, можливо, моя проблема пов'язана з вашою. шахта - це також обладнання Lenovo.
ViBE

1
Я не використовую сплячий режим , але ви можете спробувати перейменувати /usr/sbin/pm-hibernateв /usr/sbin/pm-hibernate.OLD. Потім створіть /usr/sbin/pm-hibernatebash scxript, який містить hibernateкоманду. Використовуйте type -a hibernateдля пошуку точного шляху для команди. Він не існує в моїй системі, тому що я не встановив його.
WinEunuuchs2Unix

Я оновив свою відповідь скриптом для обгортки, запропонованим 14 липня 2018 року.
WinEunuuchs2Unix

Відповіді:


1

Я занадто ненавиджу передавати URL-адресу, тому я скопіюю та вставлю інформацію та додаю веб-сторінку донизу. Я не бачу цього у вашому посиланні.

Читаючи це, я помітив, що сплячка може не працювати, якщо ви відформатували файлову систему btrfs? Отже, як увімкнено сплячку в Ubuntu 16.04?

Щоб зробити процес сплячки Ubuntu постійним, вам потрібно створити новий файл за допомогою текстового редактора в командному рядку:

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

Система вимагає кореневих привілеїв, щоб увімкнути опцію сплячки, отже, слід додати команду sudo. Ви можете використовувати інші текстові редактори, такі як vi, gedit, emacs тощо.

Тепер скопіюйте та вставте наступний текст у файл (використовуйте мишу; комбінації клавіш не працюватимуть):

[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

Натисніть CTRL+, Oщоб зберегти, і CTRL+, Xщоб вийти з наноредактора.

Тепер вийдіть із системи та знову ввійдіть у систему. Тепер ви побачите сплячий варіант, а також параметри Вимкнення та Призупинення.

Посилання для вашої зручності: https://fossbytes.com/enable-disable-hibernate-option-ubuntu-power-menu/


2
Здається, це не працює в 18.04
Mittenchops

1

Два варіанти

Перший варіант (перерахований другий) - перевірити journalctlможливі повідомлення про помилки, пов’язані зі сплячкою. Якщо перший варіант не дає результатів, другий варіант - створити скрипт для обгортки, який заміняється pm-hibernateна "сплячий режим".

Створення сценарію Wrapper

Створення сценарію обгортки дозволяє hibernateзамінити pm-hibernate.

Знайдіть команди каталогів, розташовані в

Перш ніж створювати скрипт для обгортки, потрібно знати, в яких каталогах знаходяться команди hibernateта pm-hibernateкоманди. Використовуйте ці дві команди:

$ 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

Буде сценарій обгортки, який ви хочете створити /usr/sbin/pm-hibernate. У мене не встановлений hibernateпакет, тому перший пошук знайде лише утиліту Windows. Відповідно до списку файлів пакунків , він повинен виявити /usr/sbin/hibernateразом з парою інших файлів.

Резервне копіювання оригінального файлу

Спочатку ми хочемо зробити он-лайн резервну копію вихідного файлу:

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

Далі видаліть вихідний файл:

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

Створіть сценарій обгортки

Примітка: замість обгортка сценарію багато хто знаходить його простіше створити символічне посилання для , pm-hibernateщоб hibernate: Як створити м'які або символічні посилання?

Я хотів би використовувати geditдля редагування , але ви можете замінити його nanoабо vimабо який редактор Ви віддаєте перевагу:

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

З'явиться порожній файл. Вставте в наступні рядки

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

Перетворити скрипт обгортки у виконуваний файл

В даний час сценарій обгортки є звичайним файлом. Нам потрібно перетворити його на виконуваний об’єкт:

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

Зараз у нас є оперативний скрипт для обгортки, тому кожен раз, коли pm-hibernateвін викликається, hibernateвиконує замість нього. Як уже згадувалося вгорі, слід переглянути journalctlперший (описаний далі) перед створенням сценарію обгортки.

Огляд journalctl

Ви можете grepпередати повідомлення про сплячку journalctlдля можливих проблем.

Я не використовую сплячку, але я використовую призупинення. Наступна команда дозволяє мені бачити всі повідомлення, які стосуються suspendвас, які ви замінили б 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

Як sudo -H /usr/sbin/pm-hibernateвідкрити редактор? Я намагаюся виконувати вказівки, не хочу робити припущень
Стюарт

1
@Stewart Хороший улов. Він повинен читати, sudo -H gedit /usr/sbin/pm-hibernateколи я щойно змінився.
WinEunuuchs2Unix

1
@Stewart Ви перебуваєте в сплячці із закриттям кришки, кнопкою живлення або опцією меню?
WinEunuuchs2Unix

1
Нарешті виправлено! Ваша пропозиція дала мені достатньо підказки, що з деяким google-fu я опинився на unix.stackexchange.com/a/386837
Стюарт

1
@Stewart Радий почути. Дякуємо, що вказали на відповідь Unix & Linux. Я його проголосував.
WinEunuuchs2Unix
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.