My set-up is roughly analogous to this: https://community.frame.work/t/guide-fedora-36-hibernation-with-enabled-secure-boot-and-full-disk-encryption-fde-decrypting-over-tpm2/25474

Summary is that I use full-disk encryption (FDE) and use the TPM to decrypt the swap, and use full lockdown mode with a kernel patched to allow hibernation.

Suspend-then-hibernate (in my opinion) is a must-have feature for a laptop that goes in a backpack – if I close my laptop’s lid and put it in my backpack, I expect it to both not overheat, and to have some amount of battery left regardless of when I decide to take it out again.

Anyway, does anyone have it working well, or any other tips?

One thing I’ve been toying with is using a systemd script to drop the filesystem caches before hibernating to have it resume faster.

  • bahmanm@lemmy.ml
    link
    fedilink
    English
    arrow-up
    7
    ·
    edit-2
    11 months ago

    Suspend-then-hibernate

    That’s something over which I used to be very jealous of Windows laptops 😕 But that was years ago…now my aging 3.2kg ThinkPad is just a “stationery” workstation!

  • Veraxis@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    11 months ago

    I am not sure if we are discussing hibernation for encrypted systems only, and I do not know what special provisions are needed for that, but for anyone curious, here is what I do on my own machine (not encrypted) per my own notes for setting up Arch, with a swap file rather than a swap partition, and rEFInd as the boot manager (the same kernel params could probably be used in Grub too, though):

    • create a file at sudo nano /etc/tmpfiles.d/hibernation_image_size.conf (copy paste the template from https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate)
    • if you made your swap file large enough (~1.2x ram size or greater), set the argument value to your amount of ram, e.g. 32GB= 34359738368
    • after a reboot, you can verify this with cat /sys/power/image_size
    • findmnt -no UUID -T /swapfile to get swapfile UUID
    • filefrag -v /swapfile | awk '$1=="0:" {print substr($4, 1, length($4)-2)}' to get offset
    • Go into your kernel parameters and add resume=UUID=### resume_offset=###
    • e.g. in /boot/refind_linux.conf (with efi partition unmounted)
    • go into /etc/mkinitcpio.conf and add “resume” after the “filesystem” and before the “fsck” hooks
    • run mkinitcpio -p linux-zen (or equivalent linux type)—
  • iopq@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    11 months ago

    I set it up, but it took significantly longer to wake up than Windows so it was not worth it. I now shut down and boot back up since it’s faster

  • ReakDuck@lemmy.ml
    link
    fedilink
    arrow-up
    3
    ·
    11 months ago

    My issue is that, its working. But at times when I need it, it somehow manages to hang during shutdown

  • Alethe Crow@sh.itjust.works
    link
    fedilink
    arrow-up
    1
    ·
    11 months ago

    I am currently back to running EndeavourOS after PopOS had severe issue running.

    Hibernate/sleep out of the box seems to function just fine on my desktop. I’m running a Ryzen 3600, Nvidia RTX 2060, 32GB ddr4 21xx.

    It is setup to lock itself after about ten minutes. Then if no activity for an hour will go into sleep/hibernate. Mouse will not wake it but keyboard works fine and I’m back to login within 10s or so.