Framework Laptop, Fedora 35, and Battery Drain in Bag (sleep/hibernate)

Having an issue where the framework laptop running Fedora 35 (Gnome, Workstation) is either not sleeping/hibernating or doing so extremely inefficiently as a 95% charged laptop might die in a laptop bag after 24-48 hours of non-use. There seem to be threads over on the framework forums (like this) but I didn’t see this direct question over here and thought it might be beneficial to get closer to the source. Will provide any useful output requested, but I’m not sure where to look (I’m also not seeing any sleep things in the BIOS – perhaps I need to update my BIOS or it doesn’t exist)

Side-note: the framework was so easy to open and work in that it was actually shocking (5 captive screws allow removal of magnetically attached keyboard/touchpad with a single finger). It’s pretty great, but keeping battery while closed would be a very welcome out-of-the-box fix.

1 Like

It’s a little tricky in Fedora because they got away from using swap in favor of zram. To properly hibernate, you need to make a swap partition and change a few kernel parameters. This person put together a guide if you want to take a crack at it:

Getting hibernate to work (in general) has historically been a bit of a pain point for Linux. Nowadays it can often be reliably done, but if I were going to leave my laptop for 24-48 hours I would just poweroff.

P.S. I want a Framework laptop so badly!

1 Like

Glad you’re enjoying your framework laptop. I’m loving mine as well. :wink:

Suspend on these defaults to '‘s2idle’ which is sort of the lightest of sleep modes. It’s asleep, but lots of things are still ready to fire up and it uses a lot of power.

You can switch it to ‘deep’ sleep mode pretty easily and it should use much less power while suspended. For a one off test:

sudo -i
echo “deep” > /sys/power/mem_sleep

then suspend. Note that resume will take 12-18 seconds. It’s not fast at all and you might think it’s dead, but it’s not, just be patient.

To make this take effect every boot, you can add ‘mem_sleep_default=deep’ to your kernel boot line. Hopefully that helps.

2 Likes

Thank you. This is great information, as I assumed there was a way. Appreciate the help!