[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#57490: UPower ignores ‘critical-power-action’
From: |
Ludovic Courtès |
Subject: |
bug#57490: UPower ignores ‘critical-power-action’ |
Date: |
Tue, 30 Aug 2022 23:56:58 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) |
Ludovic Courtès <ludo@gnu.org> skribis:
> Looking at the code, it could be because the ‘CanHybridSleep’ method
> returns false, but why that would happen is unknown to me.
Indeed, if we run ‘dbus-monitor --system’ and
‘herd restart upower-daemon’ (in QEMU), we see this:
--8<---------------cut here---------------start------------->8---
method call time=1661890192.586471 sender=:1.40 -> destination=:1.39 serial=16
path=/org/freedesktop/UPower; interface=org.freedesktop.UPower;
member=GetCriticalAction
method call time=1661890192.586862 sender=:1.39 -> destination=:1.1 serial=17
path=/org/freedesktop/login1; interface=org.freedesktop.login1.Manager;
member=CanHybridSleep
method return time=1661890192.588676 sender=:1.1 -> destination=:1.39
serial=104 reply_serial=17
string "na"
method call time=1661890192.589034 sender=:1.39 -> destination=:1.1 serial=18
path=/org/freedesktop/login1; interface=org.freedesktop.login1.Manager;
member=CanHibernate
method return time=1661890192.591082 sender=:1.1 -> destination=:1.39
serial=105 reply_serial=18
string "na"
method return time=1661890192.591405 sender=:1.39 -> destination=:1.40
serial=19 reply_serial=16
string "PowerOff"
--8<---------------cut here---------------end--------------->8---
That is, elogind returns “na” to the Can* methods.
Same story on my actual laptop:
--8<---------------cut here---------------start------------->8---
$ dbus-send --print-reply --system --dest=org.freedesktop.login1
/org/freedesktop/login1 org.freedesktop.login1.Manager.CanHybridSleep
method return time=1661890748.184775 sender=:1.1 -> destination=:1.130
serial=253 reply_serial=2
string "na"
$ dbus-send --print-reply --system --dest=org.freedesktop.login1
/org/freedesktop/login1 org.freedesktop.login1.Manager.CanHibernate
method return time=1661890756.999248 sender=:1.1 -> destination=:1.131
serial=254 reply_serial=2
string "na"
$ dbus-send --print-reply --system --dest=org.freedesktop.login1
/org/freedesktop/login1 org.freedesktop.login1.Manager.CanPowerOff
method return time=1661890761.375007 sender=:1.1 -> destination=:1.132
serial=258 reply_serial=2
string "yes"
--8<---------------cut here---------------end--------------->8---
This is not surprising since our ‘logind.conf’ reads:
--8<---------------cut here---------------start------------->8---
HybridSleepState=disk
--8<---------------cut here---------------end--------------->8---
… meaning that “hybrid sleep” attempts to suspend-to-disk¹, something
that’s not implemented yet in Guix System².
Setting ‘hybrid-sleep-state’ to '("mem") doesn’t help though:
“CanHybridSleep” still returns “na”. I’m looking at ‘can_sleep_state’
in elogind without seeing why it doesn’t return true.
To be continued…
Ludo’.
¹ Per <https://man.voidlinux.org/logind.conf.5>.
² But it’s almost there! https://issues.guix.gnu.org/49475