Undoubtedly, Ubuntu 22.04 LTS’s black screen after suspend issue has been a critical problem for some users. If you have an NVIDIA or AMD graphics card, you may find this issue more frequently. This article provides an in-depth analysis of the problem and provides various solutions.
In this tutorial you will learn:
- How to troubleshoot and fix the black screen issue after suspension in Ubuntu 22.04 LTS for NVIDIA graphics cards, including disabling NVIDIA systemd services and downgrading or upgrading drivers
- A workaround for users with NVIDIA driver 515 and CUDA 11.7 to address the black screen problem after suspension
- Solutions for AMD graphics cards users, which involves the installation of the amdgpu-install package
|Requirements, Conventions or Software Version Used
|Any Ubuntu distribution
|Privileged access to your Linux system as root or via the
|# – requires given linux commands to be executed with root privileges either directly as a root user or by use of
$ – requires given linux commands to be executed as a regular non-privileged user
Understanding The Core Issue
The problem primarily arises due to the way NVIDIA drivers handle power management on Linux. There are two possible methods:
- Kernel Driver Callback: This method functions flawlessly without requiring any configuration, but it only conserves a fraction of the video memory. Furthermore, it lacks advanced power management capabilities.
- systemd (/proc/driver/nvidia/suspend): Unlike the Kernel Driver Callback, this method has advanced power management traits and can complete video memory. Nevertheless, it necessitates setup and configuration.
This problem seems to surface with NVIDIA’s 470 driver migration to the systemd method. Earlier driver versions utilized Kernel Driver Callback. This transition appears to be problematic for some kernel setups.
Bypassing The Issue
As the systemd method appears to be the issue, we need to revert to the Kernel Driver Callback method temporarily. Here is how you can accomplish it:
Disable NVIDIA systemd services,
$ sudo systemctl stop nvidia-suspend.service $ sudo systemctl stop nvidia-hibernate.service $ sudo systemctl stop nvidia-resume.service $ sudo systemctl disable nvidia-suspend.service $ sudo systemctl disable nvidia-hibernate.service $ sudo systemctl disable nvidia-resume.service
This sequence of commands will stop and disable NVIDIA systemd services related to suspend, hibernate, and resume. After this, we will remove the systemd script of NVIDIA by running the following command:
$ sudo rm /lib/systemd/system-sleep/nvidia
Following this, reboot your machine. Your machine should be able to suspend and resume appropriately with the driver version 470.xx. Please note, this a workaround and may not be a permanent solution.
- Different NVIDIA Driver Versions: If you’re utilizing different versions of NVIDIA drivers, such as versions 510 and 515, you may want to downgrade to version 470. For this process, use the “Additional Drivers” application to select the NVIDIA driver version 470 and apply the changes.
- AMD Graphics Cards: If you’re operating with AMD graphics cards, you may improve the situation by installing the amdgpu-install package. You can get it by running
- NVIDIA Driver Alteration: Changing the driver to “NVIDIA driver 515 tested” may also solve the issue.
- Lastly, Upgrading NVIDIA Driver to Version 525: For those using a GeForce GTX 1060 graphics card on Ubuntu 22.04, you should upgrade the NVIDIA driver to version 525. Navigate to the “Software & Updates” application on your system and select the NVIDIA driver version 525. Implement the changes and restart your system.
These solutions should resolve the black screen after a suspension problem in Ubuntu 22.04 LTS. Always back up your essential data prior to altering your system significantly. The Ubuntu community is always available for additional assistance in the event of an issue.