Debian отключает спящий режим
Обновлено: 21.11.2024
В настоящее время доступно три метода приостановки:
Приостановка работы в ОЗУ (также известная как приостановка или сон) Состояние ожидания S3, определенное ACPI. Работает путем отключения питания большинства частей машины, кроме ОЗУ, которое требуется для восстановления состояния машины. Из-за большого энергосбережения желательно, чтобы ноутбуки автоматически переходили в этот режим, когда компьютер работает от аккумуляторов и крышка закрыта (или пользователь какое-то время неактивен). Suspend to disk (также известный как hibernate) Спящее состояние S4, как определено ACPI. Сохраняет состояние машины в пространстве подкачки и полностью выключает машину. Когда машина включена, состояние восстанавливается. До тех пор нулевое энергопотребление. Приостановка для обоих Гибрид вышеупомянутых методов, иногда называемый гибридной приостановкой. Сохраняет состояние машины в пространстве подкачки, но не выключает машину. Вместо этого он вызывает обычную приостановку в ОЗУ. Поэтому, если батарея не разряжена, система может возобновить работу из оперативной памяти. Если батарея разряжена, систему можно возобновить с диска, что намного медленнее, чем возобновление из ОЗУ, но состояние машины не будет потеряно.
Существует несколько низкоуровневых интерфейсов (бэкендов), обеспечивающих базовые функции, и несколько высокоуровневых интерфейсов, предоставляющих настройки для обработки проблемных аппаратных драйверов/модулей ядра (например, повторная инициализация видеокарты).
Эту статью или раздел необходимо расширить.
Причина: Документ "приостановить до простоя" (называемый ядром S2Idle, S0ix Intel и Modern Standby Microsoft) и значения /sys/power/mem_sleep. (Обсудить в Talk:Управление питанием/Приостановка и переход в спящий режим)
Содержание
Низкоуровневые интерфейсы
Хотя эти интерфейсы можно использовать напрямую, рекомендуется использовать высокоуровневые интерфейсы для приостановки/гибернации. Непосредственное использование низкоуровневых интерфейсов значительно быстрее, чем использование любого высокоуровневого интерфейса, поскольку выполнение всех обработчиков до и после приостановки требует времени, но обработчики могут правильно установить аппаратные часы, восстановить беспроводную связь и т. д.
ядро (swsusp)
Самый простой способ – напрямую сообщить встроенному в ядро программному коду приостановки (swsusp) переход в состояние приостановки; точный метод и состояние зависят от уровня аппаратной поддержки. В современных ядрах запись соответствующих строк в /sys/power/state является основным механизмом запуска этой приостановки.
uswsusp
uswsusp («Приостановка программного обеспечения в пользовательском пространстве») — это оболочка вокруг механизма приостановки работы ядра в ОЗУ, которая выполняет некоторые манипуляции с графическим адаптером из пользовательского пространства перед приостановкой и после возобновления работы.
См. основную статью Uswsusp.
Интерфейсы высокого уровня
Конечной целью этих пакетов является предоставление двоичных файлов/скриптов, которые можно вызывать для приостановки/перехода в спящий режим. На самом деле подключение их к кнопкам питания, щелчкам меню или событиям крышки ноутбука обычно предоставляется другим инструментам. Чтобы автоматически приостанавливать работу или переходить в спящий режим при определенных событиях, связанных с питанием, таких как закрытие крышки ноутбука или разрядка батареи в процентах, вы можете попробовать запустить Acpid.
системный
Спящий режим
Для использования режима гибернации необходимо создать раздел или файл подкачки. Вам нужно будет указать ядру на ваш своп, используя параметр возобновления = ядра, который настраивается через загрузчик. Вам также потребуется настроить файл initramfs. Это говорит ядру попытаться возобновить работу с указанного свопа в раннем пользовательском пространстве. Эти три шага подробно описаны ниже.
О разделе подкачки/размере файла
Даже если ваш раздел подкачки меньше оперативной памяти, у вас все равно есть большая вероятность успешного перехода в спящий режим. См. «image_size» в документации ядра для получения информации о псевдофайле image_size sysfs(5).
Приостановленный образ не может охватывать несколько разделов подкачки и/или файлов подкачки. Он должен полностью помещаться в один раздел подкачки или один файл подкачки.[1]
Необходимые параметры ядра
Должен использоваться параметр ядра restore=swap_device. В качестве swap_device можно использовать любой из постоянных методов именования блочных устройств. Например:
- resume=UUID=4209c845-f495-4c43-8a03-5363dd433153
- resume="PARTLABEL=Поменять раздел местами"
- resume=/dev/archVolumeGroup/archLogicalVolume -- если подкачка находится на логическом томе LVM
Параметры ядра вступят в силу только после перезагрузки. Чтобы иметь возможность сразу перейти в спящий режим, получите старший и младший номера устройств тома из lsblk и повторите их в формате major:minor в /sys/power/resume . При использовании файла подкачки дополнительно укажите смещение возобновления в /sys/power/resume_offset .[2]
Например, если используется устройство подкачки 8:3 :
Или при переходе в спящий режим в файл подкачки, если файл подкачки находится на томе 8:2 и имеет смещение 38912 :
Спящий режим в файл подкачки
Предупреждение: Btrfs на ядре Linux до версии 5.0 не поддерживает файлы подкачки. Несоблюдение этого предупреждения может привести к повреждению файловой системы. Хотя файл подкачки может использоваться на Btrfs при подключении через петлевое устройство, это приведет к серьезному снижению производительности подкачки.
Для использования файла подкачки необходимо также задать параметры ядраSusume=swap_device и, кроме того,Susmuse_offset=swap_file_offset. См. документацию ядра.
swap_device — это том, на котором находится файл подкачки, и он соответствует тому же формату, что и корневой параметр. Значение swap_file_offset можно получить, выполнив команду filefrag -v swap_file , вывод будет в формате таблицы, а требуемое значение находится в первой строке столбца Physical_offset. Например:
В примере значением swap_file_offset является первое число 38912 с двумя точками.
- Для определения устройства_подкачки можно использовать следующую команду: findmnt -no UUID -T /swapfile
- Для определения смещения_файла_подкачки можно использовать следующую команду: filefrag -v /swapfile | awk '$1=="0:" '
- Значение swap_file_offset также можно получить, запустив swap-offset swap_file . Двоичный файл swap-offset предоставляется в наборе инструментов uswsusp. Если вы используете этот метод, то эти два параметра должны быть указаны в /etc/suspend.conf через ключи возобновить устройство и возобновить смещение. В этом случае перезагрузка не требуется.
- Для многоуровневого блочного устройства, такого как зашифрованный контейнер (LUKS), RAID или LVM, параметр возобновления должен указывать на разблокированное/сопоставленное устройство, содержащее файловую систему с файлом подкачки.
- Если файл подкачки находится в /home/ , systemd-logind не сможет определить его размер и, таким образом, предотвратит переход в спящий режим со следующим сообщением: Не удалось перевести систему в спящий режим через logind: недостаточно подкачать место для гибернации. Два обходных пути см. в systemd issue 15354.
Совет. Возможно, вы захотите уменьшить объем подкачки для вашего файла подкачки, если единственной целью является возможность перехода в спящий режим, а не расширение ОЗУ.
Спящий режим в файл подкачки на Btrfs
Число возобновления_смещения можно вычислить с помощью инструмента btrfs_map_physical.c. Не пытайтесь использовать инструмент filefrag, в Btrfs "физическое" смещение, которое вы получаете от filefrag, не является реальным физическим смещением на диске; существует адресное пространство виртуального диска для поддержки нескольких устройств. [3]
Загрузите или скопируйте инструмент btrfs_map_physical.c в файл с именем btrfs_map_physical.c , затем скомпилируйте его,
и запустите его. Пример вывода показан ниже.
Обратите внимание на первое физическое смещение, возвращенное этим инструментом. В этом примере мы используем 4009762816. Также обратите внимание на размер страницы, который можно узнать с помощью getconf PAGESIZE .
Чтобы вычислить значение возобновления_смещения, разделите физическое смещение на размер страницы. В этом примере это 4009762816 / 4096 = 978946 .
Гибернация в томе LVM с тонким предоставлением
Вы можете полностью выделить том LVM, просто заполнив его нулями. Например:
Чтобы убедиться, что том полностью выделен, вы можете использовать:
Полностью выделенный том будет отображаться как имеющий 100% использование данных.
Предупреждение. Не используйте TRIM на томах подкачки с тонким выделением ресурсов, которые используются для гибернации, т. е. не используйте discard в /etc/fstab и параметр -d / --discard для swapon. . В противном случае используемое пространство будет освобождено.
Настройте initramfs
- При использовании initramfs с базовым обработчиком (по умолчанию) обработчик возобновления требуется в /etc/mkinitcpio.conf . Будь то по метке или по UUID, на раздел подкачки ссылается узел устройства udev, поэтому хук возобновления должен идти после хука udev. Этот пример был создан с использованием конфигурации хука по умолчанию:
- Когда используется initramfs с обработчиком systemd, механизм возобновления работы уже предоставлен, и дополнительные обработчики добавлять не нужно.
Технология Intel Rapid Start (IRST)
При включенной технологии Intel Rapid Start (IRST) выход из глубокого сна занимает «на несколько секунд больше, чем выход из S3, но намного быстрее, чем выход из спящего режима».
Многие системы на базе процессоров Intel поддерживают встроенное ПО для IRST, но требуют специального раздела на твердотельном накопителе (а не на жестком диске). OEM-развертывания Windows могут уже иметь уже существующий раздел IRST, который можно сохранить в процессе установки Arch Linux (вместо очистки и переразметки всего SSD). Он должен отображаться как неформатированный раздел, равный по размеру оперативной памяти системы.
Предупреждение. Раздел Intel Rapid Start не зашифрован; «Intel рекомендует отключать технологию Intel Rapid Start, если вы используете программное шифрование диска».[4]
Однако, если вы собираетесь стереть и переразметить весь диск (или уже сделали это), раздел IRST необходимо создать заново, если вы также планируете использовать эту технологию.Это можно сделать, создав пустой раздел, равный по размеру оперативной памяти системы, и установив его тип раздела на GUID D3BFE2DE-3DAF-11DF-BA40-E3A556D89593 для раздела GPT или ID 0x84 для раздела MBR. Вам также может потребоваться включить поддержку IRST в настройках микропрограммы вашей системы.
Совет. Продолжительность времени до запуска IRST (после приостановки) можно настроить в настройках микропрограммы системы.
Продолжительность процесса перехода в спящий режим IRST (т. е. копирования «всего содержимого ОЗУ в специальный раздел») зависит от объема ОЗУ системы и скорости твердотельного накопителя и может занимать от 20 до 60 секунд. Некоторые системы могут указывать на завершение процесса с помощью светодиодного индикатора, например, когда он перестает мигать.
См. также общие вопросы и ответы и руководства пользователя для технологии Intel Rapid Start.
Устранение неполадок
ACPI_OS_NAME
Возможно, вы захотите настроить таблицу DSDT, чтобы она заработала. См. DSDT.
Приостановка/спящий режим не работает или работает непостоянно
Было много сообщений о том, что экран становится черным без легко видимых ошибок или возможности что-либо сделать при входе и выходе из режима ожидания и/или гибернации. Эти проблемы наблюдались как на ноутбуках, так и на настольных компьютерах. Это не официальное решение, но переход на более старое ядро, особенно LTS-ядро, вероятно, исправит это.
Также проблема может возникнуть при использовании аппаратного сторожевого таймера (отключен по умолчанию, см. RuntimeWatchdogSec= в systemd-system.conf(5) § ОПЦИИ). Ошибка сторожевого таймера может привести к перезагрузке компьютера до того, как система завершит создание образа гибернации.
Переход с видеодрайвера Radeon на более новый драйвер AMDGPU также может помочь сделать процесс перехода в спящий режим и пробуждения успешным.
После обновления до ядра 4.15.3 возобновление может завершиться ошибкой со статическим (немигающим) курсором на черном экране. Внесение модуля nvidiafb в черный список может помочь. [5]
Ноутбуки с ЦП Intel, которые загружают модуль intel_lpss_pci для сенсорной панели, могут столкнуться с паническим состоянием ядра при возобновлении работы (мигание заглавных букв) [6]. Модуль нужно добавить в initramfs как:
Пробуждение по локальной сети
Если функция Wake-on-LAN активна, сетевая карта будет потреблять энергию, даже если компьютер находится в спящем режиме.
Мгновенный выход из режима ожидания
Система не выключается в спящем режиме
Когда вы переводите систему в спящий режим, она должна выключаться (после сохранения состояния на диске). Иногда вы можете видеть, что светодиод питания все еще светится. Если это произойдет, может быть полезно настроить HibernateMode на выключение в sleep.conf.d(5):
С приведенной выше конфигурацией, если все остальное настроено правильно, при вызове режима гибернации systemctl машина отключит сохранение состояния на диск при этом.
Сегодня мы узнаем, как отключить приостановку и спящий режим в Linux. Прежде чем мы перейдем к теме, давайте посмотрим краткое введение в режимы приостановки и гибернации на компьютере.
Что такое режимы приостановки и гибернации?
Всякий раз, когда вы приостанавливаете работу системы, компьютер переходит в спящий режим. Это означает, что все открытые приложения, файлы и документы остаются открытыми, но монитор и другие части системы будут отключены для экономии энергии. Когда вы приостанавливаете работу компьютера, он не выключается полностью. Компьютер по-прежнему включен и потребляет небольшое количество энергии.
Спящий режим — это один из типов приостановки. В настоящее время доступны три метода приостановки:
- Приостановка работы в ОЗУ или Обычная приостановка. В этом режиме экран и большинство компонентов системы будут отключены (но не полностью), за исключением ОЗУ. Все ноутбуки переходят в этот режим приостановки, когда пользователь неактивен в течение определенного времени или когда система работает от батарей или крышка закрыта. Когда вы нажимаете клавишу или кнопку мыши, компьютер переходит в обычный режим.
- Приостановить работу на ДИСК или перевести в спящий режим. В этом режиме текущее состояние компьютера будет сохранено в области подкачки, а система будет полностью отключена. При повторном включении системы состояние восстанавливается. Обычно это называется гибернацией.
- Приостановка для ОБОИХ или гибридная приостановка. В этом режиме текущее состояние компьютера сохраняется в пространстве подкачки, и вызывается обычный режим приостановки до ОЗУ. Итак, компьютер не выключается полностью. Если батарея разряжена, компьютер можно возобновить с диска. Если батарея не разряжена, компьютер можно возобновить из оперативной памяти. Иногда это называется гибридной приостановкой.
Надеюсь, вы получили общее представление о режимах приостановки и гибернации. Теперь вернемся к теме и посмотрим, как отключить режимы приостановки и гибернации.
Отключить приостановку и спящий режим в Linux
Если вы хотите, чтобы ваш Linux-компьютер не приостанавливался и не переходил в спящий режим, отключите следующие цели на уровне systemd::
Пример вывода:
Отключить приостановку и гибернацию в Linux
Сохраните все работы (на всякий случай), а затем выполните следующую команду, чтобы применить изменения:
В качестве альтернативы перезагрузите систему, чтобы это вступило в силу.
Проверьте, действительно ли изменения были применены:
Пример вывода:
Как видно из приведенного выше вывода, системные цели приостановки и гибернации были замаскированы и неактивны.
Чтобы снова включить приостановку и спящий режим в вашей системе, просто запустите:
Пример вывода:
Если вы просто хотите предотвратить приостановку работы при закрытии крышки, отредактируйте файл /etc/systemd/logind.conf:
Добавьте/измените следующие строки:
Сохраните и закройте файл. Не забудьте перезапустить systemd-logind.service или перезагрузить систему, чтобы изменения вступили в силу.
Справка по приостановке работы программного обеспечения
На этой странице собрана информация о приостановке работы программного обеспечения в Debian. Поскольку основные системные компоненты быстро меняются в разных версиях Debian, приостановка работы программного обеспечения работает по-разному в разных версиях Debian. Эта страница разделена по версиям Debian от новой к старой.
Дополнительные материалы для чтения см. также по ссылкам внизу этой страницы, посвященным переходу в спящий режим и приостановке.
- Справка по приостановке работы программного обеспечения
- Debian Jessie и новее (8 и новее)
- В Гноме
- В плазме KDE
- Отключить приостановку и спящий режим ол>
- Включение отладки для pm-utils
- Исправление поврежденного видео в резюме
Debian Jessie и новее (8 и новее)
С systemd pm-utils и его перехватчики больше не используются, вместо них используется systemd-suspend. Чтобы приостановить использование:
В Гноме
Еще один вариант в оболочке Gnome — просто нажать ALT, прежде чем нажать кнопку выключения в пользовательском меню.
В плазме KDE
KDE уже имеет кнопку приостановки в обычном меню выключения, хотя вместо этого она может быть помечена как «Сон» в Plasma 5.16 и новее. Случаи, когда он может не отображаться, - это если не установлены powerdevil или upower. systemd используется, если он доступен, но это не обязательно.
Обратите внимание, что если управление питанием приостановлено приложением, система может не приостанавливаться автоматически, даже если в настройках энергосбережения настроено иное. Например, это часто делается медиаплеерами, чтобы экран не затемнялся. Элемент «Батарея и яркость» на панели задач сообщит вам, приостановлено ли управление питанием, и какой процесс в данный момент приостанавливает его.
Отключить приостановку и спящий режим
Для систем, которые никогда не должны пытаться приостановить работу любого типа, эти цели можно отключить на уровне systemd следующим образом:
Чтобы снова включить режим гибернации и приостановки, используйте следующую команду:
Современный альтернативный подход к отключению приостановки и гибернации заключается в создании /etc/systemd/sleep.conf.d/nosuspend.conf как
Приведенный выше метод работает в Debian 10 Buster и новее. Подробности смотрите в systemd-sleep.conf(5).
Если вы просто хотите предотвратить приостановку работы при закрытой крышке, вы можете установить следующие параметры в /etc/systemd/logind.conf:
Затем запустите systemctl restart systemd-logind.service или перезагрузите компьютер.
Дополнительная информация доступна на странице руководства: man logind.conf
Debian Wheezy (7)
Очень заметным изменением является отказ от HAL. Если у вас по-прежнему установлен пакет hal, его следует удалить, иначе он будет мешать работе pm-utils во время приостановки.
Если приостановка/возобновление работы хорошо работает в вашей системе, вам повезло, и вам не нужно ничего читать на этой странице. В противном случае первым шагом к отладке является включение отладки для pm-utils, которые управляют процессом приостановки и возобновления.
Включение отладки для pm-utils
Журнал процессов приостановки и возобновления находится в файле /var/log/pm-suspend.log. По умолчанию он содержит умеренно подробную информацию. Для отладки можно включить дополнительную информацию, вставив строку export PM_DEBUG=true в начало файла /usr/lib/pm-utils/pm-functions.
Исправление поврежденного видео в резюме
Очень распространенной проблемой, обнаруживаемой после возобновления работы компьютера, является повреждение видео (или черный экран, или отсутствие подсветки ЖК-дисплея). Первый шаг — проверить, работает ли система, что можно сделать, просто нажав кнопку Capslock и проверив, меняется ли индикатор Capslock соответствующим образом. Если система все еще работает, в большинстве случаев нам нужно добавить видеопричуду для вашей видеокарты.
В Debian теперь по умолчанию включена настройка режима ядра (KMS) для большинства видеокарт Intel, nVidia и ATI. Но видеопричуда pm-utils все же поддерживает KMS.Поэтому в большинстве случаев вам следует сначала попробовать отключить KMS. Подробные инструкции для вашей конкретной видеокарты можно найти на странице настройки режима ядра.
После отключения KMS, если видео после возобновления работы по-прежнему повреждено, вы можете попытаться приостановить работу системы, используя некоторые особенности видео. Прочтите man-страницу программы pm-suspend, где подробно описаны все доступные особенности, и попробуйте их комбинации из командной строки. Если вы успешно найдете одну комбинацию особенностей, подходящую для вашей системы, вы можете добавить их в /usr/lib/pm-utils/video-quirks, чтобы сделать их постоянными. В то же время, пожалуйста, помогите зарегистрировать ошибку в пакете pm-utils с патчем о ваших изменениях, чтобы он мог принести пользу массе.
Частая проблема, возникающая при обновлении систем со старых версий Debian, заключается в том, что включение quirk-s3-bios приводит к зависанию системы во время приостановки. Если ваша система зависает во время приостановки, внимательно проверьте pm-suspend.log после включения отладки и убедитесь, что quirk-s3-bios не используется.
Центр тестирования ядра
Ядро имеет журнал изменений приостановки тестирования.
Введите атрибут sysfs /sys/power/pm_test, позволяющий тестировать основной код приостановки. А именно, запись одной из приведенных ниже строк в этот файл приводит к тому, что код приостановки работает в одном из тестовых режимов, определенных следующим образом: тест замораживания зависание процессов тестирование устройств зависание процессов и приостановка устройств тестирование платформы зависание процессов, приостановка устройств и методы глобального управления платформой(*) тест процессоров замораживание процессов, приостановка устройств, методы глобального управления платформой и отключение незагрузочных процессоров core test замораживание процессов, приостановка устройств, методы глобального управления платформой, отключение незагрузочных ЦП и приостановке работы платформенных/системных устройств
(*) Это глобальные методы управления ACPI в системах ACPI
Затем, если приостановка запущена обычными средствами, ядро приостановки будет выполнять свои обычные операции до точки, указанной заданным уровнем тестирования. Затем он подождет 5 секунд и выполнит операции возобновления, необходимые для возврата системы в полностью функциональное состояние. Запись «none» в /sys/power/pm_test отключает тестирование.
При открытии для чтения /sys/power/pm_test содержит разделенный пробелом список всех доступных тестов (включая "none", что представляет нормальную функциональность), в котором указан текущий уровень теста. квадратными скобками.
Фактическое сообщение (для гуглеров): приостановить отладку: Ожидание 5 секунд.
У меня есть машина, к которой я обращаюсь только через SSH, которую я обновил до Debian 10 пару дней назад. После обновления кажется, что он засыпает, когда он неактивен. Такого никогда не было с предыдущими обновлениями, такими как с 7 по 8 или с 8 по 9. Похоже, что настройки сна вернулись к состоянию по умолчанию. Как просмотреть и изменить параметры питания и режима сна в командной строке? Любое руководство высоко ценится. Спасибо!
5 ответов 5
Я столкнулся с этим с gdm3 после обновления до Debian 10: всякий раз, когда компьютер оставался на начальном экране входа в систему, он через некоторое время переходил в спящий режим.
Чтобы исправить это, мне пришлось отредактировать параметры питания для GNOME при запуске сеанса gdm3; они хранятся в /etc/gdm3/greeter.dconf-defaults , а строки для редактирования находятся в разделе «Автоматическая приостановка» в конце файла:
В частности, я изменил тип sleep-inactive-ac-type на 'blank' . Несмотря на свое название, это не файл шаблона, который следует копировать; изменение должно быть внесено в файл /etc/gdm3/greeter.dconf-defaults. Изменения учитываются после перезапуска службы gdm3.
Мне не нужно было вносить какие-либо изменения в настройки systemd или logind; это означает, что если я захочу, я все еще могу приостановить работу системы вручную.
@Roman файл действительно является Greeter.dconf-defaults , его не нужно переименовывать (учитывается, т.к. на него есть симлинк в /usr/share/gdm/dconf ). Вам необходимо перезапустить службу gdm3, чтобы изменения вступили в силу.
Кажется, есть пара отчетов об ошибках Debian по этой проблеме: bugs.debian.org/cgi-bin/bugreport.cgi?bug=896083 & bugs.debian.org/cgi-bin/bugreport.cgi?bug =893964 . Однако кажется, что это сделано намеренно, и никаких признаков возврата к старому поведению без приостановки не планируется: есть утверждение, что необходимость в изменении возникла «для соблюдения европейских и американских правил энергосбережения».
Вы можете попробовать следующее в зависимости от ваших потребностей:
Отключить приостановку и гибернацию:Чтобы снова включить режим гибернации и приостановки, используйте следующую команду:
Если вы просто хотите предотвратить приостановку работы при закрытой крышке, вы можете установить следующие параметры в /etc/systemd/logind.conf :
перезапустите службу или перезагрузите компьютер
Ситуация хитрая и глупая одновременно. Я пробовал много вариантов, чтобы понять, почему это не работает.
Решение: (**Проверено и работает на Debian 10 с GNOME на ноутбуке HP Elitebook) Существует ДВА файла приветствия.dconf-defaults Первый в /etc/gdm3/greeter.dconf-defaults и второй в /usr/share /gdm/greeter.dconf-defaults .
Главная идея в том, что ДВА этих файла ДОЛЖНЫ БЫТЬ ОДИНАКОВЫМИ! Отредактируйте /etc/gdm3/greeter.dconf-defaults из ROOT и раскомментируйте СТРОКУ ниже.
Просто СОХРАНИТЕ, скопируйте в ПУТЬ /usr/share/gdm/greeter.dconf-defaults и перезагрузите компьютер.
Обратите внимание, что эти файлы ДОЛЖНЫ БЫТЬ ОДИНАКОВЫМИ!
PS Я думаю, что это ошибка, потому что после редактирования /etc/gdm3/greeter.dconf-defaults dpkg-reconfigure gdm3 --не работает должным образом (следует изменить /usr/share/gdm/greeter.dconf- по умолчанию).
Я внес изменения в /etc/gdm3/greeter.dconf-defaults, и действительно, это останавливает сон во время ожидания на экране GDM. Однако если вы войдете, например, в gnome, то примерно через 20 минут повторится тот же сон.
Примечание. Я установил рабочий стол gnome (конфиденциальность), чтобы НЕ блокировать экран в режиме ожидания. Предположительно, это работает, так как при выходе из спящего режима (при нажатии на клавиатуру) экран не блокируется, а рабочий стол остается «как слева».
Примечание. Выполнение «длительного задания» на физическом дисплее (через X, не проверено на TTY) задерживает переход в спящий режим. Активность в сеансе ssh (как указано выше) не работает.
Очевидно, что в "приостановке обработки событий" есть два уровня:
A) часть, в которой выполняется действие приостановки (технически компьютер переводится в спящий режим) и
B) часть, которая решает, когда требуется приостановка, и запрашивает действие приостановки.
Под капотом находится «реализация» действия приостановки. Но «неинтерактивные кишки» под капотом вряд ли будут отслеживать действия пользователя и приостанавливать работу системы, если человек уходит на обед.
Среда рабочего стола, OTOH, склонна следить за взаимодействием с пользователем и "сворачиваться" по истечении времени ожидания.
Решение, предложенное @Stephen Kitt и доработанное @Ivan, относится к среде рабочего стола, взяв на себя инициативу решать, когда система устала от бодрствования. Более конкретно: он занимается GDM = этапом «диспетчера отображения». Диспетчер отображения является эквивалентом «winlogon» в Xwindows, т. е. средой перед входом пользователя в систему. В другом месте люди указывали, что без дополнительной настройки, как только пользователь входит в систему с графическим рабочим столом, система все еще может перейти в спящий режим. по тайм-ауту. Я бы объяснил это тем, что «Х-сессия берет верх» (или оконный менеджер или что-то еще). Вероятно, это то, что вы можете настроить с помощью приложения «Настройки» во время сеанса рабочего стола, а именно в диалоговом окне «Питание» есть специальный виджет для включения/отключения приостановки по тайм-ауту.
Под капотом оказывается, что systemd завладел и этой игровой площадкой. Но я нашел источники, которые НЕ рекомендуют маскировать соответствующие sleep.target , suspend.target , hibernate.target и hybrid-sleep.target — как сообщается, это может иметь неблагоприятные побочные эффекты.
Возможно, есть лучший способ: отредактируйте /etc/systemd/sleep.conf и активируйте следующие две строки:
Не уверен, какую службу systemd нужно перезапустить, чтобы новая конфигурация вступила в силу. Я предлагаю вам просто перезагрузить всю машину с Linux.
Если у вас все еще есть acpid в системе, вы можете попробовать включить его режим отладки и регистрировать события в системном журнале — отредактируйте /etc/default/acpid и введите
следующее, что вам нужно
и тогда вы также можете
<р>. тем не менее весь этот образ действий (ацид) кажется в настоящее время в значительной степени спорным. Интересные вещи в настоящее время происходят в systemd, acpid, возможно, годится только для запуска пользовательских команд оболочки в ответ на кнопки ACPI и еще много чего. Теоретически вы могли бы подобрать «имя события» для события приостановки, а затем создать правило acpid, чтобы «отбросить» это событие, но для меня неясно, имеет ли это какой-то практический эффект или нет, способ предотвращения события вызывая фактическое действие приостановки.Читайте также: