Score:6

Entire battery drains even though `[s2idle] deep` is available in my "/sys/power/mem_sleep" file

yt flag

After I suspend my laptop for ~10 hours, the laptop dies with the entire battery drained. I use "cat /sys/power/mem_sleep" to check the suspend mode and it returns "[s2idle] deep". Doesn't it mean I have the advance suspend mode that drains very little power during suspension?

I tried "sudo journalctl | grep "PM: suspend" | tail -2" after I suspended and woke up the laptop. It returns

Feb 16 10:46:42 Zephyrus kernel: PM: suspend entry (s2idle)
Feb 16 10:46:53 Zephyrus kernel: PM: suspend exit

which means that it didn't go into the suspend to ram mode, instead it goes into the power-draining s2idle mode. How can I fix this? Thank you!

It's a ROG M16 with ubuntu 20.04.

EDIT: I followed this article and I can have "suspend entry (deep) " now. Whether the battery is still drained remains to be checked.

Score:4
yt flag

I basically followed this article and some other instructions.

First, just whether your device is in the "suspend to RAM" using

cat /sys/power/mem_sleep

If it returns "s2idle [deep]", then it's supported. If it's not. First check whether your device supports this suspend mode, if so, run

echo 'deep' > /sys/power/mem_sleep

and check again.

Now your device has the correct suspend mode, but it doesn't necessarily enter this mode when you suspend. To check, first suspend your device, then wake it up. Then open a terminal and run

sudo journalctl | grep "PM: suspend" | tail -2

You can find the log of your suspension, which is something similar to below. Note that the log I attached shows that I correctly enter the "suspend to RAM" mode, in your case, it may appear "suspend entry (s2idle)" instead of "suspend entry (deep)"

lin@Zephyrus:~$ sudo journalctl | grep "PM: suspend" | tail -2
[sudo] password for lin: 
Feb 16 21:35:05 Zephyrus kernel: PM: suspend entry (deep)
Feb 17 09:36:24 Zephyrus kernel: PM: suspend exit

If this is the case, you have to modify your bootloader. Here I use the gedit. Make sure it's installed first by

sudo apt update
sudo apt upgrade
sudo apt install gedit

Then modify the bootloader file

sudo -H gedit /etc/default/grub

Locate the line GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" in the file and replace it with GRUB_CMDLINE_LINUX_DEFAULT="quiet splash mem_sleep_default=deep"

It should work now! Try to suspend and wake up your device and check the log using the command above again!

in flag
What is `mem_sleep_default=deep` doing? Is it a BIOS issue? Why can't it be set after boot? Is this related to Microsoft wanting network access during `sleep`?
William Lin avatar
yt flag
I am not an expert on it. My understanding is that it commands the device to enter the "s2idle [deep]" when suspended instead of "s2idle".
kjlee avatar
td flag
If I **configure disk in bios from raid to ahci**, the machine uses much less power during sleep. I am using 7770. No matter what parameter I pass to kernel, I always get: [s2idle] from cat /sys/power/mem_sleep
Vitor Alves avatar
np flag
Last (missing) step: sudo update-grub
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.