Hello. I just want to ask, I already tried search many resources, but I still can’t find a way to reduce battery drain while sleep on Ubuntu on Dell laptop.
I seen that it use S0ix, the new standard that many manufacturer use but when sleep it drains a lot battery, in just 6 hours the battery gone 0.
Any help is appreciated. This is company laptop and it requires me use ubuntu (I don’t like it but I don’t have options to changes OS/distro).
Thanks
Do a “cat /sys/kernel/debug/pmc_core/package_cstate_show”. You probably have figures for C2 and C3, and C6-C10 states are all zero. C10 is the golden S0ix state that you need for modern sleep.
I have a 13th gen intel Zenbook, and I spent a month fighting the same. My problem was that the bios setting for Intel VMD/Raid cockblocked sleep. If you have any bios options to disable that, or set storage to a more legacy mode, try it.
I check that C2 the only one has value when on battery.
Others are zero. Hmmm…
Check with powertop that runtime power manage is enabled for devices (tunables are “Good”).
It looks like it has a RTL8111H for Ethernet, which is known to be problematic with sleep. My machines don’t go below C3 due runtime power management being disabled for Ethernet, but enabling it causes it to fail to come out of suspend correctly.
All are good, still draining sadly :')
I’m sure you tried but the definitive option would be a BIOS switch to change it. Sometimes is says S3, sometimes it says Linux sleep (like my personal ThinkPad)
But if you don’t have that toggle at all, the firmware probably dumped S3 entirely - especially if it’s a relatively new machine and you’ll have to lean much more on Hibernate like my new work ThinkPad.
I would investigate whether an older BIOS version still has the S3 toggle since some BIOS updates have removed S3 I believe but a search of forums would probably turn up enough complaints to hit your radar.
Thinkpad still has it? T14?
On dell I already check it, they don’t have it sadly.
You’d have to check, my personal X1 Extreme Gen 4 has the toggle but my new work T14 Gen 3 does not.
I remember that on new generations of Intel chips there is no support for S3 at the chipset level, which means that the operating system physically cannot enter the laptop into this mode. On Windows S0ix is better optimized, that’s all. Linux has problems with this.
Even on windows S0ix is garbage
It is better than on Linux but definetly not very good.
Have it on work laptop… It wakes laptop for random things, if I put it in backpack I can find empty battery in the morning… Nope, s0ix does not work at all on windows anyway.
It works quite well on Microsoft Surface Pro. I think a lot depends on the specific manufacturer/drivers. But overall, yes, S0ix is much worse than S3.
And it could be that corporate bloatware is breaking it. I know, and I wasted some time looking if it’s possible to use S3 state (nope, it’s not on hardware I got -,-)
:(
Yeah. MS has stopped using S3 since Win8, so Bios vendors and OEMs have been letting it atrophy.
MAYBE because they WANT your battery to be EMPTY in the morning so it HAS to go through MORE charge cycles, leading to your battery DYING earlier, so you have to buy a new battery, which means getting a new laptop. COINCIDENCE?
The Nintendo 3DS, like most Nintendo systems, had the hardware for several generations of older systems in it. It had the full GBA hardware, and it could fully play almost all GBA titles. Nintendo gave away a few GBA titles as a “super secret squirrel fan club” promotion, but never sold any on the 3DS. They threw away a lot of possible game sales, but why?
They’ll never say, but the most obvious failing is that the 3DS could not sleep while a GBA game was active. You can close your bivalve console, and instead of it going to sleep the game just keeps on going. That was an unacceptably inconsistent and bad experience for a kid-friendly console.
Nintendo, who controls the firmware, the OS, who validates every game, WHO DESIGNED OR SPEC’D EVERY SINGLE CHIP IN THEIR BOM, simply could not figure out sleep. And they lost a medium-sized fortune in BC game sales over that.
Maybe sleep is just a hard problem?
They didn’t care for GBA games enough.
I like how just the caps words read. Very concise.
- Don’t buy a new laptop when you just need a battery
- This is real bad user experience, and one of the larger reasons I use a MacBook in spite of its (and apples) many many flaws
For point one, that’s not possible on today’s anti-consumer laptops.
For point two, apple keeps reinventing the computer with their nonstandard sh!t like M1.
@yum13241 @NightAuthor I have to take exception with the idea that Apple makes shit because it is not standard. They are making Macs, so for their platform, that is the standard. If you mean they should have to document their architecture to the outside world, I might agree, but that’s not the world we live in.
Maybe we should have a standards based platform that can be used for opensource platforms like Linux, but that’s an issue Linux hardware developers have to do.
Idk if this is by design, but I was not notified of this @mention
Yeah, and now billions of programs have to be recompiled, if not rewritten. At least one person’s workflow will break. There’s a difference between making a Personal Computer and a locked down console that doesn’t run games all that well. Apple is doing the latter, by pushing architectures that lock people into their OSes.
@yum13241 but don’t programs that run on Linux Arm also have to be recompiled?
Don’t misunderstand me, I think there may be cause for Apple to be forced to open their ecosystem more, but operating systems are always unique unto themselves.
Why not just set your laptop to automatically hibernate after it’s been in a suspended state for x seconds? That way your system will fully power off after it’s been suspended for a while, which would save even more battery compared to S3. With the speed of NVMe drives, resuming from hibernation only takes a couple of seconds on most modern systems.
How do you set that up? Please don’t say it’s a BIOS setting.
Nah, it’s a systemd setting. You need to edit
/etc/systemd/logind.conf
and changeHandleLidSwitch=
toHandleLidSwitch=suspend-then-hibernate
, and the create or edit/etc/systemd/sleep.conf
to change the timeout value:[Sleep] HibernateDelaySec=900
With the above, the system will automatically hibernate after 15 minutes of sleep.
Note that if you’re using a full-fledged DE or a third-party power profile manager, you may need to disable any lid-close actions in there (if it doesn’t have the suspend-then-hibernate option) so that systemd can handle it properly.
deleted by creator
I’m not familiar with gnome, is there any option on gnome for it? I never seen it.
what does
cat /sys/mem_sleep
give you?
it’s mem and other, I forgot, but it’s normal I think.
Did you try S3 sleep?
More info here: https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate#Changing_suspend_method
It doesn’t have any ability to change to S3. I already tried all on that page, include suspend freeze