You'll also need to modify the kernel parameters/initramfs configuration to add the resume parameters in the right spots, or the system will hibernate but not try to resume your session on boot.
In the right spots? I was in the impression you only need to do that so one place, in the bootloader's boot entry (or, yeah, if there are multiple entries then possibly each one). Which other places should I also look?
Also, I've recently set up hibernateion for someone, and IIRC forgetting the resume= kernel parameter is not that critical today because it will immediately resume instead of completing shutdown.
This worked for me you just need to be careful to use your wi-fi device. I have a 2022 G15 which has the same wifi chip so for me, even though I don't have a Framework, it worked exactly as described in the guide.
I've made it work on arch, debian and fedora, on a T420s, T480s, T14 AMD, MBPr 2012, each on luks2 + btrfs with systemd-boot, and it works flawlessly on all of them. the setup is super-involved and cumbersome though but it's easily accomplished once you get the hang of it.
the links posted here along with the arch wiki is what I used. it helps if it's not your primary and only device, so you have time to retry until you get it right.
Did you encrypt your swap as well? I used to use hibernation back in the day but without LUKS encryption.
Ever since I've started using LUKS encryption, I never bothered with hibernation again, allthough I would like to.
Having that button doesn't automatically result in that feature actually working. The development stakeholders don't seem to be interested in it actually working other than chance and given that even Windows and macOS moved to "always connected" suspend instead of full sleep with hibernation, I don't see a push for feature parity on the horizon (that's why Windows laptops and more recently also MacBooks often cannot wake up because the battery is depleted). It's really bad and IMO one of the few big problems to solve (at least on my Windows notebook because of its broken regular suspend, I can force it into hibernation).
I had somewhat decent success making a swap file (not a partition):
How were you setting it up? Maybe you just always made the same mistakes.
From memory, this is how I did it last time:
create swap partition of RAM size
put that in fstab, reffered to by PARTUUID
activate swap with swapon -a, or just reboot
edit bootloader config to have resume=PARTUUID=yourpartuuidxxxxxxxxxxx in the kernel parameters list. Be sure to edit the right file, not one that will be overwritten. For GRUB2, this is /etc/default/grub I think.
if the bootloader's config system works like this, regenerate the complete config. On openSUSE, the file mentioned above has a comment at the top with the command you need to use. It's something like grub2-mkconfig -o /boot/grub.cfg but do not copy this command because it's probably inaccurate
save your work while you're unsure if it will work
test hibernation
I have done this on 2 PCs already.
If you have garbage hardware, like a chromebook that only allows expandable storage through a micro SD card reader, which can randomly lose its mind so that Linux resets it on resume, then it may not work ever or only unreliably. But with SATA connected storage you shouldn't have this problem.
I used Hibernation in the past (years ago), but nowadays I don't. It also depends on the BIOS configuration and probably the motherboard. There was a period (on a different distribution and probably something different hardware, can't remember details) when the Hibernation did not work. I mean Hibernation to suspend to disk and shutdown PC entirely. I'm actually curios if it works for me right now and will test it. :-)
Edit: Ah okay, it can't work for me, because I set a very small swap. Never mind.