I'm having a weird problem where Ubuntu won't suspend, except in unusual circumstances.
By "won't suspend", I mean that selecting Suspend from the top-right power menu will cause the screen to briefly go black, followed immediately by the unsuspended/woken-up login screen.
This is a Dell Precision 3590 that originally shipped with Ubuntu 22 LTS from the factory at the end of October 2024. Dell provides a factory image/recovery image for this model here.
Everything below reproduces 100% of the time.
- Wiping the machine and installing the factory image causes suspend to always work.
- Afterward, going to Software Updater and downloading all updates causes suspend to stop working.
- If I download only the security updates, suspend also stops working.
- Wiping the machine and installing Ubuntu 22 LTS (from the official website) causes suspend to never work.
- A clean install of Ubuntu 24 LTS also causes suspend to never work.
- A clean install of Ubuntu 24.10 (non-LTS) also causes suspend to never work.
- Starting from Ubuntu 24 LTS, the kernel is on 6.8.0. If I manually upgrade to any mainline kernel including 6.11, suspend never works.
- If I manually downgrade to mainline kernel 6.7.10 (the latest version of 6.7), suspend always works.
- If I manually downgrade to mainline kernel 6.6.51 (the latest version of 6.6), suspend works but the brightness buttons on the laptop stop working. The same applies to lower versions of 6.x.
- Ubuntu will not boot past GRUB if I attempt to downgrade to the latest version of 5.x.
I am not sure what to make of this, especially since mainline kernel 6.7.x is supposed to be unsupported by now. I do not know where to start debugging this either. Ideally suspend should work on a stable kernel version, without needing a super-exact intermediate kernel version. Any help would be gladly appreciated.
Edit: Output of journalctl
over the last 5 minutes immediately after a failed suspend, with the -k and -p tags:
Nov 22 00:49:09 zowayix-Precision-3590 kernel: e1000e 0000:00:1f.6: PM: pci_pm_suspend(): e1000e_pm_suspend+0x0/0xa0 [e1000e] returns -2Nov 22 00:49:09 zowayix-Precision-3590 kernel: e1000e 0000:00:1f.6: PM: dpm_run_callback(): pci_pm_suspend+0x0/0x1b0 returns -2Nov 22 00:49:09 zowayix-Precision-3590 kernel: e1000e 0000:00:1f.6: PM: failed to suspend async: error -2Nov 22 00:49:09 zowayix-Precision-3590 kernel: PM: Some devices failed to suspend, or early wake event detectedNov 22 00:49:10 zowayix-Precision-3590 kernel: e1000e 0000:00:1f.6: PM: pci_pm_suspend(): e1000e_pm_suspend+0x0/0xa0 [e1000e] returns -2Nov 22 00:49:10 zowayix-Precision-3590 kernel: e1000e 0000:00:1f.6: PM: dpm_run_callback(): pci_pm_suspend+0x0/0x1b0 returns -2Nov 22 00:49:10 zowayix-Precision-3590 kernel: e1000e 0000:00:1f.6: PM: failed to suspend async: error -2Nov 22 00:49:10 zowayix-Precision-3590 kernel: PM: Some devices failed to suspend, or early wake event detectedNov 22 00:49:12 zowayix-Precision-3590 kernel: e1000e 0000:00:1f.6 enp0s31f6: Hardware ErrorNov 22 00:49:15 zowayix-Precision-3590 kernel: e1000e 0000:00:1f.6 enp0s31f6: Hardware ErrorNov 22 00:49:18 zowayix-Precision-3590 kernel: iwlwifi 0000:00:14.3: WRT: Invalid buffer destinationNov 22 00:49:18 zowayix-Precision-3590 kernel: iwlwifi 0000:00:14.3: Not valid error log pointer 0x0027B0C0 for RT uCode
lshw
output is too large to fit here, so I dumped it into pastebin: https://pastebin.com/Yq3JfhrB