Чем отличается ждущий режим от спящего режима в linux

Обновлено: 07.07.2024

В этой статье мы расскажем, как отключить режимы ожидания и гибернации в системах Linux. Но прежде чем мы это сделаем, давайте кратко рассмотрим эти два режима.

В режиме ожидания экран гаснет, хотя компьютер остается включенным. Кроме того, все ваши документы и приложения остаются открытыми.

Приостановка работы системы помогает сэкономить электроэнергию. Чтобы вернуться к работе, нужно просто щелкнуть мышью или нажать любую кнопку клавиатуры. Иногда может потребоваться нажать кнопку питания.

  • Suspend to RAM (Normal Suspend): это режим, в который большинство ноутбуков автоматически переходят в случае бездействия в течение определенного времени или после закрытия крышки, когда компьютер работает от батареи. В этом режиме зарезервировано питание для оперативной памяти и отключается большинство компонентов.
  • Suspend to Disk (Hibernate): в этом режиме состояние машины сохраняется в пространстве подкачки, и система полностью отключается. Однако при включении все восстанавливается, и вы начинаете с того места, где остановились.
  • Suspend to both (Hybrid suspend): здесь состояние машины сохраняется в своп, но система не выключается. Батарея не разряжается, и вы можете безопасно возобновить работу системы с диска и продолжить работу. Этот метод намного медленнее, чем Suspend to RAM.

Чтобы ваша система Linux не зависала или не переходила в спящий режим, вам необходимо отключить следующие цели systemd:


Проверьте, были ли внесены изменения, с помощью команды:


Из выходных данных мы видим, что все четыре состояния отключены.

Включение режима ожидания и гибернации в Linux

Чтобы снова включить режимы приостановки и гибернации, выполните команду:



Чтобы система не перешла в режим ожидания после закрытия крышки, отредактируйте файл /etc/systemd/logind.conf.

Сохраните и выйдите из файла. Обязательно перезагрузитесь, чтобы изменения вступили в силу.

В настоящее время существует три метода приостановки работы компьютера: suspend to RAM обычно называемая просто suspend(приостановка, ждущий режим, сон, STR, S3 ), suspend to disk известный как hibernate( гибернация, спящий режим, STD, S4 ), и hybrid suspend( гибридная приостановка, гибридный спящий режим, иногда применяется название suspend to both):

  • Suspend to RAM отключает питание большинства частей компьютера, кроме ОЗУ, что требуется для восстановления состояния машины. Из-за большой экономии энергии рекомендуется, чтобы ноутбуки автоматически входили в этот режим, когда компьютер работает от батарей, и крышка закрыта или пользователь неактивен в течение некоторого времени.
  • Suspend to disk метод сохраняет состояние машины на диске Swap (Русский) и полностью отключает компьютер, потребления электроэнергии нет. Когда устройство включается, состояние восстанавливается.
  • Suspend to both сохраняет состояние машины на диске в свопе, но не выключает ее. Вместо этого выполняется обычная приостановка в ОЗУ. Поэтому, если батарея не разряжена, система может возобновиться из ОЗУ. Если батарея разряжена, система может быть возобновлена с диска, что намного медленнее, чем возобновление работы из ОЗУ, но состояние машины не будет потеряно.

Существует несколько низкоуровневых интерфейсов, обеспечивающих базовые функции, а также некоторые интерфейсы высокого уровня, обеспечивающие трюки для обработки проблемных аппаратных драйверов / модулей ядра (например, повторная инициализация видеокарты).

Contents

Низкоуровневые интерфейсы

Ядро (swsusp)

Самый простой подход для входа в режим сна заключается в прямом информировании встроенного программного кода ядра (swsusp); точный метод и состояние зависят от уровня аппаратной поддержки. В современных ядрах основным механизмом переключения режимов является запись соответствующих значений в /sys/power/state .

Cмотрите документацию для подробностей.

uswsusp

Uswsusp ('Userspace Software Suspend') представляет собой оболочку ядерного механизма приостановки в ОЗУ, которая выполняет некоторые манипуляции с графическим адаптером из пользовательского пространства перед приостановкой и после возобновления.

Смотрите основную статью Uswsusp.

Интерфейсы высокого уровня

Конечной целью этих пакетов является предоставление программ( двоичных файлов/скриптов), которые могут быть вызваны для выполнения приостановки компьютера. Фактическая привязка их к кнопкам питания, щелчкам меню или событиям крышки ноутбука обычно предоставляется другим инструментам. Чтобы автоматически приостановить работу при определенных событиях, таких как закрытие крышки ноутбука или процент истощения батареи, вам может потребоваться запустить Acpid.

systemd

Гибернация

Чтобы использовать спящий режим, вам нужно создать swap раздел или файл. Вам нужно будет указать ядру на своп, используя параметр resume= , который настраивается через загрузчик. Вам также понадобится настроить initramfs. Это говорит ядру попытаться возобновить работу с указанного свопа в раннем пользовательском пространстве. Эти три этапа подробно описаны ниже.

Про размер раздела/файла подкачки

Даже если ваш раздел подкачки меньше ОЗУ, у вас все еще есть большая вероятность успешно перейти в спящий режим. Согласно ядерной документации:

/sys/power/image_size управляет размером образа, создаваемого механизмом приостановки на диск. Это может быть строка, представляющая неотрицательное целое число, которое будет использоваться в качестве верхнего предела размера образа в байтах. Механизм приостановки сделает все возможное, чтобы размер образа не превышал это число. Однако, если это окажется невозможным, он попытается приостановить все равно, используя наименьший возможный размер образа. В частности, если в этот файл записать «0», размер образа будет настолько мал на сколько это возможно. Чтение из этого файла отображает текущее ограничение размера образа, которое по умолчанию установлено на 2/5 доступного ОЗУ.

Вы можете либо уменьшить значение /sys/power/image_size , чтобы сделать образ как можно меньшим (для небольших разделов подкачки) или увеличить его, чтобы ускорить процесс гибернации.

Необходимые параметры ядра

Должен быть использован параметр ядра resume=swap_partition . Либо имя, назначенное ядром для раздела, либо его UUID, можно использовать как swap_partition . Например:

  • resume=/dev/sda1
  • resume=UUID=4209c845-f495-4c43-8a03-5363dd433153
  • resume=/dev/mapper/archVolumeGroup-archLogicVolume -- если используется LVM

В общем, метод именования, используемый для параметра resume , должен быть таким же, как и для параметра root . Конфигурация зависит от используемого загрузчика, обратитесь к Kernel parameters за деталями.

Гибернация в файл подкачки

Важно: BTRFS на ядре Linux ниже 5.0 не поддерживает файлы подкачки. Несоблюдение этого предупреждения может привести к повреждению файловой системы. В то же время когда файл подкачки монтируется через устройство /dev/loop его можно использовать и на Btrfs, но это приведет к значительному ухудшению производительности подкачки.

Для использования файла подкачки также необходимо установить resume=swap_device и resume_offset=swap_file_offset kernel parameters. Смотрите документацию ядра.

Значение swap_file_offset можно получить запустив filefrag -v swap_file , требуемое значение расположено в столбце physical_offset первого ряда таблицы выводимой командой. Например:

В этом примере значение swap_file_offset это первое число 38912 с двумя точками.

Значение swap_file_offset так же может быть получено с помощью swap-offset swap_file . Файл команды swap-offset предоставляется пакетом uswsusp-git AUR .

  • Параметр ядра resume определяет устройство, раздел которого содержит файл подкачки, а не сам файл подкачки. О местонахождении файла подкачки на утройстве возобновления систему информирует параметр resume_offset . Перед первой гибернацией требуется перезагрузка для их активации.
  • Если вы используете uswsusp, то эти два параметра должны быть представлены в /etc/suspend.conf с помощью ключей resume device и resume offset . В этом случае перезагрузка не требуется.

Настройка initramfs

  • Когда используется initramfs с хуком base , а по умолчанию это так, хук resume требуется в /etc/mkinitcpio.conf . Будь то по метке или по UUID раздел подкачки ссылается на файл устройства создаваемый udev, поэтому хук resume должен идти «после» хука udev . Этот пример был сделан на основе конфигурации хуков по умолчанию:
Примечание: LVM пользователи должны добавить resume хук после lvm2 .
  • Когда используется initramfs с хуком systemd , механизм возобновления уже предоставлен и дополнительные хуки не нужны.

Технология Intel Rapid Start (IRST)

При включенной технологии Intel Rapid Start Technology (IRST) для выхода из глубокого сна требуется "на несколько секунд больше, чем для выхода из S3, но намного меньше, чем для выхода из спящего режима".

Многие системы на базе Intel имеют встроенную поддержку IRST, но для этого требуется специальный раздел на SSD (а не на HDD). OEM-развертывания Windows могут уже иметь уже существующий раздел IRST, который можно сохранить во время процесса установки Arch Linux (вместо очистки и перераспределения всего SSD). Он должен отображаться как неотформатированный раздел, равный размеру ОЗУ системы.

Важно: Раздел Intel Rapid Start не зашифрован; "Intel рекомендует отключить технологию Intel Rapid Start, если вы используете программное шифрование диска". [1]

Однако, если вы собираетесь стереть и переразбить весь диск (или уже сделали это), то раздел IRST необходимо создать заново, если вы планируете использовать эту технологию. Это можно сделать, создав пустой раздел, равный размеру ОЗУ системы, и установив для него тип раздела GUID D3BFE2DE-3DAF-11DF-BA40- E3A556D89593 для раздела GPT или ID 0x84 для раздела MBR. Вам также может потребоваться включить поддержку IRST в настройках прошивки вашей системы.

Совет: Время до срабатывания IRST (после приостановки) можно настроить в настройках прошивки системы.

Продолжительность процесса гибернации IRST (например, копирования "всего содержимого ОЗУ в специальный раздел") зависит от размера ОЗУ системы и скорости SSD и, таким образом, может занять 20–60 секунд. Некоторые системы могут сигнализировать о завершении процесса светодиодным индикатором (LED), например, когда он перестает мигать.

Смотрите также общие вопросы и ответы и руководства пользователей для технологии Intel Rapid Start.

Исправление проблем

ACPI_OS_NAME

Возможно, вы захотите настроить свою таблицу DSDT, чтобы заставить ее работать. Смотрите статью DSDT

Пользователям VAIO

Добавьте acpi_sleep=nonvs параметр ядра в ваш загрузчик и возьмите себе с полки пирожок!

Ждущий/Спящий режим не работает или сбоит

There have been many reports about the screen going black without easily viewable errors or the ability to do anything when going into and coming back from suspend and/or hibernate. These problems have been seen on both laptops and desktops. This is not an official solution, but switching to an older kernel, especially the LTS-kernel, will probably fix this.

Wake-on-LAN

If Wake-on-LAN is active, the network interface card will consume power even if the computer is hibernated.

Мгновенный запуск из режима ожидания

For some Intel Haswell systems with the LynxPoint and LynxPoint-LP chipset, instantaneous wakeups after suspend are reported. They are linked to erroneous BIOS ACPI implementations and how the xhci_hcd module interprets it during boot. As a work-around reported affected systems are added to a blacklist (named XHCI_SPURIOUS_WAKEUP ) by the kernel case-by-case.[2]

Instantaneous resume may happen, for example, if a USB device is plugged during suspend and ACPI wakeup triggers are enabled. A viable work-around for such a system, if it is not on the blacklist yet, is to disable the wakeup triggers. An example to disable wakeup through USB is described as follows.[3]

To view the current configuration:

The relevant devices are EHC1 , EHC1 and XHC (for USB 3.0). To toggle their state you have to echo the device name to the file as root.

Нажмите Alt + F2 и выполните поиск, как показано, и нажмите software-properties-gtk, затем перейдите к шагу 3.

ИЛИ откройте терминал Alt + Alt + F2 и введите software-properties-gtk, затем перейдите к шагу 3.

Используя программное обеспечение Ubuntu center

Если вам удобнее использовать USC, вы можете открыть его и нажать ИЛИ , а затем на нижние источники программного обеспечения. Теперь переходите к шагу 3.

3 ответа

В чем разница между сном, приостановкой и спящим режимом?

  • Режим сна (иногда называемый режимом ожидания или «выключение дисплея») обычно означает, что ваш компьютер и / или монитор переведены в режим ожидания с низким энергопотреблением. В зависимости от вашей операционной системы, режим сна иногда используется взаимозаменяемо с режимом приостановки (как в случае систем на основе Ubuntu). То, что спит в вашей системе, должно оцениваться в каждом конкретном случае.
  • Приостановка сохраняет текущее состояние в оперативной памяти и переводит компьютер и все периферийные устройства в режим низкого энергопотребления. Если батарея разрядится или компьютер по какой-либо причине выключится, текущий сеанс и несохраненные изменения будут потеряны.
  • Когда компьютер находится в спящем режиме (иногда это называется приостановкой на диск), он сохраняет свое текущее состояние на жестком диске и полностью отключается. При возобновлении сохраненное состояние восстанавливается в ОЗУ.

Saurav. Я отвечаю на это, насколько мне известно. Ubuntu не имеет отдельных вещей приостановить и amp; спать. Когда система Ubuntu находится в режиме ожидания, Ubuntu использует /etc/acpi/sleep.sh для входа / выхода из режима ожидания. Таким образом, это имя, указывающее как приостановить & amp; sleep вызывают один и тот же скрипт, и они будут иметь одинаковую функциональность.

Если вы хотите узнать, о какой задаче будут заботиться во время приостановки / сна, пожалуйста, прочитайте здесь: Wiki Ubuntu Community

Обычно гибернация означает, что мы знаем, что она спасет текущее состояние системы.

Когда компьютер находится в спящем режиме, он сохраняет свое текущее состояние на жестком диске и полностью отключается. Когда следующий компьютер загружается, предыдущее состояние восстанавливается так же, как вы его оставили.

Подробнее о спящем режиме: Wiki Ubuntu Community

Спящий режим хранит все необходимые настройки, регистры и Оперативную память как энергонезависимая магнитная трассировка к жесткому диску. Питание может затем быть полностью удалено. . На перезапуске все сбрасывается к тому, как это было кроме в реальном времени. Программному обеспечению некоторых Приложений, вероятно, придется уделить особое внимание этому. S/by - сохраняет низковольтное питание к RAM и таким другим регистрам, как будет необходим, чтобы быть сохраненным. Питание к дискам удалено после того, как они будут парковаться. экономия электроэнергии обычно значительна 95%. Таким образом, если Ваш ПК выполнял 100 Вт обычно, он использует 5 Вт в S/by или Режимах ожидания. В Режиме спячки это (или может быть), Нуль. BjG

С помощью управления электропитанием, вы можете настроить поведение компьютера при отсутствии активности, а также в случае закрытия крышки ноутбука.

  • Если у вас дистрибутив Linux с окружением рабочего стола Cinnamon, то смотрите статью «Управление электропитанием в Linux (Cinnamon)».
  • Если у вас дистрибутив Linux с окружением рабочего стола GNOME, то смотрите статью «Управление электропитанием в Linux (GNOME)».

Различают два состояния:

  • подключение компьютера/ноутбука к электросети
  • работа компьютера/ноутбука от батареи

Для каждого из этих вариантов можно сделать отдельные настройки.

Где в Xfce настройки электропитания

Самый быстрый способ перейти к настройкам электропитания в Xfce это нажать на значок батареи рядом с часами и выбрать в меню «Параметры менеджера питания»:


Либо вы можете выполнить в меню поиск по фразе «Менеджер питания»:


Либо просто найдя соответствующий пункт в настройках.


Если вы предпочитаете командую строку, то Менеджер питания можно запустить следующей командой:

Как сделать, чтобы ноутбук не отключался при закрытии крышки?

В Менеджере питания Xfce перейдите на вкладку «Общие» и в группе «Крышка ноутбука» измените значение настройки «При закрытии крышки ноутбука» на «Выключить экран». При этой настройке ноутбук продолжит работу при закрытой крышки, но выключит экран, поскольку смотреть на него всё равно не получится. При открытии крышки экран немедленно включится. Эту настройку можно установить отдельно для работы от батареи и для работы от электросети.


Если вы не видите эту настройку, значит вы работаете не за ноутбуком или в виртуальной машине, либо по какой-то причине ОС не видит датчик закрытия крышки.

Как отключить блокировку экрана в Xfce

В менеджере питания Xfce перейдите во вкладку «Безопасность» и для «Автоматически блокировать сеанс» выберите «Никогда». Также снимите галочку с «Блокировать экран при переходе в ждущий режим».


Как сделать, чтобы экран никогда не выключался

Перейдите на вкладку «Дисплей» и, перетаскивая ползунок, установите настройку «Погасить экран через» на «Никогда». Вы можете по отдельности установить настройку на время работы от батареи и от электросети.


Как настроить время отключения экрана

На вкладке «Дисплей» имеется три настройки экрана:

  • Погасить экран через
  • Ждущий режим
  • Выключить через

На некоторых системах фактическое значение имеет только настройка «Погасить экран через». Например, на ноутбуках две другие настройки не играют никакой роли. Но на компьютерах с отдельным монитором другие настройки могут иметь эффект. Каждая последующая настройка сохраняет больше энергии, но увеличивает время включения монитора.

Как сделать, чтобы в системном лотке отображался заряд батареи

На самом деле, он уже отображается, причём при работе от батареи, показывается оставшийся процент заряда.


Если вы хотите иконку побольше, то на вкладке «Общие» включите «Значок в системном лотке». Если включить «Уведомление статуса», то при включении или отключении электропитания от сети, а также при полной зарядке батареи и других событиях будет показываться небольшое уведомление.

Как изменить поведение при нажатии кнопки питания

Вы можете сделать так, чтобы при нажатии кнопки питания компьютер немедленно отключался или переходил в спящий режим. По умолчанию при её нажатии система покажет окно выключения и можно выбрать любое из действий (выключение, спящий режим, ждущий режим, перезагрузка). Чтобы изменить это поведение, перейдите на вкладку «Общие» и в группе «Кнопки» установите желаемое действие для кнопки питания. Другие упомянутые там кнопки могут отсутствовать на вашем компьютере.


Как сделать, чтобы компьютер не переходил в ждущий режим

Если вы не хотите, чтобы компьютер переходил в спящий или ждущий режим, либо вы хотите выбрать другой режим, чем установленный по умолчанию, то перейдите на вкладку «Система» и перетащите ползунок «Если не активен в течении» на «Никогда» или на любое другое время.


Вы также можете выбрать «Спящий режим» или «Ждущий режим» отдельно для случаев, когда вы компьютер работает от батареи или подключён к электросети.

Как сделать, чтобы компьютер автоматически переходил в спящий режим при критическом уровне заряде батареи

Вы можете выбрать любое действие на тот случай, если уровень заряда батареи достиг критического.

  • Доступные действия:
  • Ничего не делать
  • Ждущий режим
  • Спящий режим
  • Выключить компьютер
  • Спрашивать

Вы самостоятельно можете установить, какой уровень заряда считается критическим (по умолчанию это 10%).

Эти настройки доступны на вкладке «Система» Менеджера питания.


Где в Xfce посмотреть модель и характеристики батареи

Перейдите в Менеджер питания и выберите вкладку Устройства. Здесь вы найдёте такую информацию как модель батареи, текущий уровень заряда, номинальную ёмкость батареи, фактическую ёмкость батареи, напряжение и производитель батареи.


В чём различие между «Спящим режимом» и «Ждущим режимом»

Ждущим режимом — компьютер переходит в режим экономии питания, но всё равно продолжает потреблять электроэнергию. Если в таком состоянии выключить компьютер, то все не сохранённые данные будут потеряны. Время возврата в нормальное рабочее состояние небольшое.

Спящий режим — компьютер сохраняет все данные на диск и выключается. Если отключить питание, то все данные должны быть сохранены. Возвращение компьютера из спящего режима нормальное рабочее состояние может занять больше времени, чем обычная загрузка, поскольку системе нужно сначала загрузиться, а затем открыть все файлы и окна, которые были открыты перед уходом в спящий режим.

Читайте также: