Tuesday, December 5, 2023
 Popular · Latest · Hot · Upcoming
rated 0 times [  -1] [ 0]  / answers: 1 / hits: 2116  / 9 Months ago, thu, march 30, 2023, 1:56:09

After upgrading from Ubuntu 20.10 to 21.10 (via 21.04, which I didn't test for suspend/resume behaviour), suspend/resume no longer works properly.

If I use the proprietary NVIDIA driver metapackage from nvidia-driver-470, the system seems to suspend ok -- using the power button (equivalent to systemctl suspend) --, but on resume, the display stays black and I have to power off to escape this.

(If I use the X.Org X Server driver, the system fails to suspend after temporarily turning off the display.)

Previously, on 20.10, suspend/resume worked ok. IIRC, I was using a proprietary NVIDIA driver.

The graphics card is a GK106GL [Quadro K4000] (codename NVE6) and the PC is a Dell Precision T5500. inxi -G output:

Graphics:  Device-1: NVIDIA GK106GL [Quadro K4000] driver: nvidia v: 470.74 
Device-2: SHENZHEN EMEET HD Webcam eMeet C960 type: USB driver: hid-generic,snd-usb-audio,usbhid,uvcvideo
Display: x11 server: X.Org 1.20.13 driver: loaded: nvidia unloaded: fbdev,modesetting,nouveau,vesa
resolution: 2560x1440~60Hz
OpenGL: renderer: Quadro K4000/PCIe/SSE2 v: 4.6.0 NVIDIA 470.74

I followed some instructions for debugging kernel suspend, noting that pm-suspend (part of pm-utils) recreates the same restore failure as above, and found the following in dmesg output:

[    1.322162] PM:   Magic number: 0:486:890
[ 1.322167] PM: hash matches drivers/base/power/main.c:905
[ 1.322237] pci 0000:00:1f.3: hash matches

lspci showed:

00:1f.3 SMBus: Intel Corporation 82801JI (ICH10 Family) SMBus Controller

Searching for "smbus 82801ji" led me to Kernel driver i2c-i801. The source code for this driver included a fix for a resume bug. The latest kernel with the fix is 5.15-rc7.

After installing the 5.15-rc7 kernel using these instructions, restore still fails after systemctl suspend. However resume works ok after sudo pm-suspend. On 5.13, resume fails after sudo pm-suspend.

(I also tried editing /etc/systemd/sleep.conf to see if more restricted suspend options helped, but they didn't.)

More From » drivers


This seems to have fixed the "resume after hibernation" issue in 22.04 as well. Resume was working fine in 20.04, for years, however right after the upgrade to 22.04 a few days ago, resume from hibernation was no longer working if the hibernation lasted for more than an hour or so. On occasion the system would just not start, other times it would start but display the initram terminal and require an fsck on the filesystem/root disk (which was scary).
After this change, all testing so far as been successful (both long hibernation and short hibernation seem to work fine), nvidia drivers/opencl acceleration still works after waking up etc.
My setup is more complex than average because I am running full disk encryption, including swap. Before reading this post I was starting to regret the upgrade to 22.04 :)

[#1071] Friday, March 31, 2023, 9 Months  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.

Total Points: 164
Total Questions: 111
Total Answers: 107

Location: South Georgia
Member since Sun, Aug 8, 2021
2 Years ago
irripri questions
Mon, Aug 29, 22, 03:19, 1 Year ago
Thu, Dec 30, 21, 08:53, 2 Years ago
Sat, Mar 26, 22, 04:01, 2 Years ago