KDE: приостановить в состояние ‘заморозки’ вместо ‘памяти’

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

У меня есть 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. Вы можете создать пользовательский таймер и юнит, чтобы добиться желаемого поведения.

Шаги:

  1. Создайте shell-скрипт:

    #!/bin/bash
    echo freeze > /sys/power/state

    Сохраните этот файл, например, как /usr/local/bin/suspend_to_freeze.sh, и дайте ему права на выполнение:

    chmod +x /usr/local/bin/suspend_to_freeze.sh
  2. Создайте 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
  3. Создайте таймер для системы:
    Создайте файл /etc/systemd/system/suspend-to-freeze.timer:

    [Unit]
    Description=Timer for Suspend to Freeze
    
    [Timer]
    OnIdleSec=30min
    Persistent=true
    
    [Install]
    WantedBy=timers.target
  4. Активируйте сервис и таймер:

    systemctl enable suspend-to-freeze.timer
    systemctl start suspend-to-freeze.timer

Эти шаги позволят системе автоматически переходить в состояние «freeze» через 30 минут бездействия.

2. Настройка ACPI

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

  1. Измените настройки 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.

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

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