In 8 hours it uses 20% of the battery. When Windows or Mac are put to sleep, the damn things can sleep for a week! This is the case with Linux on multiple laptops.
Is there some kind of manipulation going by ring -1 that detects Linux is running? Is Linux not respecting some procedure and kissing a step?
If only going to sleep was simple. There’s a bunch of different sleep states. S3 is ram and S4 is hibernate.
Check your supported sleep states. At the command line type cat /sys/power/state
https://www.kernel.org/doc/html/v5.4/admin-guide/pm/sleep-states.html
It also doesn’t help that ACPI is a badly-designed mess of a standard. I remember that in the 2010s one of Apple’s selling points was that their laptops had sleep and hibernation that worked every time. Heck, MacOS X could even decide intelligently when to do which. This mostly worked because they fully controlled the hardware, firmware, and software. Other laptop manufacturers could just take their best stab at implementing ACPI power states and hope their implementation matched Microsoft’s.
Microsoft tried to solve the mess by introducing the S0ix ACPI state (aka “Modern Standby”), which was defined in a way that could actually be implemented without too much guesswork. Unfortunately, this was during the Windows 8 era when Microsoft decided that laptops should be more like smartphones so S0ix is much closer to turning your screen off on a phone than to actual standby.
The system randomly waking up and deciding to do work is an explicitly intended feature because what if you get a Teams message while your laptop is in your bag? Sure, you might say that you’d either have Teams on your phone or wouldn’t immediately care but that kind of thinking won’t get you anywhere within Microsoft. Also, Windows actually has very little restraint about what it does when it wakes up so it might decide to install a heavy update or an application might decide it’s important enough to do work right now. While the laptop is in your bag. Cue you wondering if the laptop turned off because the battery’s empty or because it overheated.
And to make things worse Microsoft specified that in order to be allowed to use Modern Standby, the device must not offer S3 (sleep/suspend-to-ram). Some manufacturers still allow you to enable S3 but it’s a legacy feature that’s even less well supported than before.
The system randomly waking up and deciding to do work
My work macbook did this by default as well, among other dumb things like leaving bluetooth enabled on sleep so my headphones would constantly connect to the laptop when on the train trying to listen to music.
Thankfully the waking up thing is just a setting, but by default, imho, mac os’s sleep is also garbage.
This is the one I was going to link.
I have my laptop in s2idle mem_sleep most of the time because this boots quick and allows me to wake the computer by pressing a key on my USB keyboard plugged into a hub plugged into my dock into my laptop.
And it gets from my office and back just fine on that. But if I’m traveling or something I’ll switch it to deep mode before I leave so it actually actually goes to sleep in my bag.
It takes extra time and jank to boot, and I have to wake it up by opening the lid, but if I’m traveling that’s normal since I don’t travel with my dock or USB keyboard anyway.
This is one of those cases where it would be nice if the tech always did what I wanted, but I do actually want different things at different times, and so I do actually benefit from the control of being able to choose.
My hardware doesn’t support “shallow” sleep, for whatever reason.
The reason is, as usual, that Microsoft lobbied hard to make their way the standard way of doing sleep modes. Then, when implementing it, they strong armed all the OEM to make hardware fit their nonstandard, slightly off center, way.
So, now windows kind of work with all hardware, but open source is fucked because to make the hardware actually work requires reverse engineering whatever custom crap windows does.
deleted by creator
Is that true for Mac and Windows too? Why do I need to differentiate the two on Linux but not the others? Why isn’t the default the better one?
suspend to RAM (aka sleep) means the computer stays powered on in a very low-power state. Everything in memory is kept as-is, and it consequently draws a little power to keep the RAM active. This makes it very quick to enter this state and to wake up from it.
suspend to disk (aka hibernate) dumps the RAM to disk, and then powers down fully. It takes a little while to dump all RAM to disk and also to restore it.
So “the better one” depends on what works best for your particular circumstances. If you don’t know and want a big corporate entity to make those decisions for you, stick with Microsoft and Apple products. If you would rather take the time to find out what’s best for you, then go FOSS.
“big corporate entity’s decision” sounds very valid for laptop hibernation.
It would be nice for Linux to have the same as the default
It’s something to hassle with on Windows too. Less so on macOS because it’s easier for them to optimize everything when they control the whole software and hardware stack.
Your system goes to sleep and wakes up? My system goes to sleep and then crashes. We are not the same
Your system and me have a lot in common (⌐■_■)
Mine too! Well one of mine, and I still don’t know why just this one. But hey, it’s not like Linux cares if it is crashing, it always comes back.
And so it got called, the Terminaltor.
My system goes to sleep and won’t wake up. Can’t figure out why. I just turned off the ability to sleep and turn my computer off when not in use.
This is the magic of modernACPI Power States. Normally you would write everything to swap or keep the RAM powered. Nowadays we need always on (W)LAN and event management for updates , notifications and whatever. And if I don’t want that? Where is my Setting for Hibernstion Lenovo!!!
Assuming you have windows, run this in admin powershell It should give you power options you didn’t even know existed.
Apparently the formatting gets all screwed up with the default UI and I am too stupid to figure out how to fix it.
Its appears properly if you use old.lemmy.world though.
Copy and paste everything below this line .-------------------------.
$sting77 = “HKLM\SYSTEM\CurrentControlSet\Control\Power\PowerSettings” $querylist = reg query $sting77 foreach ($regfolder in $querylist){ $querylist2 = reg query $regfolder
foreach($2ndfolder in $querylist2){ $active2 = $2ndfolder -replace "HKEY_LOCAL_MACHINE" , "HKLM:" Get-ItemProperty -Path $active2 Set-ItemProperty -Path "$active2" -Name "Attributes" -Value '2' } $active = $regfolder -replace "HKEY_LOCAL_MACHINE" , "HKLM:" Get-ItemProperty -Path $active Set-ItemProperty -Path "$active" -Name "Attributes" -Value '2'}
It’s mostly a mix of newer laptops not supporting suspend to RAM (only suspend to idle), and faulty hardware requiring proprietary hacks to actually go idle.
Windows doesn’t sleep. Ever. Sleep is now just a nickname for Modern Standby, which is just running in low power mode doing a whole bunch of shit. The amount of times I come back to my laptop and it has gotten stuck at a reboot is just embarrassing. I dual-boot and have Grub, so whenever Windows tries to reboot itself it gets stuck.
People have gotten their laptops damaged because they thought they were sleeping and put them in a bag, when Windows decides to try to update itself while the fans are blocked inside the bad. Bam, heat damage.
Worth noting that this is also an ongoing issue with windows. Only apple has actually solved this, and they do so by owning the whole stack. Each apple product has a specific OS, CPU, and motherboard that were all specifically designed with the end-product user-experience in mind.
But for PCs, the OS, CPU, and motherboard are all designed and built by different companies, each only designed to be generically compatible with the other components. None of them are designed for a specific end-product, so features that require all of the components to play perfectly together for a specific end-user experience (like sleep state) often end up not quite aligning.
None of this helps you, but I think it’s worth understanding why the problem exists and why it may just always exist. The best bet is that companies like System76 or Valve solve sleep states for specific linux-based products, and then the rest of us maybe hopefully see some benefit from that.
But IMO this is just a trade-off. It’s like a pick 2 situation between Customization, Stability, and Privacy (where a reliabile sleep state is Stability). You can have stability and customization, but you’ll probably pay a lot, and the company who sold it will want telemetry data to improve the experience for others. You can have stability and privacy, but the product will be very locked down to a specific use case to ensure a stable experience.
It’s not that apple solved it, it’s that Microsoft purposely fucked it up.
It’s called “modern standby” and if you put your laptop to sleep while it is plugged into power, some windows services and wifi aren’t actually put to sleep, and instead will ping windows update servers to download and install some updates while the machine is “asleep”.
Even if and when you put the laptop to sleep while plugged into power and then remove power to say out the laptop in your bag. Those services that aren’t put to sleep never check to see if you are still on wall power or battery and keep doing what they do draining the battery
Linus tech tips on YouTube did a whole deep dive into it. Some laptops you can disable modern standby through the command prompt but newer hardware doesn’t allow for it. The only real workaround is unplug your laptop for a few seconds before putting it to sleep.
As I understand it, apple products support the same update from sleep feature, except it works for all the reasons stated above.
I’m pretty sure all Microsoft needed to do was put in a check to see if it was running on battery or not. And I remember seeing that they finally fixed it months ago.
Modern windows is bogged down by decades old compatibility architecture. Shit programed in the 80s will still run on modern windows for the most part. All because corporations and businesses still run those programs or severs today and refuse to update or replace them. Look at the fucking US aviation industry. Billions of dollars in revenue and still run windows 95 level shit programs.
Microsoft needs to pull an apple and rebuild windows from the ground up without any compatibility layers. Enough is enough.
Components like CPUs and mainboards are absolutely purpose-built for laptops. And precisely this has caused a host of issues from locked-down BIOS/UEFI to broken sleep to incompatibility with real-time audio processing via ASIO, and that’s just the ones I have personally experienced.
The real issue here is an outdated x86 architecture that was never designed for efficiency, which is severely struggling to compete with Apple’s ARM-based M architecture, but which they can’t get rid of for compatibility reasons.
I just want the option to put my Linux laptop into S3 ACPI power State. Daim you modern W11 hardware and S0!!!
Power state? Is that what’s going on?
I once did a deep dive on sleep mode for some problem a friend was having. I’m now convinced it might be the worst thing I’ve ever seen in modern computing. It’s globally horrendous, poorly implemented, and causes random problems in unfathomable places. It’s amazing it ever works at all.
I’ve only used windows at work in the past 10 years or so but my windows experience with sleep was far far worse.
My laptop would always wake up in my bag on my hour+ commute. The laptop would be scorching hot and the battery dead by the time I got to the office. Every time.
Never experienced that in Linux.
Recently I switched to a Linux computer at work and it’s much better in every regard.
My personal desktop (runs arch (btw)), did have some trouble with sleep recently tho…I replaced my 5700G with a 5600X3D and it would refuse to wake from sleep, necessitating a hard shutdown (by PSU switch!)…but I think that was a bios bug. My bios was already very close to latest but I think upgrading that was what ultimately fixed it. Now it works fine.
Every piece of shit windows laptop since they flipped from S3 sleep to “modem standby.” garbage. Thing wakes up in the bag at the slightest whiff of wifi. “Oh! Network! Want me to connect so I can install updates, delete all your pinned tabs, break a few apps, and infect notepad with AI slop vulnerabilities? No answer? That must mean you want that - doing it now, boss!” <melts in bag>
Dell, Lenovo, and Surface laptops all do the same shit. I fucking hate windows.
Dell support even told me, with a straight face, that if I didn’t fully shut down my laptop before putting in my bag that I’d void the warranty.
Dell support even told me, with a straight face, that if I didn’t fully shut down my laptop before putting in my bag that I’d void the warranty.
That’s insane, what the fuck? BTW, the owner of Dell is a right-wing dude who supports DHH. I’m not surprised they they have such shitty customer service.
I’ve always had this Windows issue you described with ThinkPads. Never had a problem with Dells though. Drives me absolutely crazy
Aren’t Dell and Lenovo one company now?
Was the only solution to the sleeping problem on Windows to switch laptops?
I don’t think so. Haven’t seen anything about that.
When Windows or Mac are put to sleep, the damn things can sleep for a week!
When I put my Windows work laptop to sleep, it damn well can sleep for a week. In fact, it sleeps so well that you could fell a tree next to it and it still wouldn’t wake up.
They should really rename that button to “coma”. “Sleep” implies you can wake it up.
Wait, how do you get it out of sleep then? Hard shut down by holding the power button down for a few seconds?
Yep. It’s the only way to do it sometimes.
I rarely put my linux to sleep because I had this experience in the past, but yesterday I’ve had my minisforum v3 laptop in sleep for 3 hours and it stayed fully charged at 100% battery. It made me think the battery percentage readout was broken, but no, it strarted draining after using it for a while.
No clue if it’s something I did back then during install (arch linux btw) or whether it was like this out of the box, but it really surprised me. And I’m gonna try using it more in the future.
In my experience, it’s probably a hardware/driver thing. Lenovo laptops are generally really good, but the sleep still drains the battery at the usual rate that forces you to keep an eye on it every day. However, Framework seems to have a pretty amazing battery life during sleep. My guess is, Framework has done something right, and the kernel is able to handle power states way better than any laptop I’ve ever owned.
It’s clearly not about the custom tweaks either. I’m running just plain Debian KDE, and I haven’t tinkered with the power settings at all.
That’s interesting because my Framework 15 dies very quickly while in sleep mode running Fedora KDE spin.
That’s really odd, because I thought Fedora would have better drivers.
Apparently, the settings would be the next place to look for answers. My settings are really boring and conservative.
When laptop lid is closed: sleep
Nothing special there, so I really don’t know what makes this hardware+software+settings combination unique. I have another computer I use for tinkering, and this one is specifically meant to be the boring one, hence Debian. Turns out, that somehow resulted in amazing stand by time, and I don’t even know how.
I recommend using hibernate (suspend to disk): your computer will “sleep” for 10 years without draining. The only cost is about 7 seconds to boot on modern hardware. For short interruptions with instant wakeup, you can still use light sleep states.
It combines perfectly with LUKS-encrypted root and swap partitions: your data is safe even if someone steals your computer and swakes it up.
Hibernate doesn’t work with secure boot/kernel lockdown for $REASONS, a lot of folks can’t even use it. Supposedly if Linux can determine you’re resuming from an encrypted partition it will work, but I was never able to get it to work with a swap file on BTRFS on LUKS
There’s only so much that can be done on the hardware/ firmware side, but his for me is the real gap that Linux can improve upon. Hibernate, disk encryption and secure boot/tpm unlock together have just worked for a long time on Mac and Windows.
The kernel decisions seem hostile and hard code a big assumption that it’s always unsecure to restore from hibernate automatically. What’s more insecure is having to disable disk encryption entirely. Secure boot is often misunderstood, but for all its flaws it is better than nothing, and your average user does not want to manually enter a decryption key on top of their user login all the time.
Because of this I feel a lot of software is not written and tested with hibernate in mind, so you also roll the dice on what works and what doesn’t when restoring today.
Sleep for 1 hour and then auto hibernate after, in a working setup, meant this problem was solved - always enough battery to resume doing work, no user decision required, quick wake up if resuming a recent session.
I’d love to see multi-user switch selectively suspending user processes and writing them to disk, so you can quickly restore state between users, and if one user left a browser or game running it’s not draining the battery on what are now known background tasks. No OS does this one well today.
True, kernel developers should resolve the Secure Boot issue with hibernation, but the development focus is on servers, not laptop computers. Also, hibernation should probably use a dedicated hibernate image file instead of requiring a huge swap partition. That being said, it works regardless of hardware capabilities if you turn off secure boot and just configure a LUKS-encrypted SWAP partition. You should figure this out before you install the OS.
Unfortunately, hibernate does not work on all devices. I believe, it depends on the motherboard and BIOS…
I’ve found full shutdown and subsequent boot up on my current Bazzite setup takes less time then hibernate used to in Windows 10 on the same PC. Haven’t even felt the need to look into setting up swap (Bazzite uses zram by default).
full shutdown and subsequent boot up on my current Bazzite setup takes less time than hibernate
maybe, but a full shutdown and reboot does not restore all your apps, open documents, terminals etc exactly as they were.
Hibernate with an encrypted swap and systemd boot takes forever for me. How do you manage in 7 seconds? How much RAM do you have?
32 GiB. I decided against a 96 GiB model with hibernation in mind.
When I put windows to sleep it just wake up in middle of the night to install whatever update, restart and slowly empty it battery until it die.
I’ve found on my corpo dell-
Disable wifi
Sleep from start menu
Wait until fan stops spinning
Close lidI find my laptop suffocating itself in my bag every single time i don’t. This way, it only does that 1 in 10 times.
i use a kaby lake (7th gen intel i5) laptop, and sleep works well on all linux, freebsd, windows. i’m using s3 sleep, are you on a newer machine that only supports s0ix?
I have the 13th Intel mobile gen and it sucks when it comes to power states
yeah, i think they started getting rid of s3 in favor of s0ix since 11th? 12th? gen. heard it’s shitty. :(
I mean, it is more than thirty uears and has lots of responsibility… That or lack of melatonin
From what I heard, the sleep mode on the steam deck is just the default linux sleep mode. It works almost flawlessly.
I don’t think it’s quite true though because I can leave it in sleep mode for days and it just fires back up where it left off with almost no noticeable battery drain. If I put my desktop pc to sleep (bazzite) it acts like a stroke victim. IF it manages to wake up. Usually it just has to be restarted so I don’t waste my time and just shut it down now.









