I recently got a used HP 8470p that works perfectly well, and I put an SSD I used to boot externally on two machines inside it, and it works fine. I'm not very familiar with logind or anything to do with suspend and hibernate since I never really used it, but I edited my logind.conf to look like this:
# This file is part of elogind.
#
# elogind 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]
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root
#InhibitDelayMaxSec=5
#HandlePowerKey=suspend
#HandleSuspendKey=suspend
#HandleHibernateKey=hibernate
HandleLidSwitch=suspend
#HandleLidSwitchExternalPower=suspend
#HandleLidSwitchDocked=ignore
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
#LidSwitchIgnoreInhibited=yes
#HoldoffTimeoutSec=30s
#IdleAction=ignore
#IdleActionSec=30min
#RuntimeDirectorySize=10%
#RuntimeDirectoryInodes=400k
#RemoveIPC=yes
#InhibitorsMax=8192
#SessionsMax=8192
[Sleep]
AllowSuspend=yes
AllowHibernation=yes
AllowSuspendThenHibernate=yes
AllowHybridSleep=yes
AllowPowerOffInterrupts=yes
BroadcastPowerOffInterrupts=yes
AllowSuspendInterrupts=no
BroadcastSuspendInterrupts=yes
HandleNvidiaSleep=no
SuspendState=mem standby freeze
SuspendMode=mem
HibernateState=disk
HibernateMode=platform shutdown
HybridSleepState=disk
HybridSleepMode=suspend platform shutdown
#HibernateDelaySec=10800
Hibernating works fine by using `loginctl hibernate`, but `loginctl suspend` says this:
Failed to suspend system via elogind: Sleep verb "suspend" not supported
And the strange thing is `echo mem > /sys/power/state` suspends the laptop just fine... and it resumes instantly when i press the on button. Anybody know what to do?
Try this change, need reboot the system.
SuspendMode=s2idle
In my system, I have the entire [Sleep] section commented out. The default value work fine.
Thanks! That worked... but it appears that when I when I close the lid the system does not suspend (there's a wifi status indicator that turns orange when I suspend, but that doesn't happen when I close the lid)... any idea why?
Try,
SuspendMode=s2idle shallow deep
In addition, if you have any power management apps like
xfce4-power-manager running in the system, you also need to change it to suspend when lid is closed.
Nope, editing suspend mode again does nothing, only the display turns off, just like before
I only have bspwm installed and I have no other power manager app running apart from tlp...
Also another question: what does `shallow` and `deep` do?
I noticed a recent change of behaviour with regard to suspend: having a certain process active (in my case, mpv) made the kernel to refuse suspending, which is absurd.
hmmm I also noticed another problem. KDE Neon recognises the lid closing just fine, and suspends "properly": as in, all the LED status indicators turn off apart from the power one, which flickers every few seconds (the behavior under Windows, i.e the "proper" behavior). Is this a problem with using OpenRC or something else?
EDIT: also forgot to mention that if mpv is running, it suspends "just fine", but then again, my system doesn't seem to actually be suspending.
Power LED "breathing" is the regular suspend behaviour. You can change the lid-close action in /etc/elogind/logind.conf to hibernate or power off.
This is pretty late, but I solved this problem by looking into the manpage of logind.conf: I changed suspend mode to 'deep', which does the expected behavior for suspend (e.g all LEDs turned off, power LED flickering), but handling the closed lid is really hit or miss, and seems to work less than a third of the time. Another strange thing noticed now, though: I put these two lines in my logind.conf
IdleAction=hybrid-sleep
IdleActionSec=2min
but it seems that my system hybrid sleeps regardless of whether I'm idle or not, and has hybrid-slept two times already while writing this message. Did I do something wrong?
EDIT: aaaaand it suspended another time while submitting this message.