Куда гибридный приостановить?

16

Так что же случилось с гибридной приостановкой, где она приостановила бы и RAM и диск? Несколько лет назад было жарко, но, кажется, его бросили. Есть ли способ настроить это в последних версиях Ubuntu?

Райан К. Томпсон
источник
Какой смысл в гибридной приостановке ??
LassePoulsen
5
Гибридная приостановка - это когда ваш компьютер выполняет приостановку на диск и приостановку в ОЗУ одновременно. Таким образом, вы получаете высокую скорость возобновления приостановки к оперативной памяти, но не теряете сеанс, если теряете энергию или разряжаетесь. Таким образом, в принципе, это лучше, чем либо приостановить к оперативной памяти, либо только приостановить на диске. Вот почему мне интересно, почему он, похоже, исчез из списков возможностей современных дистрибутивов Linux.
Райан К. Томпсон
На вкладке «Питание от батареи» в диспетчере питания я вижу опцию «Когда заряд батареи критически низкий: режим гибернации», возможно, это устраняет необходимость в гибридной приостановке?
Хорхе Кастро
1
@Jorge: Другой вариант использования - это если вам по какой-то причине необходимо извлечь аккумулятор ноутбука (или отключить настольный ПК, на котором он установлен). Если вы находитесь в режиме ожидания, это не имеет значения. Если вы используете обычный режим приостановки в ОЗУ, вам нужно будет возобновить и затем приостановить на диск.
Райан К. Томпсон

Ответы:

9

Существует программа под названием, pm-is-supportedкоторая может использоваться для проверки возможности приостановки системы.

В моей системе приведены результаты (0 означает, что поддерживается, 1 означает, что не поддерживается):

$ pm-is-supported --suspend ; echo $?  
0  
$ pm-is-supported --hibernate ; echo $?
0
$ pm-is-supported --suspend-hybrid ; echo $?
1

Страница руководства pm-is-supportedпредполагает, что s2both поддерживает гибридную приостановку. Я установил s2both, доступный в uswsuspпакете, но он все еще сообщает, что гибридная приостановка не поддерживается. У меня есть догадка, что он нуждается в перезагрузке, потому что он обновил образ initrd. Я собираюсь перезагрузить компьютер и доложить. Пожелай мне удачи .

Обновление: Запуск sudo s2bothзаписал снимок на диск и правильно приостановил работу в ОЗУ, однако, когда я нажал клавишу, чтобы возобновить перезагрузку системы (и не восстановил снимок с диска).

Я думаю, что-то не так с uswsuspпакетом в Ubuntu. splashyПакет (который используется uswsusp) имеет файл конфликт с lsb-baseкоторый был оставлен незакрепленным так бойкий ( https://bugs.launchpad.net/ubuntu/+source/splashy/+bug/328089 )

Попробуйте запустить sudo s2bothили sudo pm-suspend-hybrid, посмотрите, работает ли он в вашей системе.

Ли Ло
источник
Я пытался s2bothи получил те же результаты, что и вы. Я также попытался переключиться на ядро ​​tuxonice и сказать pm-utils использовать tuxonice, а затем использовать гибридный tuxonice suspend via pm-suspend-hybrid. Когда я возобновил работу, экран так и не включился, но Control + Alt + Delete сработал для перезагрузки, поэтому я думаю, что на самом деле это сработало, но не включил экран.
Райан К. Томпсон
Я думаю, это не поддерживается.
Райан К. Томпсон
0

Этот вопрос возникает в Google достаточно часто, и я думаю, что его стоит столкнуть. Ли прекрасно объясняет гибридную приостановку. Однако s2both требует uswsusp (таким образом, не использует приостановку в ядре), а pm-hsuspend-hybrid делает неправильную вещь, потому что он не поддерживается [1].

Вот как включить гибридную приостановку без проблем:

  • Переопределите вызов "suspend", чтобы сделать "hybrid_suspend" в pm-utils.
    % cat /etc/pm/config.d/00-use-suspend-hybrid
    # Всегда используйте suspend_hybrid вместо suspend
    if ["$ METHOD" = "suspend"]; тогда
        METHOD = suspend_hybrid
    фи
  • Сделайте резервную копию / usr / lib / pm-utils / pm-functions
  • Получить патч можно здесь: https://bugs.freedesktop.org/attachment.cgi?id=68712
    • Этот патч включает гибридную приостановку, если она доступна (например, в ядрах 3.6+)
  • Либо примените его с помощью 'patch -p0', либо объедините вручную, если это не удалось

Этот метод работает для меня на моем Sony Vaio SVS.

PS: Воспроизведение патча здесь на случай, если файл будет удален в будущем:

diff - git a / pm / pm-functions.in b / pm / pm-functions.in
--- a / pm / pm-functions.in
+++ b / pm / pm-functions.in
@@ -316,8 +316,28 @@ if [-z "$ HIBERNATE_MODULE"] && \
    {
        [-n "$ {HIBERNATE_MODE}"] && \
        grep -qw "$ {HIBERNATE_MODE}" / sys / power / disk && \
+ HIBERNATE_MODE_SAVE = $ (cat / sys / power / disk) && \
+ HIBERNATE_MODE_SAVE = "$ {HIBERNATE_MODE_SAVE ## * [}" && \
+ HIBERNATE_MODE_SAVE = "$ {HIBERNATE_MODE_SAVE %%] *}" && \
        echo -n "$ {HIBERNATE_MODE}"> / sys / power / disk
        echo -n "диск"> / sys / power / state
+ RET = $?
+ echo -n "$ HIBERNATE_MODE_SAVE"> / sys / power / disk
+ возврат "$ RET"
+}
+ фи
+
+ # для ядер, поддерживающих приостановку к обоим (т.е. гибридную приостановку)
+ # начиная с ядра 3.6
+ if [-z "$ SUSPEND_HYBRID_MODULE"] && \
+ [-f / sys / power / disk] && \
+ grep -q диск / sys / power / state && \
+ grep -q suspend / sys / power / disk; тогда
+ SUSPEND_HYBRID_MODULE = "ядро"
+ do_suspend_hybrid ()
+ {
+ HIBERNATE_MODE = "приостановить"
+ do_hibernate
    }
 фи

Источники:

[1]: pm-utils предшествует гибридной приостановке в ядре, доступной в ядрах 3.6+. Что на самом деле делает pm-suspend-hybrid, так это переводит компьютер в спящий режим на 15 минут по умолчанию, а затем переводит его в спящий режим.

Рохан Дхрува
источник