Система отказывается приостанавливаться.

Вопрос или проблема

Здесь Lubuntu 18.04 (lxde) на базе AMD Epyc 7282. Ядро 4.15.
Система стабильна и работает безупречно, но отказывается переходить в режим ожидания.

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

На этом этапе, если нажать клавишу или переместить мышь, ничего не происходит. Если нажать кнопку питания, система “просыпается”, показывая экран входа, а затем все приложения в том состоянии, в котором они были оставлены.

Гибернация полностью отсутствует.

Обратите внимание, что Epyc Rome не поражена печально известной ошибкой RDRAND, которая затрагивает Ryzen 3000 и вызывает проблемы с переходом в режим ожидания.

EDIT: Я использовал систему несколько дней с высокой нагрузкой и могу подтвердить её стабильность, но если оставить её гасить монитор, невозможно её разбудить… Нужно подключиться по ssh и сбросить систему.

EDIT(II): Пример вывода для journalctl -u systemd-suspend.service:

gen 25 04:33:52 epyc systemd[1]: Starting Suspend...
gen 25 04:33:52 epyc systemd-sleep[1743]: Suspending system...
gen 25 04:34:36 epyc systemd-sleep[1743]: System resumed.
gen 25 04:34:36 epyc systemd-sleep[1743]: /dev/sda:
gen 25 04:34:36 epyc systemd-sleep[1743]: устанавливается уровень Advanced Power Management до 0xfe (254)
gen 25 04:34:36 epyc systemd-sleep[1743]: APM_level        = 254

EDIT (III): Мне удастся перевести систему в гибернацию с помощью uswsusp, явно указав устройство восстановления, то есть раздел подкачки:

sudo s2disk -r /dev/sda1

В таком состоянии система выключается, показывая SNAPSHOTTING THE SYSTEM...

Если я включу питание, система загружается, говоря RESUMING FROM HIBERNATION... но затем просто отображает рабочий стол, без каких-либо следов оставленных приложений. Я изучу логи и сообщу об этом.

Известно, что некоторые ACPI BIOS могут быть проблемными в Linux, и это может не работать на всех системах. Я полагаю, что гибернация отключена по умолчанию в версиях Ubuntu. Проверьте и убедитесь, что файл /etc/default/grub содержит параметр resume в строке GRUB_CMDLINE_LINUX_DEFAULT= в начале файла. Чтобы быстро проверить, введите в терминале:

head -n 15 /etc/default/grub

Строка должна выглядеть примерно так:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=26623446-028a-415d-e685-8adc53740282"

Если значение resume содержит resume=/dev/sda1, я бы предложил изменить его на UUID. Идентификатор устройства “/dev/sda1” не всегда является постоянным и может измениться при добавлении нового диска в систему. UUID останется уникальным. Чтобы найти номер UUID# вашего раздела подкачки:

lsblk -o +uuid | grep -i swap

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

sudo cp /etc/default/grub /etc/default/~grub.bak.`date '+%Y-%m-%d'`

Если вы внесли изменения в файл /etc/default/grub, необходимо обновить конфигурацию grub:

sudo update-initramfs -u

Прочитайте вывод и убедитесь, что initramfs resume hook указывает на правильный раздел.
Затем

sudo update-grub

Затем попробуйте перевести систему в гибернацию:

sudo systemctl hibernate

Если система немедленно выходит из этого состояния, войдите в систему и прочитайте dmesg, чтобы увидеть последние ошибки [PM] и просмотрите логи, чтобы найти возможную проблему.

У меня была точно такая же проблема.
Я не мог заставить работать “systemctl suspend”,
однако есть другое решение:

$ sudo pm-suspend 

Оно просто работает без дополнительных ручных настроек.

.

Ответ или решение

Теория

Проблемы с переходом в режим сна и гибернации на серверных платформах, таких как AMD Epyc 7282, встречаются достаточно часто, особенно на более старых версиях ядра Linux и менее распространённых дистрибутивах. Любуне 18.04 с ядром 4.15 может сталкиваться с проблемами особенного характера, связанными как с совместимостью драйверов, так и с конфигурацией системы управления питанием на уровне BIOS и ACPI.

Технологии управления питанием

  1. Suspend (S3/Suspend-to-RAM): Режим, при котором большинство компонентов системы переводятся в режим энергосбережения, но оперативная память продолжает питаться, что позволяет быстро восстановить состояние системы.

  2. Hibernate (S4/Suspend-to-Disk): Данные оперативной памяти записываются на жесткий диск или SSD, и система полностью выключается. При старте система восстанавливает своё состояние, считывая данные из файла гибернации.

  3. ACPI (Advanced Configuration and Power Interface): Интерфейс для управления питанием, именно его неправильная работа часто становится источником проблем с режимами сна и гибернации.

Пример

В предоставленной проблеме пользователь сталкивается с тем, что система не переходит в режим сна, не реагируя на движения мыши и нажатия клавиш. Единственный способ "разбудить" систему – нажатие кнопки питания. Это может быть результатом неправильной обработки ACPI событий на уровне BIOS или конфликта в ядре системы.

Выводы из journalctl -u systemd-suspend.service показывают, что система действительно пытается перейти в спящий режим, но сразу же "просыпается", не завершая этот процесс корректно. Это указывает на возможное несоответствие между ожиданием программного обеспечения и поддерживаемыми режимами оборудования.

Применение

  1. Операционная система и ядро:

    • Рассмотрите возможность обновления ОС и ядра. Любуне 18.04 и ядро 4.15 устарели. Более новые версии ядра могут включать исправления и улучшения управления питанием, которые решат вашу проблему.
  2. Настройки GRUB:

    • Проверьте файл /etc/default/grub на наличие строки resume=UUID=.... Если используется указание на /dev/sda1, это следует заменить на UUID, чтобы избежать проблем с идентификатором устройства, который может изменяться.
    • Не забудьте выполнить команды sudo update-initramfs -u и sudo update-grub после изменений.
  3. Инструменты востребования гибернации и сна:

    • Попробуйте использовать pm-suspend, это альтернативный способ перевода системы в режим сна, который может обойти ограничения systemctl suspend.
    • Также, попробуйте гибернацию с помощью uswsusp с определением устройства восстановления: sudo s2disk -r /dev/sda1.
  4. Проверка ACPI и BIOS:

    • Обновите BIOS до последней версии, так как возможно исправление ошибок ACPI.
    • Проверьте и установите настройки ACPI в BIOS, убедитесь, что поддерживаются все необходимые режимы сна.
  5. Логирование и диагностика:

    • Используйте команды dmesg и journalctl для детального анализа ошибок при переходе в спящий режим, обращая внимание на метки [PM] (Power Management).
    • Проверьте журналы системы на наличие ошибок ACPI и других параметров конфигурации.
  6. Совместимость оборудования:

    • Убедитесь, что все компоненты системы, особенно периферийные устройства и драйверы, совместимы с текущими версиями ядра и поддерживают S3/S4.
  7. Конфигурация Swap:

    • Удостоверьтесь, что размер swap-раздела достаточен для хранения содержимого оперативной памяти (рекомендовано иметь размер swap равный или больше оперативной памяти).

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

Оцените материал
Добавить комментарий

Капча загружается...