Вопрос или проблема
У меня есть Lenovo Helix 2, у которого сломана поддержка режима сна в оперативной памяти (S3). Однако режим “легкого сна” (S0ix) работает нормально, как было проверено с помощью echo freeze > /sys/power/state
.
Я могу привязать кнопку питания к использованию freeze
вместо mem
с помощью обработчиков событий acpid
, но я действительно хочу, чтобы рабочая среда обрабатывала это, поскольку она может выполнять такие действия, как “приостановить через N минут неактивности пользователя”, что acpid
сделать не может.
К сожалению, единственные опции, которые предоставляет менеджер питания KDE, это “Ничего не делать”, “Заблокировать экран”, “Приостановить”, “Гиберировать” и “Выключить”. У него есть опция “выполнить скрипт”, но это применяется только при переходе между состояниями питания — например, я мог бы заставить его запустить скрипт при переключении с сети на батарею или с батареи на низкую зарядку, но не когда он работает от батареи и находится в режиме ожидания в течение 30 минут.
Итак, есть ли способ — либо как часть конфигурации KDE, либо как опция systemd, sysfs или ядра — переопределить настройки, чтобы он попытался выполнить freeze
вместо или в качестве альтернативы suspend
?
Вместо событий acpi вы можете посмотреть в
/etc/default/acpi-support
(на последнем ubuntu). Однако я не уверен, будет ли это хорошо работать с вашей рабочей средой или нет. Там можно указать метод acpi-сна, если вы переключитесь на управление приостановкой acpi-support.
Ответ или решение
Настройка KDE для использования режима «freeze» вместо «suspend»
У вас возникла задача настроить ваш Lenovo Helix 2 на использование состояния «freeze» (S0ix) вместо стандартного режима «suspend to RAM» (S3), который не поддерживается должным образом на вашем устройстве. Эта ситуация требует комплексного подхода, так как стандартные настройки KDE не предоставляют возможности для полноценной конфигурации в данной области. В этом ответе мы рассмотрим возможные решения и шаги, которые помогут решить данную проблему.
Проблема
KDE Plasma предоставляет ограниченные опции управления энергопотреблением, включая лишь несколько действий для кнопки питания. Вам необходимо, чтобы KDE мог выполнять команду echo freeze > /sys/power/state
при бездействии системы, поскольку текущая поддержка S3 отсутствует или неисправна.
1. Использование Systemd
Одним из наиболее эффективных способов настройки бездействия системы для перевода в состояние «freeze» является использование системного менеджера systemd
. Вы можете создать пользовательский таймер и юнит, чтобы добиться желаемого поведения.
Шаги:
-
Создайте shell-скрипт:
#!/bin/bash echo freeze > /sys/power/state
Сохраните этот файл, например, как
/usr/local/bin/suspend_to_freeze.sh
, и дайте ему права на выполнение:chmod +x /usr/local/bin/suspend_to_freeze.sh
-
Создайте systemd юнит:
Создайте файл, например,/etc/systemd/system/suspend-to-freeze.service
:[Unit] Description=Suspend to Freeze [Service] Type=oneshot ExecStart=/usr/local/bin/suspend_to_freeze.sh User=root [Install] WantedBy=suspend.target
-
Создайте таймер для системы:
Создайте файл/etc/systemd/system/suspend-to-freeze.timer
:[Unit] Description=Timer for Suspend to Freeze [Timer] OnIdleSec=30min Persistent=true [Install] WantedBy=timers.target
-
Активируйте сервис и таймер:
systemctl enable suspend-to-freeze.timer systemctl start suspend-to-freeze.timer
Эти шаги позволят системе автоматически переходить в состояние «freeze» через 30 минут бездействия.
2. Настройка ACPI
Вы можете попробовать изменить настройки ACPI, чтобы попытаться активировать поддержку способа сна, включив режим «freeze». Для этого можно изменить файл конфигурации ACPI.
- Измените настройки ACPI:
Откройте файл/etc/default/acpi-support
и найдите строку, связанную с методом «suspend». Вы можете изменить ее наfreeze
. Учитывайте, что это решение может не сработать с некоторыми окружениями рабочего стола.
3. Настройка KDE через параметр «Run Script»
Хотя KDE Plasma не предоставляет прямую опцию для настройки открытия в режиме «freeze», использование опции «run script» при переводе в режим ожидания возможно. Вы можете попробовать модифицировать/добавить скрипт, который будет реагировать на событие ожидания (если это возможно).
Заключение
Существует несколько методов, позволяющих вам настроить ваш Lenovo Helix 2 на использование состояния «freeze» вместо обычного «suspend». Использование systemd
скорее всего окажется наиболее простым и эффективным способом. Также не забывайте экспериментировать с настройками ACPI, чтобы улучшить совместимость вашего устройства с различными управляемыми энергопотреблением режимами. Таким образом, вы сможете обеспечить себе более эффективное управление энергией, сохраняя структурированную и продуктивную работу в KDE Plasma.