[RESOLVED] Laptop stays on in sleep

Hi all,

I’m running Arch Linux and am having a problem configuring sleep on my Framework. When mem_sleep is set to s2idle, the laptop appears to stay powered on. The display turns off, but the keyboard backlight remains on if it is already, and the power button light stays solid, rather than going to the blinking mode I see in deep sleep. The battery drain is quite high with this also.

I know sleep should work correctly under s2idle, I’ve booted into various live environments from other distros such as Manjaro and Linux Mint, and both of those have behaved as expected out of the box, so I can’t help feeling like it’s something I’ve not configured properly!

Many thanks in advance!

1 Like

As I understand it, this is a known bug in the upower package, which also affects the ability of some userland applications and DEs to trigger sleep as well.

I can sleep to deep from the command line but not from kde’s main menu, for example.

I had heard mention of a fixed version being released, but I’m still seeing the issue on a fully up to date Arch derivative also.

I thought I’d come and check back in here as I’ve made some progress towards finding out the issue, at least. It seems this is a kernel issue, as spotted in this thread about Fedora.

I’ve just switched my Arch install to using the LTS kernel (5.15.43) rather than the latest one and s2idle sleep puts the hardware into the low power mode I’m expecting from it. It seems that 5.16 seems to have introduced this but I’m yet to figure out how to solve that. But progress at least!

3 Likes

I have the same issue, even on latest linux kernel (6.2.7 currently).
Did you find a way @tgpips ? Or are you still stuck with 5.15 ?

hi @jean ,

Is this the latest version Arch?

Arch is rolling release? So maybe uptodate is more clear.

I suggest to check if unplugging all external devices changes anything.

And then check journalctl/dmesg for hints.

Actually, Ubuntu 22.04 (KDE Neon)
Is it fixed on Arch ?

Will do !

Hi, yes I did find the solution. In your kernel parameters within GRUB/bootloader of choice, put in (including the quotation marks, this is important!):

"acpi_osi=!Windows 2020"

This will resolve whatever regression came in with 5.16 and works even on the current 6.2.x kernel.

3 Likes

Amazing, works like a charm !
Thanks !

For future readers and Grub users, in /etc/default/grub, add acpi_osi=!\"Windows 2020\" to the line that begins with
GRUB_CMDLINE_LINUX_DEFAULTand reboot :slight_smile:

3 Likes

Changing Thread to Resolved, thanks @tgpips :blush:

1 Like

For those using Refind, adding
acpi_osi=!‘Windows 2020’ to my options in /boot/refind_linux.conf seems to have worked. Escaping the " (double quote) as given for Grub above did not.

Looks like this fix did not survive another reboot. Hmm.

I’m still relatively new to Linux as my main OS so I would like some clarity here.

What is the difference (if any) between @tgpips and @jean representation of the parameter?

I have the desired/expected behaviour with GRUB_CMDLINE_LINUX="rhgb quiet “acpi_osi=!Windows 2020"” I’m including the rhgb quiet part as any Linux nubs like me using Fedora might find it helpful.

1 Like

hi @Usernames ,

the difference between adding it on GRUB_CMDLINE_LINUX vs GRUB_CMDLINE_LINUX_DEFAULT is that the former is always applied even on recovery mode, while the later is only applied on normal boot, the later seems more okay.

1 Like

Hi @Loell_Framework,

Thanks for explaining the difference between GRUB_CMDLINE_LINUX_DEFAULT and GRUB_CMDLINE_LINUX and why it is more desirable. To confirm, the \ is required when adding to the GRUB_CMDLINE_LINUX_DEFAULT line and not required for the GRUB_CMDLINE_LINUX line?

So it should be either:

GRUB_CMDLINE_LINUX="acpi_osi=!Windows 2020"
or
GRUB_CMDLINE_LINUX_DEFAULT=acpi_osi=!\"Windows 2020\"

I have no GRUB_CMDLINE_LINUX_DEFAULT= line in my grub.cfg file but I think I’m right in saying it can be added to grub.cfg and Fedora/RH just don’t use it by default?

I’m aware that it is recommended to use grubby on Fedora and that they have a slightly different approach to other Linux distros in that regard so maybe that is why it isn’t there.

This bug was reported to bugzilla a year ago with the last reply being March 10th:

Thank you for testing. I’ve access to a Framework laptop myself, I’m a bit busy atm but I will try to reproduce this when I can make some time and then investigate.

I’m unfamiliar with the process but does Framework have any hand in helping with this bug or bringing attention to it? It is not a big deal to add this parameter but I wonder if this is just how it will always be.

Thanks

Hello @Usernames ,

hmm I see, ok I may need to do some reading maybe GRUB_CMDLINE_LINUX_DEFAULT has become a legacy config in the succeeding grub versions, let us know if you encounter issues using either.

cheers :slight_smile:

2 Likes

Ideally, if this resolves your issue, acpi_osi=!Windows 2020 is the most common usage.

1 Like

@D.H (and any other Refind users reading this) FYI I found via the Arch Linux wiki that " characters can be escaped in Refind config by typing them twice, as opposed to using backslashes.

See: rEFInd - ArchWiki

Is this also an issue on any of the AMD systems?

With framework 13, amd rizen 7 , I don’t have issue with device staying on during suspend.

Only s2idle seems available (no deep).

had others issue (cf dedicated topics in forum) :

1 Like