Bug 32491

Summary: systemd берёт на себя управление питанием и дерётся за эту функцию с KDE
Product: Sisyphus Reporter: Anton Farygin <rider>
Component: systemdAssignee: Alexey Shabalin <shaba>
Status: CLOSED WORKSFORME QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: arseny, evg, rider, shaba, zerg
Version: unstable   
Hardware: all   
OS: Linux   

Description Anton Farygin 2016-09-12 16:46:12 MSK
systemd-231-alt2, KDE4

в настройках KDE стоит - при закрытии крышки ноутбука засыпать.

происходит следующее:
при закрытии крышки ноутбука он засыпает, но при открытии - просыпается и снова засыпает.

systemd отлавливает событие закрытия крышки и отправляет ноутбук в сон, а KDE 4 делает тоже самое, но чуть позже.
В идеале управление питанием надо отдать на сторону DE, что бы пользователь мог легко настраивать нужное ему поведение.
Comment 1 Sergey V Turchin 2016-09-12 16:58:13 MSK
Еще в логах systemd говорит, что sleep.target больше не нужен.
Comment 2 Alexey Shabalin 2016-09-12 21:56:12 MSK
что показывает systemd-inhibit --list ?
PowerDevil должен сам посылать сигнал systemd.

https://quickgit.kde.org/?p=kde-workspace.git&a=blobdiff&h=efc3476833ba421b39f71f4013848f49f33f62d1&hp=2196ea4743b5933353388e1cbaa8f234f253ee09&hb=03a27e496a178a6aeeca23e53b52f4d87cd0fbef&f=powerdevil%2Fdaemon%2Fpowerdevilpolicyagent.cpp
Comment 3 Alexey Shabalin 2016-09-13 21:42:52 MSK
Предлагаю разобраться, почему PowerDevil не сообщает systemd'ему, что будет сам управлять.
Comment 4 Anton Farygin 2016-09-14 07:42:39 MSK
# systemd-inhibit --list
     Who: ModemManager (UID 0/root, PID 589/ModemManager)
    What: sleep
     Why: ModemManager needs to reset devices
    Mode: delay

     Who: PowerDevil (UID 500/rider, PID 26362/kded4)
    What: handle-power-key:handle-suspend-key:handle-hibernate-key:handle-lid-switch
     Why: KDE handles power events
    Mode: block

2 inhibitors listed.

Более того - он посылает, но происходит это позже чем systemd
Comment 5 Anton Farygin 2016-09-14 07:43:27 MSK
KDE всё-таки тут не при чём.
Comment 6 Alexey Shabalin 2016-09-14 09:44:43 MSK
(В ответ на комментарий №1)
> Еще в логах systemd говорит, что sleep.target больше не нужен.
Нужен. Вы не совсем правильно перевели.
Запись в журнале "sleep.target: Unit not need anymore. Stopping." означает, что он не нужен в данный момент, поэтому завершается. Это определено в конфиге юнита как StopWhenUnneeded=yes.
Comment 7 Alexey Shabalin 2016-09-14 10:12:23 MSK
(В ответ на комментарий №5)
> KDE всё-таки тут не при чём.
почему не причем? в gnome3 все работает как ожидается.

Покажите настройки /etc/systemd/logind.conf, или другие конфиги /etc/systemd/logind.conf.d/*.conf , где переопределяются
HandleLidSwitch
LidSwitchIgnoreInhibited
или другие *IgnoreInhibited

Попробуйте указать в конфиге
LidSwitchIgnoreInhibited=no
(судя по man logind.conf - LidSwitchIgnoreInhibited= defaults to "yes")
Comment 8 Anton Farygin 2016-09-14 10:49:02 MSK
Всё закомментировано.


# cat /etc/systemd/logind.conf 
#  This file is part of systemd.                                                                                                                             
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See logind.conf(5) for details.

[Login]
#NAutoVTs=6
#ReserveVT=6
#KillUserProcesses=yes
#KillOnlyUsers=
#KillExcludeUsers=root
#InhibitDelayMaxSec=5
#HandlePowerKey=poweroff
#HandleSuspendKey=suspend
#HandleHibernateKey=hibernate
#HandleLidSwitch=suspend
#HandleLidSwitchDocked=ignore
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
#LidSwitchIgnoreInhibited=yes
#HoldoffTimeoutSec=30s
#IdleAction=ignore
#IdleActionSec=30min
#RuntimeDirectorySize=10%
#RemoveIPC=yes
#InhibitorsMax=8192
#SessionsMax=8192
#UserTasksMax=33%
Comment 9 Alexey Shabalin 2016-09-14 10:51:44 MSK
(В ответ на комментарий №7)
> Попробуйте указать в конфиге
> LidSwitchIgnoreInhibited=no
> (судя по man logind.conf - LidSwitchIgnoreInhibited= defaults to "yes")

https://bugs.freedesktop.org/show_bug.cgi?id=76267#c10
тут http://article.gmane.org/gmane.comp.sysutils.systemd.devel/18764 описано, почему LidSwitchIgnoreInhibited=yes
Comment 10 Anton Farygin 2016-09-14 10:58:49 MSK
LidSwitchIgnoreInhibited=no само собой помогло.

По ссылке странный комментарий. Ну, я понимаю о чём они пишут, но KDE так же прекрасно сам управляет питанием на ноутбуках с nvidia.

Предлагаю сделать каталог /etc/systemd/logind.conf.d/ и пусть туда KDE кладёт конфиг с LidSwitchIgnoreInhibited=no.

Зерг, что скажешь ?
Comment 11 Sergey V Turchin 2016-09-19 14:17:40 MSK
(В ответ на комментарий №10)
> Предлагаю сделать каталог /etc/systemd/logind.conf.d/ и пусть туда KDE кладёт
> конфиг с LidSwitchIgnoreInhibited=no.
> Зерг, что скажешь ?
Не против. Могу logind.conf поправить в какомто-installer-feature.
Comment 12 Anton Farygin 2016-09-19 18:18:35 MSK
А для уже установленных систем что делать ?
Comment 13 Alexey Shabalin 2016-09-19 19:57:26 MSK
а зачем править дефолтовые конфиги? когда systemd позволяет это делать дополнительными drop-in конфигами?

надо просто создать файл /etc/systemd/logind.conf.d/ledswitch.conf
с содержимым
LidSwitchIgnoreInhibited=no
Comment 14 Alexey Shabalin 2016-09-19 19:58:28 MSK
т.е. lidswitch.conf
Comment 15 Sergey V Turchin 2016-09-20 11:46:21 MSK
(В ответ на комментарий №13)
> а зачем править дефолтовые конфиги? когда systemd позволяет это делать
> дополнительными drop-in конфигами?
> 
> надо просто создать файл /etc/systemd/logind.conf.d/ledswitch.conf
Нет каталога такого в p8.

> с содержимым LidSwitchIgnoreInhibited=no
Сложнее решить, в какой пакет сунуть или как назвать новый пакет.
Comment 16 Sergey V Turchin 2016-09-20 11:47:39 MSK
(В ответ на комментарий №12)
> А для уже установленных систем что делать ?
Писать в рассылку или на форум.
Comment 17 Sergey V Turchin 2016-09-20 11:53:45 MSK
(В ответ на комментарий №10)
> я понимаю о чём они пишут, но KDE так же
> прекрасно сам управляет питанием на ноутбуках с nvidia.
Это может быть актуально для старых nvidia, которых у нас еще 2 идет.
Comment 18 Sergey V Turchin 2016-09-20 11:57:23 MSK
(В ответ на комментарий №12)
> А для уже установленных систем что делать ?
apt-cache search ^installer-feature| wc
А еще KDE5 надо проверить.
Comment 19 Alexey Shabalin 2018-02-13 14:13:20 MSK
проявляется ли проблема сейчас? или багу можно закрыть?
Comment 20 Anton Farygin 2018-02-13 14:32:00 MSK
Давно не замечал.