In this article, I aim to take a different approach. We will begin by defining a laptop according to my understanding. The I will share my personal history and journey to this point, as well as my current situation with my home and work laptops. Using this perspective, we will explore the current dysfunctionality of the standby function in modern laptops, followed by a discussion of why this feature still has relevance and right to exist. Finally, we will draw conclusions on what we can learn and take away from this.

  • Lem453@lemmy.ca
    link
    fedilink
    arrow-up
    23
    ·
    edit-2
    6 months ago

    I have an older XPS where where the CPU still supports deep sleep (S3).

    Most distros have it disabled by default now because neither AMD not Intel seem to officially support it in new CPUs (so windows will have the same problem)

    To check if your cpu supports it, you can run: journalctl | grep S1

    You should see a message that says something like CPU supports S1 S2 S3 etc. if S3 is there then deep sleep is supported and can be enabled.

    Ubuntu instructions: https://askubuntu.com/questions/1029474/ubuntu-18-04-dell-xps13-9370-no-longer-suspends-on-lid-close/1036122#1036122

    Fedora desktop or atomic instructions: https://discussion.fedoraproject.org/t/laptop-appears-to-sleep-but-not-suspend/77193/4

    Note, this is purely the fault of CPU manufacturers for being so shitty about proper sleep and yet another point that has to be conceeded to apple. Imagine explaining to a normal person that your XPS is really good and way cheaper than a Mac…but the batter will die overnight when you need it in the morning. Literally just shooting themselves in the foot.

    Hibernate works as well but takes a bit longer. Hibernate also crashes in many modern systems but again works great in my older XPS. You have to manually activate this as well and it’s really not to bad with a good ssd.

    That being said his should all be very basic functionality so why do I have to do this manually. This shit is why people buy Macs.

    There’s also room for distros to improve here. The installer can probe the CPU and see if S3 is supported, if so it can use deep sleep automatically. Why do I have to mess with Kernal arguments?

    Similar for hibernate, why doesn’t the installer just have a check box that sets up the hibernate file/partition?

  • Papamousse@beehaw.org
    link
    fedilink
    arrow-up
    19
    ·
    6 months ago

    S0idle is a real problem.

    Years ago you put your laptop in sleep S3 mode at 5PM, put in the backpack, resume it at 9AM the next morning and it lost maybe 10% battery.

    Now S0idle is like a cellphone, always powered, so you put your laptop in a backpack, windows/Linux half support a botched S0 so some devices are still powered, either your laptop overheat or dies because battery reach 0% during the night.

    • Lem453@lemmy.ca
      link
      fedilink
      arrow-up
      17
      ·
      6 months ago

      This. S0idle was pushed by Microsoft and Intel and amd followed. Now all new non apple CPUs are an embarrassment when it comes to sleep ability which essentially any normal person would expect without thinking about it so when they buy a brand new laptop and it ends up with a dead batter every morning people immediately just buy a Mac and get a much better experience.

      Just completely shooting themselves in the foot. Same story with shitty laptop screens for nearly 5 years while Macs had retina displays.

  • ThyTTY@lemmy.world
    link
    fedilink
    arrow-up
    13
    ·
    6 months ago

    Where can I find beforehand which laptop supports S3? Are there any know brands that do?

    • saigot@lemmy.ca
      link
      fedilink
      arrow-up
      8
      ·
      edit-2
      6 months ago

      Nothing with a recent AMD gfx Card or APU will officially support S3, and I think Nvidia is the same. Just because it isn’t supported doesn’t mean they’ll intentionally break anything, but over time you’ll have more and more bugs related to it and one day it will break and never be fixed.

      Personally I use S4 (hibernate) more or less exclusively.

  • vzq@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    17
    arrow-down
    8
    ·
    6 months ago

    Unpopular opinion: the only vendor that does sleep right is Apple. The only reason they can is the tight vertical integration of the platform where they control all the hardware, all the drivers, and can exercise control over all the applications in the App Store.

    More open platforms are essentially fucked.

    • leopold@lemmy.kde.social
      link
      fedilink
      English
      arrow-up
      34
      ·
      edit-2
      6 months ago

      It’s not an unpopular opinion that Apple is the only one that does sleep right. It is an unpopular opinion that this is only possible because they have a complete walled garden and that open platforms are fucked, especially considering it is easy and common to install applications from outside the App Store on macOS. We used to have sleep figured out, that’s what S3 was. But then hardware vendors dropped it. So yes, drivers and hardware vendors are part of the problem. The Steam Deck is an example of an open platform where sleep works fine.

      • Lem453@lemmy.ca
        link
        fedilink
        arrow-up
        14
        ·
        edit-2
        6 months ago

        100% this. Sleep on Linux is perfect in my older XPS (after I manually enable it). Lots of reports of it not working on newer laptops.

        While I agree it doesn’t have to be a walled garden, you do have to admit that apple wouldn’t ship a laptop that couldn’t sleep properly. They are so much better at real world design than other manufacturers who were happy to abandon s3 in favour of making laptops into phones as if anyone actually wanted that.

      • vzq@lemmy.blahaj.zone
        link
        fedilink
        arrow-up
        1
        ·
        6 months ago

        I mean, that’s fair. It’s certainly not a technical impossibility to get it right and keep getting it right.

  • OpFARv30@lemmy.ml
    link
    fedilink
    arrow-up
    7
    arrow-down
    2
    ·
    6 months ago

    Yo, setup hibernation and use hybrid sleep as your default sleep.

    ln -s /etc/systemd/system/suspend.target ../../../usr/lib/systemd/system/suspend-then-hibernate.target

    Now any sleep is hybrid. The machine suspends, then wakes up after a timeout, and enters hibernation. The timeout is configurable in systemd-sleep.conf(5).

    With this combo I find that I prefer S0 to S3. S0 drains the battery about twice as fast, sure, but it resumes instantaneously, while S3 takes about 30 seconds (!) to resume on this machine. And the thing hibernates and powers off if I leave it for an hour anyway.

    • Lem453@lemmy.ca
      link
      fedilink
      arrow-up
      1
      ·
      5 months ago

      Hybrid sleep is the way to go but my dell xps wakes from s3 in less than 5s

    • a lil bee 🐝@lemmy.world
      link
      fedilink
      arrow-up
      37
      ·
      6 months ago

      To be fair to you, I thought they were talking about AWS S3 at first and was very confused until I read the article.

    • thedeadwalking4242@lemmy.world
      link
      fedilink
      arrow-up
      8
      arrow-down
      1
      ·
      edit-2
      6 months ago

      Edit! I’m wrong! Read below comment

      A hibernation state where your laptop completely powers off saving current ram to disk to resume from when the system is powered back on. The article is a pretty interesting read!

      • med@sh.itjust.works
        link
        fedilink
        arrow-up
        13
        ·
        edit-2
        6 months ago

        S3 is what people actually think of when they think of sleep mode, or modern standby. The running state of the operating system is stored in RAM, in low power mode. All context for the cpu, other hardware like disks and network is lost and those devices are completely shut down - bar the RAM. Basically, you close the lid at the end of the day, and you’re nearly at the same charge level the next morning.

        This saves a lot of power. On my older 8th gen intel cpu laptop, it loses maybe 1-2% charge per day in this mode.

        My new 13th gen laptop still has deep sleep, or standby (s3) as a hardware function, but it’s technically not supported. It actually doesn’t work when enabled, and just falls back to s1 (sleep, everything’s still on, just in low power mode). It loses about 2-3% per hour in this mode

        S4 (Hibernate) does roughly the same as S3, but the OS state is stored to the disk instead of ram, so that can be shut off too. Now the device is completely powered off, losing no charge while ‘asleep’.

        S5 is off

        S4 sleep takes much longer to wake up from than s3, so was less desirable. In the modern computing world (especially end user devices), commonly there’s full disk encryption going on, which adds a layer of complexity to resuming from disk, as you would when waking up from hibernation (s4).

        Making it resume without putting in a decryption password for example (using a TPM), isn’t simple, and breaks a lot when you do system upgades

        • leopold@lemmy.kde.social
          link
          fedilink
          English
          arrow-up
          3
          ·
          6 months ago

          I wonder. The Steam Deck holds charge very well, but then another comment here says “Nothing with with a recent AMD gfx Card or APU will officially support S3”. Perhaps the Steam Deck uses hibernate? It launches pretty fast, but then maybe storing memory to the built-in SSD is fast enough. Or perhaps even if not officially supported the S3 in the Steam Deck’s APU still works well enough. Or perhaps the APU is older than I think it is.

      • kbin_space_program@kbin.run
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        6 months ago

        In windows 10 you can reenable it, but you have dig a bit in the power management control panel to do so.

        Its unfortunate that this thinking has bled over to Linux.

    • Papamousse@beehaw.org
      link
      fedilink
      arrow-up
      6
      ·
      6 months ago

      Sleep in RAM, meaning only the ram is powered/refreshed, everything else like cpu or SSD are unpowered.

    • blobjim [he/him]@hexbear.net
      link
      fedilink
      English
      arrow-up
      4
      ·
      6 months ago

      The S3 “sleep state” of the computer. Which I guess is sleep. There sre other numbers for running and off I think.

  • eshep@social.trom.tf
    link
    fedilink
    arrow-up
    5
    arrow-down
    1
    ·
    6 months ago

    @JRepin Am I the only idiot who uses systemctl hibernate with a proper swap partition? Works perfect every time I’ve set it up.

    • The Doctor@beehaw.org
      link
      fedilink
      English
      arrow-up
      3
      ·
      5 months ago

      You are not the only person. However, even hibernation mode isn’t a sure thing anymore.

          • eshep@social.trom.tf
            link
            fedilink
            arrow-up
            2
            arrow-down
            1
            ·
            5 months ago

            @Lem453 Everything on that page refers to configuration problems. Most of them inferring a misunderstanding (or complete disregard) of the requirements that need to be implemented prior to configuring suspend-to-disk in order for it to work properly. Both the gentoo, and arch wikis have very thorough instructions on how to successfully incorporate this feature.

            • The Doctor@beehaw.org
              link
              fedilink
              English
              arrow-up
              2
              ·
              5 months ago

              I mean, even then it might not work. I’m wrestling with it right now (Lemur Pro 13 from System76) and from plain old suspend mode the machine still wakes up randomly (it pops up on my monitoring network as active, and can even be SSH’d into when it’s supposed to be in lower power mode). Also, suspend-to-disk hibernation only resumes correctly about 13% of the time (I’ve been keeping stats while debugging it).