Косвенный гибридный сон
Это более старый метод: сначала приостановите, а затем просыпайтесь в спящий режим через некоторое время (по умолчанию 15 минут). Используйте это с ядром Linux до 3.6, или, если вам нравится, он больше не потребляет энергию через 15 минут.
Добавьте файл /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
Возможно, вы захотите убедиться, что гибридный метод поддерживается в вашей системе с помощью следующего кода. Если он говорит «0», он должен работать:
sudo pm-is-supported --suspend-hybrid && echo $?
Настоящий гибрид приостановился с Linux 3.6+
Если у вас ядро Linux 3.6, вы можете использовать следующее, что с самого начала приостановит работу как диска, так и ОЗУ.
Добавьте файл /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
Это всегда будет записывать образ на диск, а затем приостанавливать его в ОЗУ, имея преимущество в том, что возобновление всегда будет быстрым (до тех пор, пока не разрядится батарея) и что машина не будет просыпаться в течение короткого времени (после PM_HIBERNATE_DELAY) в спячку по-настоящему.
Недостатком является то, что процесс занимает больше времени (потому что он всегда находится в режиме гибернации на диске), и что ваша батарея может разрядиться в долгосрочной перспективе (например, через 12 часов).
resume
аргумент в/etc/default/grub.conf
. Также как пользователь nvidia я должен был установитьnomodeset
. Таким образом , в результате чего запись потайного в моем случае:GRUB_CMDLINE_LINUX_DEFAULT="nomodeset resume=UUID=uuidofswappartition"
. Не стоит забыватьgrub-update
. А также некоторые модули должны быть выгружены, поэтому созданный файл/etc/pm/config.d/00-unload_modules
со строкойSUSPEND_MODULES="ath5k r8169"
и просто для того, чтобы я также переименовал 00-use-suspend-hybrid в10-use-suspend-hybrid
Ubuntu 18.04 - выбор времени
В Ubuntu 18.04 появилась новая временная опция. В офисе
systemd
ходит новый режимsuspend-then-hibernate
. Это начнется с режима ожидания, а затем перейдет в режим гибернации через фиксированное время.В этом
hybrid-sleep
режиме часть режима гибернации становится эффективной только тогда, когда батарея разряжена до критического уровня и система отключается.Чтобы начать использовать эту функцию, вам нужно создать файл
/etc/systemd/sleep.conf
со следующим содержанием:Это перейдет из сна в спящий режим после 1 часа сна. Вы можете редактировать,
HibernateDelaySec
чтобы изменить задержку в спящий режим.Сначала проверьте, работает ли suspend-then-hibernate с помощью systemd.
Откройте терминал, нажав Ctrl+ Alt+, Tи введите:
Если это работает, сделайте это постоянным.
Откройте файл
/etc/systemd/logind.conf
с помощью предпочитаемого вами редактора. Вам нужно будет ссылаться на вашу административную властьsudo
,gksudo
илиpkexec
редактировать этот файл.Найдите две строки:
Обратите внимание, эти строки закомментированы
#
перед ними. Действиеsuspend
по умолчанию. Удалите#
и изменитеsuspend
наsuspend-then-hibernate
эти две строки, чтобы они выглядели так:Сохраните файл. Выйдите из системы и снова войдите в систему или перезапустите
logind
службу с помощью команды:предупреждение! Ваш пользовательский сеанс будет перезапущен
Источник: Крышка закрыта Приостановить, а затем перевести в спящий режим
Ubuntu 16.04 и выше
Решение по blueyed для реального гибрида подвешивания с Linux 3.6 + не работа для меня. Я подозреваю, что это потому, что Ubuntu 16.04 использует
systemd
и не использует файл/etc/pm/config.d/00-use-suspend-hybrid
.Во-первых, проверьте, работает ли спящий режим и гибридный сон с использованием systemd.
Откройте терминал, нажав Ctrl+ Alt+, Tи введите:
Это должно привести ваш компьютер в спящий режим. Чтобы попробовать гибридный сон, введите:
Если это работает, сделайте это постоянным.
Откройте файл
/etc/systemd/logind.conf
с помощью предпочитаемого вами редактора. Вам нужно будет ссылаться на вашу административную властьsudo
,gksudo
илиpkexec
редактировать этот файл.Найдите две строки:
Обратите внимание, эти строки закомментированы
#
перед ними. Действиеsuspend
по умолчанию. Удалите#
и изменитеsuspend
наhybrid-sleep
эти две строки, чтобы они выглядели так:Сохраните файл. Выйдите и войдите снова.
Заметка:
suspend
илиhybrid-sleep
есть третий вариантhibernate
.Suspend
из меню Cog переводит компьютер в обычный режим ожидания, а не в режим гибридного сна.Источник: https://superuser.com/questions/719447/how-to-use-systemd-hybrid-sleep-instead-of-suspend-under-gnome-in-linux
надеюсь, это поможет
источник
В 12.04 я заметил, что, когда спящий режим запускается (используя
PM_HIBERNATE_DELAY=XX
), сценарии возобновления / оттаивания оболочки не сбрасывают переменную grub recordfail. Поэтому grub не загружается автоматически.Время ожидания установлено на -1, и оно ожидает выбора пользователя. Я предполагаю, что это требует некоторого редактирования скриптов в
/etc/pm/sleep.d/10_grub-common
. Я новичок, поэтому, к сожалению, я не баловался точными изменениями.источник
Этот вопрос возникает в Google достаточно часто, и я думаю, что его стоит столкнуть. Описанный здесь метод (imo) не является гибридной приостановкой. Это "спящий режим после X минут в режиме ожидания". Настоящая гибридная приостановка записывает вашу оперативную память на диск, а затем переходит в режим пониженного энергопотребления (спящий режим). Хотя это занимает больше времени, возобновление происходит мгновенно, пока в машине остался аккумулятор, в противном случае возобновляется работа с жесткого диска. Такое поведение большинство людей называют гибридным сном и по умолчанию используется в новых ноутбуках с Windows и Mac.
Вот как включить реальную гибридную приостановку:
Этот метод работает для меня на моем Sony Vaio SVS.
PS: Воспроизведение патча здесь на случай, если файл будет удален в будущем:
Источники:
источник
Есть другое решение без добавления какого-либо файла в config.d, просто с помощью wakealarm в / sys / class / rtc / rtc0. Используйте устаревший код в pm-functions (/ usr / lib / pm-utils) после комментариев #, поскольку ядро не поддерживает напрямую ..., (потому что текущее ядро (после 3.6 что-то) поддерживает напрямую). Верните этот код и вставьте часть do_suspend () вместо do_suspend_hybrid () и используйте патч для pm-функций (пока они не исправят).
Устаревший код (приостановить, а затем перейти в спящий режим при вызове suspend_hybrid):
Рекомендуемые. Еще проще использовать uswsusp, в то же время максимизируя преимущества s2both, т.е. s2both при приостановке. Поместите возвращенный код в часть do_suspend () модуля uswsusp (/usr/lib/pm-utils/module.d).
Возвращенный код (suspend_hybrid, когда вызывается suspend):
С помощью uswsusp мы можем видеть ход приостановки / гибернации и обратный процесс, отображаемый в тексте, даже мы можем прервать его, нажав клавишу backspace. Без uswsusp suspend / hibernate просто раздражающе появляется-исчезает, особенно когда срабатывает wakealarm и выполняется hibernate (s2disk в uswsusp). Установите период сна до гибернации в обычном месте в файле pm-functions.
Вот мод uswsusp: (помните, этот модуль вызывается из pm-функций, поэтому вставленные переменные одинаковы)
источник
Ответ user68186 для Ubuntu 16.04 у меня не сработал. Тем не менее, решение здесь сделал.
Во-первых, обеспечьте работу спячки. затем
В моих настройках питания эти параметры отображаются как пустые, но они работают как задумано.
источник
В Ubuntu 18.04 это намного проще. В systemd доступен новый режим suspend-then-hibernate . Чтобы начать использовать эту функцию, вам нужно создать файл /etc/systemd/sleep.conf со следующим содержимым:
Затем вы можете проверить это командой:
(Вы можете редактировать HibernateDelaySec, чтобы уменьшить задержку до гибернации). Если все работает нормально, вы можете изменить Lid Close Action, для этого вам нужно отредактировать файл /etc/systemd/logind.conf
Вам необходимо найти параметр HandleLidSwitch = , раскомментировать его и изменить на HandleLidSwitch = suspend-then-hibernate . Затем вам нужно перезапустить сервис logind (wirning! Ваш пользовательский сеанс будет перезапущен) следующей командой:
Вот и все! Теперь вы можете использовать эту красивую функцию.
источник