← Back to context

Comment by teejmya

2 days ago

I've worked around this problem on each mac laptop I've owned over the years by configuring "hibernate on lid close."

When I open the lid of the mac it takes maybe 20-30 seconds to resume. I consider this a small price to pay in exchange for reliable sleep and less battery drain with the lid closed.

If you want to try this, run in the terminal:

sudo pmset -a hibernatemode 25

If you don't like it, you can restore defaults with:

sudo pmset -a hibernatemode 3

Does hibernate play nice with FDE? I know in Linux there are varying caveats around committing memory to disk wrt disk encryption

  • When resuming from hibernation I’m not prompted for credentials until the system has resumed, so I have to imagine the disk remains decrypted, i.e. same behavior as sleep.

I just got my MacBook Air of the shelf to run this command. But I had to hook it up to a power outlet, because the battery was drained

I've had to do this to my Windows laptop recently after it started completely draining the battery when going to normal sleep. Wakes up reasonably quickly still, and no power management problems!

This is the simplest solution that enables the behavior that I think most people who care enough to comment here want

Can you explain what this does?

  • From `man pmset`:

        SAFE SLEEP ARGUMENTS
            hibernatemode supports values of 0, 3, or 25. Whether or not a hibernation image gets
            written is also dependent on the values of standby and autopoweroff
        
            For example, on desktops that support standby a hibernation image will be written after the
            specified standbydelay time. To disable hibernation images completely, ensure hibernatemode
            standby and autopoweroff are all set to 0.
        
            hibernatemode = 0 by default on desktops. The system will not back memory up to persistent
            storage. The system must wake from the contents of memory; the system will lose context on
            power loss. This is, historically, plain old sleep.
        
            hibernatemode = 3 by default on portables. The system will store a copy of memory to
            persistent storage (the disk), and will power memory during sleep. The system will wake from
            memory, unless a power loss forces it to restore from hibernate image.
        
            hibernatemode = 25 is only settable via pmset. The system will store a copy of memory to
            persistent storage (the disk), and will remove power to memory. The system will restore from
            disk image. If you want "hibernation" - slower sleeps, slower wakes, and better battery
            life, you should use this setting.
        
            Please note that hibernatefile may only point to a file located on the root volume.