And it’s crap across the OSes. On Linux laptops don’t wake up from sleep, on Windows they keep waking up when nobody asks for it.
In our home office room there’s three laptops. My private one running Fedora, my work PC that sadly runs Windows and my wife’s laptop also running Windows.
My work laptop and my wife’s laptop keep waking up wasting electricity, and my private laptop needs a hard reset to wake it up every second time.
That feature should be stupid simple, yet it doesn’t work across the board.
Rant over.
Hell, why is sleep so hard for most humans?
Absolutely unfair, I tell ya!
Stop judging, at least I made it to bed. It’s not my fault sleep can’t find me.
Narrator: It was.
Sleep is easy, you just prioritized that 30 minute YouTube video
And it’s crap across the OSes.
Never had these problems with MacBooks. It’s probably one advantage of the OS and hardware being made by the same company.
I noticed the same. The old macbook that I restored to become my ‘writing’ machine can sit asleep for a week (as I found out by accident) and just pops right up when opened. My windows and linux laptops have so many sleep issues.
Agreed. For all the downsides people point out with Mac’s, they handle this and battery life quite well. My daily driver is a Mac, and everything I connect to runs some flavor of Linux. Then there’s the Windows 11 thing my work foists upon me.
Agreed, I disable sleep on all laptops other than my MacBook and my work laptop which manages to drain its battery and overheat itself on my bag semi frequently.
The MB has never had negative issues with sleep.
That’s fair, never had one, so I can’t judge that.
I never had problems with sleep. Neither with fedora nor suse nor arch
I wonder if the hardware you use is better supported for/by Linux.
Macs aren’t immune to S0 sleep options. The Apple silicon CPUs are just so efficient that when it fails to fall to sleep it doesn’t matter. Intel ones it sucks balls when it fails.
Even my Intel MacBook Pro slept like a champ. They aren’t 100% immune but 99.95% I didn’t have an issue compared to my work windows laptop which was like 25% sleep worked and woke up correctly.
The problem is it’s not stupid simple, it’s actually fairly complicated. Each piece of hardware and its driver must be suspended. The GPU is a particularly tricky one. Its processor must be suspended, and the state saved. In the kernel, the driver must suspend its execution, and likewise save its state. Then on resume, each half has to reload and begin execution again. And if there’s any mismatch in the resumed states, the GPU and/or driver crash and probably take the kernel with it.
Now do that for the Wi-Fi, Bluetooth, sound card, USB, disk controller, and every other device.
This guy sleeps.
What are you talking about? This guy dies and comes back alive every time!
No, that would be hibernation
I have had no issues with sleep on macOS, so whatever they are doing we should try to copy !
The same MacBook air, that used to last over a week with the lid closed on macOS, now needs to be charged every 3 days on Asahi NixOS.
Linux is a much better operating system, even just for the sheer variety of software available, but power management isn’t quite there yet in my experience on this laptop.
A few years ago Windows invented a new sleep state, s0ix, instead of the previous s3 state. This makes a laptop behave more like a phone, able to wake up when it receives new data.
Unfortunately this is usually implemented badly and also causing the removal or neglect of previously reliable s3 sleep.
It’s actually insane that the only company who I’ve noticed pull off s0 sleep properly is Apple with their MacBooks, which is sad. I understand they likely had already figured out how to do it properly by working on it for iOS but still, goddamn, it can’t be difficult to fix it elsewhere?
I understand Linux is a FOSS OS (and they kinda at the mercy of hardware manufacturers to upstream support for hardware) so I have no complaints there, but Microsoft that makes so much money can’t get people to fix it? I call bullshir.
MacBook seamless suspend/sleep performance is like 25% of why my personal daily driver is MacOS. Another 50% is battery life, of which their sleep/suspend management plays a part. I’ve played around with Linux on Apple hardware but it’s just never quite been there on power management or sleep/wake functionality. Which is mostly Apple’s fault for poor documentation and support for other OS’s, but it just is, and I got sick of fighting it.
I don’t think Microsoft cares
I unlocked my bios (luckily Lenovo allows that with just a “secret” key combination in the bios) and disabled modern sleep, enabled S3 and S2 and tried that, with the result that my Linux freezes every time on wake up instead of only half the time…
Don’t know what exactly they messed up there, but it’s frustrating.
What lenovo laptop do you have? I’ve had to use a special uefi tool to unlock mine
Lenovo LOQ 15ARP9.
To unlock, go to the BIOS, open advanced settings, hold FN+R+N, release, press F10 to save and reboot, head back to the BIOS and all options are unlocked.
Some Lenovo laptops have other key combinations, some need a tool, some need a modified BIOS.
wakes up when nobody asks for it.
Wrong. You might not have asked for it, but it is not your computer, it’s Windows’ computer. Microsoft decides when it wakes up.
Fair.
Sleep function works pretty flawlessly on macOS. Always has. The hibernation function is pretty great, too.
On older Macs the light would pulse when sleeping in the same pattern as a human breathing while asleep.
I remember that. It was so cool.
I really miss when Apple made devices that had those awesome little touches. I still think Apple devices are pretty great, but they used to be better.
Same here. The hardware is still great but there’s not as much soul in the designs.
I researched this in (checking notes) 2009 or so… things may have slightly changed since (and my memory is fading away)
At the time there was a standard for sleeping. Microsoft was part of the standard… and then they decided to implement in a different way (classic Microsoft, of course).
Hardware producers then adjusted to windows because… well… we were dozens of us using Linux on laptops.
This created issues in Linux because there were some purist developers that wanted to follow the standards, others that were more pragmatic and wanted to implement the windows way. In the end nothing worked.
Fast forward to today, windows waking up constantly I guess it’s broken as expected because it wants to allow background processes to do stuff. Linux not waking up sounds still the issue from 2009: there are multiple levels of sleep and the deepest was the most problematic. If I have to guess your laptop wakes up just fine if the battery is full and you left closed for few minutes… while it doesn’t when the battery is low-ish and/or you left sleeping for a longer period
It’s waking up because another device on the network (probably router) is pinging it
Disable “Wake on Magic Packet” and the Windows sleep issue goes away
This kind of stuff must happen at hardware level… wake on lan is in hardware.
Ethernet cards keep in getting packets (arp at very least) even if they are not directed for them. If the OS needs to check all packages it would be always on
That said… wake on lan is also a waste of energy if you don’t need (why powering the Ethernet cards?)
The setting I am suggesting gets disabled keeps the card powered during sleep so Wake on LAN can work on a hardware level.
The OS isn’t checking the packets. The NIC gets a packet and wakes up the OS.
I am not defending it, just explaining how to stop it from happening. A lot of people who know what Wake On LAN is don’t know about Wake On Magic Packet
Yeah, but classic Windows move: it’ll work for a while and then it will randomly stop working.
This was one of the big things that pushed me to Linux. Not feeling like I was the one in control of my PC.
First thing I do on any OS, but especially linux, is turn off every sleep-related option permanently. I don’t care anymore. I won’t fight with it.
In 35 years of experience I’ve never got it to work correctly on any OS except IOS. I’ve only met ONE tech who claimed it worked for them, and that was in the 2000’s. He couldn’t demonstrate how exactly.
I do the same thing, turn that shit off because it does not work.
Do you mean iOS (iPhone) or IOS (Nintendo Wii) ? Or is there a third ?
Cisco firmware is also IOS.
The DOS BIOS was also sometimes called IOS, and the Input/Output Supervisor in the IBM OS/360 was also abbreviated as IOS.
Yeah I don’t bother with sleep either, I just turn all my stuff off when I’m done with it. With the advent of SSDs and M.2 drives, it takes about 10 seconds for my desktop to boot from fully powered off. I can wait that long lol
Trouble is you’ve then got to re-open all of your apps again. As a developer I have about 10 different things open (including zellij sessions and panes). I’ve started just leaving my computer on 24/7. How much does it cost me per month? Better not think about it!
Wait, are you suggesting it’s consistent and reliable on desktops?
I’m roughly 25 years into using computers daily and never turning them off and I’ve never had or used a desktop that didn’t sleep and wake reliably, either naturally or using the sleep and wake buttons on the keyboard, with both Linux and Windows
Are you talking the full set of S0-S3 sleep as well as hibernation? Or just whatever your machine did by default? Because I’ve never had one do all of them correctly without freezing up or having some other issue, across multiple motherboard brands and BIOS updates and so forth. ~30 years here, Windows mostly then the last few on Linux.
Yep I’m with you. I’ve been under the assumption the “sleep” button is some sort of joke Microsoft includes just to mess with people. Never had it work reliably on desktop or laptop since it appeared
Tbh, I don’t know. The last time I used a desktop on a daily basis was 2020, and that was just my work PC where I wouldn’t really care if it woke up while I wasn’t at work.
The last time I had a desktop PC at home was in 2009, so I really can’t say what is happening there in the meantime.
And at least to me, sleep on a laptop is much more important than on a desktop. Battery usage isn’t really a thing on a desktop (usually at least).
Interestingly, I do own a little 2010 netbook that I use as an ultra-mobile laptop when I really don’t need any kind of performance, and that one does all sleep states including hibernation perfectly out of the box. Even when just sleeping it loses maybe 1-2% of charge per day.
But all the other laptops I own suck when sleeping.
Well yeah obviously it’s way more important on anything portable. For me it’s very reliable on Steam Deck. But that’s also kind of a core feature, and it only has one type of sleep (in game mode at least). But it does still drain battery faster than I’d like.
I’m curious, what kind of netbook is that one you mention?
It’s an EEE PC 1005P. It’s an outdated piece of garbage, but sleeping works perfectly and the battery life is crazy. 8 hours on its extended battery, 5 hours on the stock battery. And these aren’t new batteries either.
With AntiX Linux performance is ok enough for what I need it for.
my guess is because the CPU power levels are fucking trashed because of all the patches they have to run at runtime. before Intel went all “wild west” with their security practices to improve performance, sleep worked just fine for me.
keep in mind, this was before uefi too, so it might also have a hand in the problems.
Never had I problems with sleep. Neither with arch, suse, fedora nor ubuntu. Neither with Gnome nor with kde.
Not even with windows.
Must be the hardware (brand).
My system76 wont even go to sleep anymore. It just pretends, then if i put it in a backpack for a bit it is burning hot.
System76? Shouldn’t they have support for such a case?
No idea how system76 configures their builds.
I’d check awiki if nothning else helps.
https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate
Possibly, tbh I spent a few hours on it and gave up, the laptop is due for a replacement anyways. It has other problems too, the touchpad connector is very flaky. Not sure I would go with them again…
Good to know, so far their on my buy list. Maybe not anymore :D My laptop is old but still works very good
The laptops are Lenovo LOQ, HP (work laptop) and Gigabyte.
I have an old Dell XPS 13 sleep works great on for Linux probably can sleep a week or two and still have charge left when I open the lid. I have a newer framework and it’s dead in 2 days while “sleeping.”
S0 standby is the problem. It’s a flawed idea from the start. The theory is it’s more “secure” or something. But like… Who cares about stealing shit from memory going from sleep to wake.
Now my laptop drops 20% charge in 5-10 minutes and goes into hibernation. It draws more power than if it’s on.
It’s not about security. It’s about maintaining a network connection so you can stream Spotify and receive Facebook updates while it’s “sleeping”. It’s fucking stupid.
The only purpose S0 standby has on my work laptop is to make sure that my bluetooth headset always prioritizes connecting to my sleeping laptop in my backpack over connecting to my phone that I want to watch youtube on while on the train.
Newer Dells have removed the s3 deep sleep. I believe the cutoff is between Intel 11th gen and 12th gen in (at least) Latitudes. I have a i7 12th gen that sucks at sleep, but an i5 8th gen that sleeps well.
I think the laptop really does matter, and it’s because chipsets are not all equal in how well their sleep modes are supported in the OS.
I’ve been buying XPS13s for over a decade; I’ve had four (three personal, and one requisitioned for me by my job), and sleep and suspend have worked almost flawlessly on them under Linux. In the office, most everyone else would move between meetings or to their desks with the lids almost closed, to prevent sleep and the problems it caused, but I’d just fearlessly close my lid; it was ironic to me that running Linux on the XPS I had more reliable sleep behavior than the Windows people on their laptops.
For OP: low power, initialization, and restoring state has to be implemented by each chip, and there are a lot of shitty, poorly implemented chips. Then the OS also has to store and restore state for each chipset, and even if the chip implements it well, the OS has to do a good job restoring power in the correct order and restoring the state for each chip. If anything goes wrong in either the chip or driver implementation, you get a broken state.
This is aggravated by the fact that Linux is a monolithic kernel, and if any device drivers get borked it usually borks the whole kernel. This wouldn’t be as bad a problem if Linux were a microkernel architecture and drivers could just be killed and restarted.
I haven’t used sleep on any of my laptops for >20 years because it’s been so unreliable. Rather than getting frustrated, I gave up pretending it would ever work, and adjusted accordingly.