this post was submitted on 03 Jun 2024
90 points (95.9% liked)

Linux

48090 readers
773 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

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.

all 36 comments
sorted by: hot top controversial new old
[–] [email protected] 23 points 5 months ago* (last edited 5 months ago) (1 children)

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?

[–] [email protected] 19 points 5 months ago (1 children)

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.

[–] [email protected] 17 points 5 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.

[–] [email protected] 13 points 5 months ago (1 children)

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

[–] [email protected] 8 points 5 months ago* (last edited 5 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.

[–] [email protected] 9 points 5 months ago (1 children)

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.

[–] [email protected] 34 points 5 months ago* (last edited 5 months ago) (2 children)

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.

[–] [email protected] 14 points 5 months ago* (last edited 5 months ago) (1 children)

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.

[–] [email protected] 1 points 5 months ago (1 children)

Sleep is hit-or-miss even on System76 laptops. Dead simple on my XPS, though.

[–] [email protected] 2 points 4 months ago (1 children)

What generation do you have? I have an XPS-15 9560, it doesn't seem to have it enabled.

[–] [email protected] 1 points 5 months ago

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

[–] [email protected] 8 points 5 months ago (2 children)

S3 (hibernate) is conspicuously absent in many distros.

[–] [email protected] 17 points 5 months ago

S3 is standby. Hibernate is S4

[–] [email protected] 6 points 5 months ago

This is the result of Microsoft being so cozy with hardware vendors.

[–] [email protected] 5 points 5 months ago (1 children)

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.

[–] [email protected] 1 points 5 months ago

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

[–] [email protected] 5 points 5 months ago (5 children)
[–] [email protected] 37 points 5 months ago (1 children)

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

[–] [email protected] 4 points 5 months ago
[–] [email protected] 7 points 5 months ago* (last edited 5 months ago) (3 children)

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!

[–] [email protected] 13 points 5 months ago* (last edited 5 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

[–] [email protected] 4 points 5 months ago (1 children)

Is that what the Steam Deck uses? It's pretty useful.

[–] [email protected] 3 points 5 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.

[–] [email protected] 2 points 5 months ago* (last edited 5 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.

[–] [email protected] 6 points 5 months ago

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

[–] [email protected] 4 points 5 months ago

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

[–] [email protected] 3 points 5 months ago

Ty all 4 replies. Now I know 👍🤗

[–] [email protected] 4 points 5 months ago (1 children)

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

[–] [email protected] 3 points 5 months ago (1 children)

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

[–] [email protected] 1 points 5 months ago (1 children)

@drwho Whatcha mean by "not a sure thing"? Is there some issue with specific hardware, or configuration?

[–] [email protected] 4 points 5 months ago (1 children)
[–] [email protected] 1 points 5 months ago (1 children)

@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.

[–] [email protected] 2 points 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).