Black screen when resuming from suspend (s2idle)

Hello!

Today, I felt like giving it a shot at fixing my suspend issue, as I have never really gotten it to work on any of my Linux installations (over 3 computers). As many before me when I attempt to make the laptop resume from the suspension, it lights up, but the screen remains black. At first, the journal didn’t tell me much other than that the suspend job exited. After looking around the forum, it now says there is an Nvidia issue (who could’ve guessed). However, since this is an issue that I have had on computers without Nvidia cards, I hope there may be a solution and that this is not the root issue.

Here is some info I assume might be helpful:

23:19:03 kernel: Low-power S0 idle used by default for system suspend
23:19:04 kernel: nvme 0000:04:00.0: platform quirk: setting simple suspend
23:19:04 kernel: nvme 0000:05:00.0: platform quirk: setting simple suspend
23:19:56 systemd-logind[848]: The system will suspend now!
23:19:56 systemd[1]: Starting System Suspend...
23:19:56 systemd-sleep[4515]: in suspend-then-hibernate operations or setups with encrypted home d>
23:19:56 systemd-sleep[4515]: Performing sleep operation 'suspend'...
23:19:56 kernel: PM: suspend entry (s2idle)
23:19:57 kernel: printk: Suspending console(s) (use no_console_suspend to debug)
23:19:57 kernel: queueing ieee80211 work while going to suspend
23:19:57 kernel: NVRM: GPU 0000:01:00.0: PreserveVideoMemoryAllocations module parameter is set. S>
23:19:57 kernel: nvidia 0000:01:00.0: PM: pci_pm_suspend(): nv_pmops_suspend [nvidia] returns -5
23:19:57 kernel: nvidia 0000:01:00.0: PM: dpm_run_callback(): pci_pm_suspend returns -5
23:19:57 kernel: nvidia 0000:01:00.0: PM: failed to suspend async: error -5
23:19:57 kernel: PM: Some devices failed to suspend, or early wake event detected
23:19:57 kernel: PM: suspend exit
23:19:57 kernel: PM: suspend entry (s2idle)
23:19:57 kernel: printk: Suspending console(s) (use no_console_suspend to debug)
23:19:57 kernel: NVRM: GPU 0000:01:00.0: PreserveVideoMemoryAllocations module parameter is set. S>
23:19:57 kernel: nvidia 0000:01:00.0: PM: pci_pm_suspend(): nv_pmops_suspend [nvidia] returns -5
23:19:57 kernel: nvidia 0000:01:00.0: PM: dpm_run_callback(): pci_pm_suspend returns -5
23:19:57 kernel: nvidia 0000:01:00.0: PM: failed to suspend async: error -5
23:19:57 kernel: queueing ieee80211 work while going to suspend
23:19:57 kernel: PM: Some devices failed to suspend, or early wake event detected
23:19:57 kernel: PM: suspend exit
23:19:57 systemd[1]: systemd-suspend.service: Main process exited, code=exited, status=1/FAILURE
23:19:57 systemd[1]: systemd-suspend.service: Failed with result 'exit-code'.
23:19:57 systemd[1]: Failed to start System Suspend.
23:19:57 systemd[1]: Dependency failed for Suspend.
23:19:57 systemd[1]: suspend.target: Job suspend.target/start failed with result 'dependency'.
23:19:57 systemd-logind[848]: Operation 'suspend' finished.
23:20:07 systemd-logind[848]: The system will suspend now!
23:20:07 systemd[1]: Starting System Suspend...
23:20:07 systemd-sleep[4898]: in suspend-then-hibernate operations or setups with encrypted home d>
23:20:07 systemd-sleep[4898]: Performing sleep operation 'suspend'...
23:20:07 kernel: PM: suspend entry (s2idle)
23:20:08 kernel: printk: Suspending console(s) (use no_console_suspend to debug)
23:20:08 kernel: NVRM: GPU 0000:01:00.0: PreserveVideoMemoryAllocations module parameter is set. S>
23:20:08 kernel: nvidia 0000:01:00.0: PM: pci_pm_suspend(): nv_pmops_suspend [nvidia] returns -5
23:20:08 kernel: nvidia 0000:01:00.0: PM: dpm_run_callback(): pci_pm_suspend returns -5
23:20:08 kernel: nvidia 0000:01:00.0: PM: failed to suspend async: error -5
23:20:08 kernel: queueing ieee80211 work while going to suspend
23:20:08 kernel: PM: Some devices failed to suspend, or early wake event detected
23:20:08 kernel: PM: suspend exit
23:20:08 kernel: PM: suspend entry (s2idle)
23:20:08 kernel: printk: Suspending console(s) (use no_console_suspend to debug)
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.144                Driver Version: 570.144        CUDA Version: 12.8     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4050 ...    Off |   00000000:01:00.0  On |                  N/A |
| N/A   39C    P8              2W /   35W |     538MiB /   6141MiB |     31%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

I am currently on kernel version: 6.14.4-arch1-2

I would be very grateful if anyone has any insight or guidance as to what the issue at hand could be and how to rectify it. I am more than happy to answer any questions.
Thank you in advance!

Just for the reference, can you show the installed nvidia packages:

pacman -Qs nvidia

Of course, here you go!

❯ sudo pacman -Qs nvidia
local/cuda 12.8.1-3
    NVIDIA's GPU programming toolkit
local/cudnn 9.8.0.87-1
    NVIDIA CUDA Deep Neural Network library
local/egl-gbm 1.1.2.1-1
    The GBM EGL external platform library
local/egl-wayland 4:1.1.19-1
    EGLStream-based Wayland external platform
local/egl-x11 1.0.1-1
    NVIDIA XLib and XCB EGL Platform Library
local/libnvidia-container 1.17.6-1
    NVIDIA container runtime library
local/libvdpau 1.5-3
    Nvidia VDPAU library
local/libxnvctrl 570.144-1
    NVIDIA NV-CONTROL X extension
local/nccl 2.26.5-1
    Library for NVIDIA multi-GPU and multi-node collective communication primitives
local/nvidia-container-toolkit 1.17.6-1
    NVIDIA container toolkit
local/nvidia-hook 1.5.2-1
    pacman hook for nvidia
local/nvidia-inst 25.4.11-1
    Script to install/uninstall nvidia driver packages in EndeavourOS
local/nvidia-open-dkms 570.144-3
    NVIDIA open kernel modules - module sources
local/nvidia-settings 570.144-1
    Tool for configuring the NVIDIA graphics driver
local/nvidia-utils 570.144-3
    NVIDIA drivers utilities
local/opencl-nvidia 570.144-3
    OpenCL implemention for NVIDIA
local/python-nvidia-ml-py 12.570.86-1
    Python Bindings for the NVIDIA Management Library

I guess you’ve seen this? https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate

Nvidia GPUs have generally had issues with the drivers. I have an older (Pascal family) Nvidia GPU, and suspend/resume hasn’t been working well on this machine. Previously resume from suspend caused a full machine freeze, and nowadays resume works but the machine starts warming up very fast, and I have to reboot to fix that.

Yeah, oh well, I guess I’ll have to do without it. Thank you anyway, have a nice day!

1 Like