[SOLVED] UEFI Setting to disable S0 Sleep

I never claimed Framework is “blocking” anything (least of all S3). Windows by default prevents use of S3 when S0 is available, and MS is making it increasingly difficult to utilize S3 (when S0 is available). As explained in the LTT video (link in OP), MS has iteratively removed several easier ways to enable S3. How long until they break this registry hack, too? Or have they already, partially?

You could tell me you understand my initial suggestion that if Framework could provide us an option in the UEFI/BIOS/firmware to prevent the OS from using S0 (not S3), then we’d have the most reliable way to force Windows to use (fallback to) S3 for sleep.

Instead of arguing against this feature request, which would presumably be no skin off your back.

@bmcdonnell - see it any of the other steps in this article help: https://appuals.com/disable-modern-standby-windows/

Hopefully one of them works. If so, please do let us know what the magic formula was.

Good luck!

Ugh. Well, I still think the retracted feature request from the OP is worthwhile. But I did get the registry hack working.

Apparently I had included a stray character (space or backtick) when I copied and pasted the registry key. (You can’t tell from the screenshot.) Deleted, recreated, rebooted, and it works.

Apologies for the confusion.

2 Likes

@bmcdonnell - thank you for the follow up, and glad that you got it working. Have a great evening (or day, or morning, or whatever is appropriate in your neck of the woods)!

Sounds like a good way to get MS to blacklist FW from getting PK keys and breaking Secure Boot. Whether you like it or not, MS has power here. Besides, your “cure” would impact Linux users as well, an undesirable behavior for me at least. If you don’t like what Windows does and it pisses you off so much…don’t use Windows. Use Linux or Mac. I’m not trying to be a jerk but asking FW to fix what MS does is ridiculous.

1 Like

If I may interject, I do support adding a UEFI toggle to disable S0 sleep. It’s my understanding that more than one UEFI supports that already, so why would Microsoft go after it?

1 Like

Seems at first glance like a good idea to add a toggle to BIOS, since theoretically it’ll force Windows to use S3. But as of right now S3 performs worse than hibernate…

1 Like

This seems like you’re finally engaging with my actual argument, so thanks for that. Why do you think that MS would do that? Again, my suggestion/request here has only been that they provide users an option to disable S0, not that they make this the default behavior.

How would it affect anyone who doesn’t toggle the setting?

I’m working on it.

Yeah, I’m learning this. :frowning:

I believe you invoke it manually with Start → Power → Sleep.

For me, with the S3 registry hack, it takes an unusually long time to come back to life (~12-14 sec, vs. e.g. ~4 seconds for my old Thinkpad), but it doesn’t appear to be going through a boot sequence when waking, as it does with hibernate. Also, it requires an extra keypress / mouse movement to wake the display. So I think it is actually some sort of sleep–probably S3–just badly implemented. (IDK who’s at “fault”–e.g. MS/Windows, some firmware, some driver, Intel, etc.)

Additionally, when waking from (presumed) S3, it does a terrible job of rediscovering my USB-C dock and its connected resources, requiring 2+ disconnect/reconnect cycles. So this may not even really be usable for me.

Ah, I misunderstood that part then. If it were the default behavior it would impact Linux users. As for MS…why do they block S3 sleep at all? Perhaps they would take no action at all or remove FW from authorized distributors of Windows or blacklist the PK or whatever. I’m for user freedom but I’d rather they put the engineering dollars into Coreboot than paying Insyde to develop that feature. It’s not that I’m opposed to what you want per se, just that I think you bark up the wrong tree as it were.

1 Like

Well, I retract my vote for the feature request (for BIOS to prevent modern standby).

On further reading, I’ve found several claims (1, 2, 3, 4) that Intel and AMD have removed support for S3 sleep in their newer processors/platforms, and that supposedly S0iX states (“modern standby”) are to be its replacement. I’ve not yet found a clear admission/explanation of that from Intel or AMD, though.

However, it’s so obviously not a suitable replacement. No one at Intel ever put their laptop to sleep and put it in their backpack when they were considering these changes? Standby and sleep do not mean the same thing.

I don’t need “instant on” from a proper “sleep” state. What I do want from it:

  • Silent and safe to block airflow
    • All moving components stop - especially fans
  • Quicker entry/exit vs. hibernate (S4 / suspend to disk)
  • Wakes only when I tell it to; not when the OS does because it wants to do who knows what tasks that it just. must. do. immediately–NO, they can wait until I wake it

S0ix-edit2

(Modified from source.)

I don’t need, want, or expect my laptop to behave like a mobile device. It still doesn’t, and can’t, even with “modern standby”. I’m not saying there’s no use for it, but at least Microsoft’s implementation really sucks, in that sleep isn’t sleep anymore.

I suspect/hope that various Linux distros have saner “sleep” implementations, i.e. enter and stay in S0i3, fans off, until actually awoken by the user.

[/rant]

1 Like

I disabled s3 sleep in the command line, but the issue persists for me. I found my laptop with a dead battery today after closing it while it was plugged in. A bios toggle would really help still. How do I ping the moderators to undo the “solved” label on this topic? It’s not solved.

@Wrenly_Bewick You don’t need to be a mod to change the title. I’m the one who did it. You can ping mods by typing @ moderators (space included to avoid pinging). The topic is about enabling S3 not disabling it as you are trying to do. Either sleep state supports charging while asleep so I’m not sure what your issue is but I think it isn’t as simple as changing sleep states. Read through the topic. Your complaint lies with MS not FW. The issue is marked as solved because it isn’t an issue with FW.

1 Like

Thanks for the clarification regarding the title change! I don’t have regular status yet, so I cannot personally do that, but the info is appreciated nonetheless.

I’m afraid that the topic is in fact about disabling S0 sleep from the firmware. Microsoft has gone out of its way to eliminate the capability to disable S0 sleep and force enable S3 sleep, despite the issues with the later. In addition, the peculiarities of S3 vs S0 sleep are particularly important for Linux users. A UEFI/ BIOS firmware toggle would help better support and reduce issues with both Windows and Linux alike.

All this would require would be a UEFI firmware update, and Microsoft wouldn’t need to be involved.

1 Like

These are not the same. I’ll grant you a toggle would be helpful I just hate asking FW to fix something that is is wrong with Windows. Linux users can switch between S3 and S0 much more easily.

I don’t think anyone is putting blame on Framework though? This seems to be just an innocent feature request that would be helpful to a lot of the community! There’s nothing wrong with asking as far as I can see.

2 Likes

No, there isn’t. Given the limited resources, I just prefer advocating for other things, like Coreboot.

And removing that option actually makes sense, because the only thing that changes is a single bit in the ACPI tables the BIOS provides and that bit is literally defined as “S0 sleep consumes less power than S3 sleep” and Intel has since removed official support for S3 on mobile CPUs.
Of course, it would be easy to flip that bit with a BIOS option, but why risk it, when there are enough reports out there of things breaking with S3.
Also, modern features like wake-on-fingerprint cannot be implemented on the existing Framework HW with S3, because instead of the OS being able to instantly wake and handle the fingerprint, you’d need either additional separate HW that can validate fingerprints autonomously or a 2-step process where you first wake it up, wait for the lock screen and then touch the power button again for the login.
Framework probably also cannot guarantee S3 working, even to the current (lacking) level, in the face of security, ME, driver and Windows updates without official support from Intel.

The problem rather is, that Windows does not give us options to control what it does during S0 sleep, because the whole point of S0 sleep is, that that is now under OS control and not HW. It would be quite easy for Windows to disconnect from WiFi and wake up for nothing other than what traditionally wakes it from S3 (keyboard, mouse) if the user so desired. If the bit is actually accurate, then S0 sleep poses no problem by itself. So, be angry at this decision from Microsoft, not HW using new methods that reduce complexity and provide more options without any disadvantages (unless somebody actually has numbers showing, that the bit is lying, and Intel’s CPUs and reference board designs cannot be more efficient in S0 sleep than in S3, as long as the OS does not do additional things in the background).
As long as it is not just FWs board design that consumes too much power in S0 compared to S3, even though Intel has designs that don’t, this cannot be FWs fault or even under their control, without risking huge amounts of customer complaints when S3 could break randomly or permanently with any newly released update.

3 Likes

I’m afraid I firmly disagree with your stance. As time goes on, I keep finding my laptop drained after sleeping. The option in the registry and command line has no effect. I keep finding my laptop drained even when S0 sleep is allegedly disabled. That’s why I want a firmware toggle. I am a power user, and I can troubleshoot these kinds of things. Anecdotally, the kinds of people who buy framework laptops should be exactly the sorts of people who can figure these things out. It frustrates me that such a simple addition to the firmware poses such opposition…