Linux сон что мешает уйти в соне

Спящий режим

Содержание

Что это и как это работает?

Спящий режим (hibernate) – энергосберегающий режим операционной системы компьютера, позволяющий сохранять содержимое оперативной памяти на энергонезависимое устройство хранения данных (жесткий диск) перед выключением питания.
При засыпании все данные процессов вытесняются в swap файл, а также в swap сохраняются некоторые настройки устройств, и после этого система переходит в режим с полным отключением питания.
При включении компьютера система начинает загружаться как обычно, но если в процессе загрузки ядро обнаруживает образ памяти сохраненный в swap, то загрузка в нормальном режиме прекращается и начинается восстановление состояния оперативной памяти из swap-а. Кроме этого восстанавливаются настройки устройств (видеоадаптер, сетевые карты, и пр.).
И вот именно с восстановлением работоспособности устройств компьютера и связаны все основные проблемы с режимом сна. Не всегда драйвера устройств позволяют осуществить необходимые действия по сохранению и восстановление настроек после сна. И это может приводить к зависанию компьютера после попытки проснуться.
Еще одна неприятность этого режима проявляется при больших объемах оперативной запоминающей памяти компьютера. Речь идет об объемах оперативной памяти от 8Gb и выше (что в последние годы встречается все чаще). Если памяти много, то и много придется сохранять в swap при засыпании и соответственно вычитывать из swap при просыпании. Из за этого засыпание и просыпания могут занять довольно значительное время. Может оказаться, что вам проще и гораздо быстрее все-таки сохранить свою работу и выключить нормально компьютер, а потом, после обычной загрузки, открыть свои рабочие файлы заново.
Именно из-за озвученных выше особенностей режима сна в последних версиях Ubuntu по умолчанию этот режим энергосбережения отключен.

Настройка

Для поддержки работы данного режима у вас должен присутствовать swap-раздел или (рекомендуется) swap-файл.
Рекомендации по созданию swap-раздела можно просмотреть здесь. Вариант со swap-файлом является более удобным в использовании (но чуть более сложным при создании) т.к. он не занимает отдельный раздел, легко удаляется, его размер можно легко изменить (без необходимости менять разметку диска и двигать/изменять размеры других разделов).
Но учтите, не на любой файловой системе можно создать (и использовать) swap-файл: из за некоторых особенностей организации размещения файлов на диске swap-файл нельзя использовать на файловой системе btrfs (без специальных ухищрений).

Создание swap-файла

Про рекомендуемый размер swap-файла можно узнать здесь.

Создайте файл размером 4 ГБ в корневом каталоге (убедитесь, что у вас хватает свободного места):

Дайте файлу необходимые права и создайте в нем область подкачки:

Вручную подключите файл как swap:

Допишите строку в fstab, чтобы созданный swap подключался автоматически при запуске системы.

Настройка гибернации в swap-файл

Узнайте UUID корневого раздела (с помощью mount можно узнать, какой из разделов является корнем):

Укажите первый физический блок swap-файла. Его можно узнать с помощью swap-offset из пакета uswsusp :

Запишите ваши параметры в файл настроек initramfs:

В строку GRUB_CMDLINE_LINUX_DEFAULT добавьте параметры без кавычек и знаков > pm-hibernate из пакета pm-utils :

На вопрос «Продолжить без работоспособного пространства подкачки?» в случае использования swap-файла отвечаем «Да», пространство подкачки в диалоге указываем по UUID (/dev/disk/by-uuid/ ), раздел не шифруем (иначе может случиться подобное описанному здесь). После этого автоматически будет сформирован uswsusp.conf с необходимыми параметрами. Пробуем опять:

Если заработало, заменяем вызов pm-hibernate на s2disk :

Снова проверьте гибернацию (возможно, перед этим потребуется перезагрузка):

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

Найдите блоки, посвященные hibernate:

и измените в них параметр ResultActive с no на yes.

Для решения этой проблемы внесите правки в конфигурационный файл:

Замените в нём параметр ExecStart с

Источник

[РЕШЕНО] Не работает спящий/ждущий режим и выключение

pm-utils стоит, ядро стоковое, resume в хуках есть.

Хотелось бы, чтобы это всё работало :)

Скажите, какие логи нужно выложить для прояснения ситуации?

P.S. Ноут Asus U31SD

:((((
Я уже сбился со счёта, сколько насоздавали таких тем, о неработающем ждущем/спящем режиме. Ну хоть поиском бы пользовались, что ли…
По спящему режиму – вот такое у вас есть?

Natrio
:((((
Я уже сбился со счёта, сколько насоздавали таких тем, о неработающем ждущем/спящем режиме. Ну хоть поиском бы пользовались, что ли…
По спящему режиму – вот такое у вас есть?

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

Если перечитаны, можно было так и написать сразу :)

Только боюсь, если вы сделали всё это, вряд ли теперь можно посоветовать что-то специфически арч-линуксовое. У меня, разумеется, нет вашего ноута, и проверить ничего я не могу.
Но гугл знает вот такую страничку:
http://www.linlap.com/wiki/asus+u31sd

Suspend Working – Tweaks needed – see notes

Спасибо за ссылку, буду пробовать.

Ну, я наивно считал, что все пишут на форумы только когда очевидные и лежащие на поверхности решения уже перепробованы и это предполагается по-умолчанию.
Содержимое /var/log/pm-suspend.log:

Running hook /usr/lib/pm-utils/sleep.d/75modules suspend suspend:
Unloading kernel module button…FATAL: Module i915 is in use.
/usr/lib/pm-utils/functions: line 89: log: команда не найдена
Failed.

Тем не менее, 2 вопроса остаются открытыми. Не работает ждущий режим и выключение от батареи.

Ан нет. не в модулях дело. делов-то было поставить в конфиге

Но проблема со ждущим режимом остается, как впрочем и с выключением

хм. uswsusp так же уверяет, что проблема с засыпанием в видео (он пишет KMS used)

Источник

Гибридный сон/гибернация в Linux: два варианта

Гибридный режим сна/гибернации заключается в том, что если в режиме сна содержимое оперативки «замораживается» и подпитывается от сети, а при гибернации оно записывается на хард и подпитки от сети не требует, то в гибридном режиме оба процесса происходят одновременно. Таким образом гибридный режим обеспечивает моментальное восстановление работы при выходе из сна, но также страхует от сброса состояния при неожиданном отключении электроэнергии.

В линуксе есть как минимум два варианта использовать сон и гибернацию, скажем так, в смешанном режиме. Я решал эту задачу на ноутбуке c Debian (без какого-либо окружения рабочего стола, так что готовых кнопочек не нашлось).

Гибридный режим

Сам по себе вызывается командой

На ноутбуке как правило хочется вызывать этот режим при закрытии крышки, для этого нужно отредактировать файл «/etc/systemd/logind.conf», изменив в секции «Login» параметр «HandleLidSwitch» с дефолтного «suspend» на «hybrid-sleep»

после этого нужно перезагрузить систему, или сервис systemd-logind (это перезапустит текущий сеанс пользователя, так что не забудьте сохранить все важное). Теперь при закрытии крышки будет активироваться гибридный режим.

Далее более сложный, но небезынтересный вариант.

Сон с отложенным переходом в гибернацию

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

Источник

Как отключить режим сна и гибернации в Linux

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

Режим гибернации при его включении, система Linux записывает свое текущее состояние в файл. Далее при включении все эти данные восстанавливаются и вы продолжаете работу с места остановки. Т.е. все открытые документы, папки, файлы остаются в таком же состояние, как до режима гибернации.

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

В Linux есть 3 режима различных режима ожидания:

Отключить Режим сна и Гибернацию в Linux

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

$ sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

Вы должны получить вот такой результат, как показан ниже:

hybrid-sleep.target
Created symlink /etc/systemd/system/sleep.target → /dev/null.
Created symlink /etc/systemd/system/suspend.target → /dev/null.
Created symlink /etc/systemd/system/hibernate.target → /dev/null.
Created symlink /etc/systemd/system/hybrid-sleep.target → /dev/null.

Отключить ждущий режим и гибернацию в Ubuntu

Далее требуется перезагрузить систему и снова войти.

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

$ sudo systemctl status sleep. target suspend.target hibernate.target hybrid-sleep. target

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

Включить режим сна и гибернацию в Linux

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

$ sudo systemctl unmask sleep. target suspend.target hibernate.target hybrid-sleep. target

Вот такой результат вы должны получить:

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

$ sudo systemctl status sleep. target suspend.target hibernate.target hybrid-sleep. target

Если вы не желаете того чтоб ваш ноутбук при закрытии крышки уходил в режим ожидания (сна). Вам требуется отредактировать файл /etc/systemd / logind.conf.

$ sudo vim /etc / systemd/logind. conf

Добавьте в этот файл следующие строки:

[Login]
HandleLidSwitch=ignore
HandleLidSwitchDocked=ignore

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

Заключение

На этом все, в этой статье я подробна рассмотрел как отключить ждущий режим (сна) и гибернации в вашей системе Linux. Очень надеюсь, что руководство было полезным.

Источник

Спящий режим в Ubuntu

1. Режим ожидания

Режим ожидания (Suspend to RAM) или простой спящий режим Ubuntu доступен в системе по умолчанию и предусматривает отключение питания компьютера с сохранением питания оперативной памяти. Благодаря этой особенности он работает на подавляющем большинстве компьютеров, хотя и имеет очевидный недостаток, связанный с затратами энергии. Конечно же, каждый случай индивидуален, ведь любой режим энергосбережения предполагает подготовку устройств силами операционной системы с последующей передачей управления прошивке материнской платы, поэтому сложно гарантировать корректную работу даже режима ожидания.

По умолчанию режим ожидания активируется при закрытии крышки ноутбука. Также он может активироваться с помощью функциональной клавиши ноутбука (обычно это клавиша с изображением полумесяца). Кроме того, его можно включить из системного меню, но не самым очевидным образом. Для этого нужно открыть системное меню, нажать клавишу Alt, после чего кнопка завершения работы будет заменена на кнопку перехода в режим ожидания Ubuntu (Рисунок 1).

Рисунок 1. Кнопки завершения работы и перехода в режим ожидания

Вы можете прямо сейчас нажать на эту кнопку и испытать режим ожидания в деле. Если после отключения питания компьютера и последующего нажатия кнопки включения вам удастся продолжить работу с ранее запущенными приложениями, то спящий режим работает корректно. Если же после некоторого ожидания вы видите лишь чёрный экран или элементы графического интерфейса системы оказываются неработоспособными, лучше отключить спящий режим Ubuntu. Для этого в первую очередь следует запустить приложение дли изменения параметров системы с помощью крайней левой круглой кнопки с пиктограммой инструментов в системном меню (Рисунок 2).

Рисунок 2. Кнопка для изменения параметров системы

После открытия окна приложения нужно перейти на вкладку Электропитание. Здесь следует убедиться в том, что в качестве значения параметра При нажатии кнопки выключения не установлено Перевести в режим ожидания, а также нажать на строку Автоматический режим ожидания и отключить переключатель При простое (Рисунок 3).

Рисунок 3. Отключение режима ожидания

В случае закрытия крышки ноутбука всё немного сложнее: нужно установить дополнительное приложение GNOME Tweaks с помощью команды:

sudo apt-get install gnome-tweaks

Далее нужно запустить это приложение (его имя в меню Доп. настройки GNOME), перейти на вкладку Электропитание и отключить переключатель Режим ожидания при закрытии ноутбука (Рисунок 4).

Рисунок 4. Параметры электропитания в GNOME Tweaks

Теперь при закрытии крышки ноутбук не будет переходить в режим ожидания как в старые добрые времена GNOME 2.

Конечно же, редкое руководство по Linux обходится без описания консольных команд. Мы также рассмотрим команды, которые позволяют активировать режим ожидания из консоли. За управление режимами энергосбережения в Ubuntu отвечает системная служба logind из состава systemd, с которой можно взаимодействовать как посредством утилиты systemctl, так и посредством системной шины сообщений DBus. Это команда для перехода в режим ожидания с помощью утилиты systemctl:

А это вызов соответствующего метода DBus:

2. Режим гибернации

Начнём с параметра ядра ОС. Он предназначен для передачи имени файла устройства раздела подкачки, в котором будут сохраняться данные состояния ОС. Чтобы узнать имя этого файла, можно воспользоваться следующей командой:

Необходимое имя должно находиться в столбце NAME (Рисунок 5).

Рисунок 5. Список разделов подкачки системы

В случае его отсутствия у вас не активирован раздел подкачки.

Это имя следует добавить в строку параметров ядра ОС, передаваемую системным загрузчиком GRUB, в форме значения параметра resume. Для этого нужно открыть файл конфигурации /etc/default/grub и отредактировать строку GRUB_CMDLINE_LINUX_DEFAULT. Проще всего это сделать с помощью следующей команды:

Предположим, что именем файла устройства раздела подкачки является /dev/sda5. Тогда строку

придёётся заменить на строку

GRUB_CMDLINE_LINUX_DEFAULT=»quiet splash resume=/dev/sda5″

После этого нужно сохранить изменения в открытом файле (Рисунок 6).

Рисунок 6. Измененные параметры ядра Linux

В заключение нужно обновить конфигурацию системного загрузчика с помощью следующей команды:

Помимо этого следует создать файл конфигурации Polkit в директории /etc/polkit-1/localauthority/50-local.d/ с именем com.ubuntu.enable-hibernate.pkla и следующим содержимым:

Теперь приложение для изменения параметров системы позволит активировать режим гибернации при нажатии на кнопку включения (Рисунок 7).

Рисунок 7. Режим гибернации в меню приложения для изменения параметров системы

Это повод проверить спящий режим Ubuntu 18.04 с гибернацией. При отсутствии результата, вы можете снова деактивировать его, удалив созданный файл конфигурации с помощью команды:

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

Если же данный режим будет работать корректно, вы можете использовать кнопку включения для его активации. Если вы хотите активировать его при закрытии крышки ноутбука, вам придётся воспользоваться последовательностью специальных команд. Потому что ни приложение для изменения параметров системы, ни утилита GNOME Tweaks не позволёт сделать этого. Вот эти команды:

gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action ‘hibernate’

gsettings set org.gnome.settings-daemon.plugins.power lid-close-battery-action ‘hibernate’

sudo apt-get install dconf-editor

Рисунок 8. Активированный режим гибернации при закрытии крышки ноутбука

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

gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action ‘suspend’

gsettings set org.gnome.settings-daemon.plugins.power lid-close-battery-action ‘suspend’

Также может возникнуть вопрос: «А как активировать режим гибернации из системного меню?». Вообще, такой возможности не предусмотрено, но вы можете установить расширение GNOME Shell под названием «Hibernate Status Button». Установка расширения осуществляется с помощью Менеджера приложений Ubuntu (само расширение размещено в разделе Дополнения на вкладке Расширения GNOME Shell) (Рисунок 9).

Рисунок 9. Расширение «Hibernate Status Button» в списке расширений Менеджера приложений Ubuntu

После установки расширения в системном меню появится соответствующая кнопка (Рисунок 10).

Рисунок 10. Кнопка для перехода в режим гибернации

Если нажать на клавишу Alt при показе системного меню, кнопка перехода в режим гибернации будет заменена на кнопку перехода в гибридный режим сна.

Ну и о командах для самостоятельной активации данного режима. Это команда для перехода в режим гибернации с помощью утилиты systemctl:

А это вызов соответствующего метода DBus:

3. Гибридный режим сна

Гибридный режим сна (Hybrid sleep, Suspend to both) объединяет в себе оба рассмотренных выше режима энергосбережения. Он деактивирован в Ubuntu по умолчанию и предусматривает отключение питания компьютера с копированием данных из оперативной памяти в раздел подкачки и сохранением питания оперативной памяти. Для корректной работы данного режима, как и режима гибернации, требуется раздел подкачки достаточного размера. С точки зрения пользователя это самый надёжный режим, ведь в случае разряда батареи данные состояния операционной системы могут быть извлечены из раздела подкачки.

Активация данного режима сна осуществляется вместе с активацией режима гибернации. При этом его поддержка не реализована в полной мере в окружении рабочего стола GNOME, поэтому он может быть задействован лишь посредством системной службы logind и рассмотренного выше расширения «Hibernate Status Button» после нажатия клавиши Alt.

Вы можете перевести свой компьютер в этот режим с помощью утилиты systemctl:

А также вызвав метод DBus:

Заключение

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

Источник