Laptop often resumes from suspend after a few seconds

Ubuntu Support Template

Ubuntu Version:
Example: 24.04 - kernel 6.17.0-1023-oem

Desktop Environment (if applicable):
Example: GNOME

Problem Description:
I have a Lenovo laptop (Intel Ultra 7 258V, no nvidia or AMD). The suspend functionality is intermittent, and I can’t seem to figure out what the problem is. Often, but not always, a few seconds after trying to suspend (whether via closing the laptop lid or selecting “Suspend” from the “Power Off” menu), the laptop will wake itself up without any interaction from me. At first I thought it was related to running virtualbox, but it’s happened even when virtualbox is not running.

Any assistance in troubleshooting, diagnosing, and solving the issue would be appreciated.

Relevant System Information:
I’m running the -oem kernel because of audio firmware bugs in the -generic kernel.

Here’s the output of cat /proc/acpi/sleep:

j****@****:~$ cat /sys/power/mem_sleep 
[s2idle]

Here’s the lspci output in case anyone spots a known problematic bit of hardware.

 lspci
00:00.0 Host bridge: Intel Corporation Device 6400 (rev 04)
00:02.0 VGA compatible controller: Intel Corporation Lunar Lake [Intel Arc Graphics 130V / 140V] (rev 04)
00:04.0 Signal processing controller: Intel Corporation Lunar Lake-M Dynamic Tuning Technology (rev 04)
00:07.0 PCI bridge: Intel Corporation Lunar Lake-M Thunderbolt 4 PCI Express Root Port #0 (rev 10)
00:07.1 PCI bridge: Intel Corporation Lunar Lake-M Thunderbolt 4 PCI Express Root Port #1 (rev 10)
00:07.2 PCI bridge: Intel Corporation Lunar Lake-M Thunderbolt 4 PCI Express Root Port #2 (rev 10)
00:0a.0 Signal processing controller: Intel Corporation Lunar Lake-M Crashlog and Telemetry (rev 04)
00:0b.0 Processing accelerators: Intel Corporation Lunar Lake NPU (rev 04)
00:0d.0 USB controller: Intel Corporation Lunar Lake-M Thunderbolt 4 USB Controller (rev 10)
00:0d.2 USB controller: Intel Corporation Lunar Lake-M Thunderbolt 4 NHI #0 (rev 10)
00:0d.3 USB controller: Intel Corporation Lunar Lake-M Thunderbolt 4 NHI #1 (rev 10)
00:10.0 Digitizer Pen: Intel Corporation Lunar Lake-M Touch Host Controller #0 ID1 (rev 10)
00:12.0 Serial controller: Intel Corporation Lunar Lake-M Integrated Sensor Hub (rev 10)
00:13.0 Communication controller: Intel Corporation Device a862 (rev 10)
00:14.0 USB controller: Intel Corporation Lunar Lake-M USB 3.2 Gen 2x1 xHCI Host Controller (rev 10)
00:14.2 RAM memory: Intel Corporation Lunar Lake-M Shared SRAM (rev 10)
00:14.3 Network controller: Intel Corporation BE201 320MHz (rev 10)
00:14.7 Bluetooth: Intel Corporation Device a876 (rev 10)
00:15.0 Serial bus controller: Intel Corporation Lunar Lake-M Serial IO I2C Controller #0 (rev 10)
00:15.1 Serial bus controller: Intel Corporation Lunar Lake-M Serial IO I2C Controller #1 (rev 10)
00:15.2 Serial bus controller: Intel Corporation Lunar Lake-M Serial IO I2C Controller #2 (rev 10)
00:16.0 Communication controller: Intel Corporation Lunar Lake-M CSME HECI #1 (rev 10)
00:19.0 Serial bus controller: Intel Corporation Device a850 (rev 10)
00:19.1 Serial bus controller: Intel Corporation Device a851 (rev 10)
00:1c.0 PCI bridge: Intel Corporation Lunar Lake-M PCI Express Root Port #1 (rev 10)
00:1f.0 ISA bridge: Intel Corporation Device a807 (rev 10)
00:1f.3 Multimedia audio controller: Intel Corporation Lunar Lake-M HD Audio Controller (rev 10)
00:1f.4 SMBus: Intel Corporation Lunar Lake-M SMbus Controller (rev 10)
00:1f.5 Serial bus controller: Intel Corporation Lunar Lake-M SPI Controller (rev 10)
7f:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller PM9C1a (DRAM-less)

Screenshots or Error Messages:
Happy to post those if ppl tell me what to look for!
We prefer copy-pasted text and screenshots instead of photos of screens.

What I’ve Tried:

I’ve tried searching about this issue, but most posts I’ve found either focus on discrete gpu hardware (nvidia), are quite old, or include commands that don’t work (one said to run “sudo pm-suspend”, which doesn’t work on my 24.04 system, I get a “command not found” error when attempting it).

Genuinely appreciative of any help, this laptop battery has been drained 4-5 times to zero because I didn’t realize that suspend “didn’t take” when I left the office for the day. Please let me know any info I should provide (and the commands to provide it).

–John

Welcome to the Ubuntu Discourse, @jbuncher!

sudo systemctl suspend

That’s how we roll in the systemd world now. :wink: I think you should try and see what happens after that without closing the lid or touching anything.

Does the wake-up happen right away when it happens? Because there may be some systemd timer which wakes on some schedule, but that should not happen right away. I believe the suspend-then-hibernate mode does something like that to check battery drain for an estimation when to hibernate. There could be other timers as well.

systemctl list-timers

Mind you, timers need to be explicitly configured to wake the system and the ones shipped with Ubuntu don’t do that, as far as I can tell.

You can also look at the log after such a suspend/resume cycle to see if the wake-up cause is logged somehow. First you should check the log for the sleep.target:

journalctl -en2 -u sleep.target

That gets you exactly two lines, of which you only need the timestamp of the first:

May 19 08:07:57 Myhost systemd[1]: Reached target sleep.target - Sleep.

You can use that timestamp to show only log entries younger than that:

journalctl --since='May 19 08:07:57'

So anything after that the sleep state was triggered should be in there, if it can be and was logged at all.

This article might help:

1 Like

That shouldn’t be the sole cause. I have this output, for instance:

$ acpitool -w
   Device       S-state   Status   Sysfs node
  ---------------------------------------
  1. GPP0         S3    *enabled   pci:0000:00:01.1
  2. GPP1         S4    *enabled   pci:0000:00:01.2
  3. GPP2         S3    *enabled   pci:0000:00:01.3
  4. GPP3         S3    *disabled
  5. GPP4         S3    *disabled
  6. GPP5         S3    *disabled  pci:0000:00:01.6
  7. GPP6         S3    *disabled
  8. GP17         S3    *enabled   pci:0000:00:08.1
  9. XHC0         S3    *enabled   pci:0000:05:00.3
  10. XHC1        S3    *enabled   pci:0000:05:00.4
  11. GP18        S3    *enabled   pci:0000:00:08.2
  12. LID         S3    *enabled   platform:PNP0C0D:00
  13. SLPB        S3    *enabled   platform:PNP0C0E:00

Also that list is not about devices in an “awake” state; it shows those that are allowed to wake up the system. I had similar issues once or twice in the past and the cause was due to errors while trying to suspend the system, so it never even entered that state. The journal should have entries showing such things.

1 Like