I recently bought the Framework Laptop 13 (with AMD Ryzen™ AI 7 350 w/ Radeon™ 860M × 16) and I installed Fedora 43 because I understand it has the best support.
On the first night it lost 10% battery on stand-by, so I decided to enable hibernation. I tried following these guides:
I couldn’t follow the guide fully because the installation from Live USB didn’t let me choose partitions so I used gParted to create the swap partition. After following the remainder of the guides, I still keep getting
$ sudo systemctl hibernate
Place your finger on the fingerprint reader
Call to Hibernate failed: Sleep verb 'hibernate' is not configured or configuration is not supported by kernel
I tried getting help from Gemini and it made me try lots of things but didn’t get anywhere either.
Are there any better guides than the ones I’ve already tried?
A lot of things will prevent hibernation. Using unencrypted swap when booting in secure boot mode or not enough swap (you need swap to be able to hold all of RAM) are the main ones I know of. There are probably other things that don’t come to mind right now.
Check “systemctl -b”. If there is a line about hibernation being restricted, see “man kernel_lockdown”.
In case it helps someone else, here are all the things I had to do to make it work:
Use the manual hibernation/hibernate-fedora-manual-method.md from the FrameworkComputer repo on GitHub (the forum doesn’t let me add the link).
Install and use gparted to create the swap partition because the Live USB didn’t offer an opportunity to choose partitions during the installation.
Edit ~/.local/share/gnome-shell/extensions/hibernate-status@dromi/metadata.json to add version 49 of Gnome to the compatible versions of the extension.
Run glib-compile-schemas schemas/ in ~/.local/share/gnome-shell/extensions/hibernate-status@dromi/
Install and run gnome-extensions-app to enable the extension.
Run sudo blkid /dev/nvme0n1p4 and copy the UUID.
Edit /etc/default/grub and change the line with GRUB_CMDLINE_LINUX to GRUB_CMDLINE_LINUX=“rhgb quiet resume=UUID=12345678-…-…-…” filling in the copied UUID.
Run sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Run sudo dracut -f
Create /etc/systemd/sleep.conf with contents: [Sleep] HibernateDelaySec=600
Create /etc/systemd/logind.conf with contents: [Login] HandleLidSwitch=suspend-then-hibernate