Subject: bug#78040: elogind's suspend-then-hibernate requires dmi-sysfs to detect wakeup type

From: Ludovic Courtès <[email-masked]>
Date: Thu, 24 Apr 2025 22:38:30 +0200

Hello Josselin,

Josselin Poiret via Bug reports for GNU Guix <[email-masked]> writes:

> The suspend-then-hibernate option of elogind tries to detect the type of
> wakeup that the system supports, and to that end reads
> /sys/firmware/dmi/entries/1-0/raw.  However that file only exists if
> the kernel module dmi-sysfs has been loaded, which doesn't seem to be
> the case by default on my Guix system.
>
> If that doesn't work out, it falls back to a custom implementation that
> wakes up the system periodically to check the battery status, however
> that is also broken for some other reason™ on my system, leading to an
> instant hibernation.

I experienced it too; glad you found the reason!

> Loading dmi-sysfs manually solves this issue, but I don't know how to do
> that with the elogind-service-type implementation.

Maybe an activation snippet could do:

  (load-linux-modules-from-directory '("dmi-sysfs")
                                     (current-kernel-directory))

?

Ludo’.