11

On Ubuntu 20.04 LTS (UEFI mode installed, NVIDIA GF GTX 1050), I can not resume my computer after the suspension so that I have to directly shut it down and start up again. Here is my /etc/default/grub

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="nouveau.modeset=0"

and the screen display when I try to resume the device:

ERROR: GPU0: Display engine push buffer channel allocation failed: 0x65 (Call timed out [NV_ERR_TIMEOUT])
ERROR: GPU0: Failed to allocate display engine core DMA push buffer
ERROR: GPU0: Display engine push buffer channel allocation failed: 0x65 (Call timed out [NV_ERR_TIMEOUT])
ERROR: GPU0: Failed to allocate display engine core DMA push buffer

8 Answers8

8

Same problem on my Lenovo Legion. I managed to make it work with:

sudo apt purge nvidia-*
sudo apt install nvidia-driver-450-server

The package nvidia-driver-450 will install nvidia-driver-460 instead.

7

This is a known bug.

The solution is to revert to nVidia version 450.

You should also register yourself onto the bug report saying "It effects me" and subscribe to email on bug updates.

To install an earlier version of nVidia Drivers see this:

7

A little background to understand the problem and the redundancy of some of the suggested (working) solutions.

The NVIDIA Linux driver supports the suspend and hibernate power management operations via two different mechanisms:

  1. Kernel driver callback: default mechanism - it is enabled and used without explicit configuration. The kernel driver receives callbacks from the Linux kernel to suspend, hibernate, and to resume each GPU for which a Linux PCI driver was registered.

  2. /proc/driver/nvidia/suspend: Instead of callbacks from the Linux kernel, this mechanism, when used, relies on a system management tool, such as systemd, to issue suspend, hibernate, and resume commands to the NVIDIA kernel driver via the /proc/driver/nvidia/suspend interface. It is still considered experimental, and requires explicit configuration to use.

The cleanest easy solution is to simply disable 2 (if enabled) and let the default mechanism 1 do the work.

Of course, advanced users can choose to fix [2] with explicit and accurate configuration - it is more powerful as this mechanism is designed to remove the limitations of the kernel driver callback mechanism 1. It supports power management with advanced CUDA features (such as UVM), and it is capable of saving and restoring all video memory allocations

Here are the steps for cleanest easy solution (su - access presumed):

  1. Check whether [2] is enabled:

    systemctl status nvidia-suspend nvidia-hibernate nvidia-resume
    

    enter image description here

  2. Alternatively, do:

    journalctl -b | grep suspend
    

    If [2] is being used, you'll see it action explicitly in the logs like:

    COMMAND=/bin/systemctl status nvidia-suspend nvidia-hibernate nvidia-resume
    
  3. Okay, now that you know [2] is in use, let's disable it.:

    systemctl disable nvidia-suspend nvidia-hibernate nvidia-resume
    

    You should see a message stating:

    Removed /etc/systemd/system/systemd-[suspend|hibernate|resume].service.requires/nvidia-[suspend|hibernate|resume].service
    
  4. Now, you can repeat steps 1 or 2 and verify that the service(s) is/are indeed disabled:

    rm /lib/systemd/system-sleep/nvidia
    

I've seen some working but inaccurate solutions like [1, 2, 3], where manual sudo rm /etc/systemd/system/systemd-suspend.service.requires/nvidia-suspend.service is suggested. You should NOT do this.

Some other useful commands for diagnostics:

$ cat /proc/driver/nvidia/version 
$ nvcc --version

Also Ctrl+Alt+F7 followed by Ctrl+Alt+F1.

John Doe
  • 191
4

From the bug report page, there is a solution mentioned by Hugo Ferreira (hmf) as follows which solved my issue without downgrade. I was using Nvidia driver 460.91 and ubuntu 18.04.5 and had same issue. If downgrade is a issue for you then try any of these solution. Both works!!

  1. Configure the use of the suspend and resume scripts shown here: https://download.nvidia.com/XFree86/Linux-x86_64/460.39/README/powermanagement.html

  2. Use the "Software & Updates -> Additional Driver" application but use the "NVIDIA Server Driver metapackage ... (proprietery)" and not the "NVIDIA driver metapackage ... (proprietary, tested)"

4

Same problem for me with ubuntu 20.04, kernel 5.11.0 and Nvidia driver 470.74 : black screen when trying to resume after suspend. As stated here the installation using command line and not driver install GUI do the job. The server version of the driver has drawback for me as it do not manage color profile for the monitor (which make sense for a server).

sudo apt purge nvidia-*
sudo apt autoremove
sudo apt install nvidia-driver-450

this install driver version 460.91 which works fine on my configuration. Command line install of version 470.74 has the problem.

1

In my case i have Ubuntu 20.04 and Nvidia Geforce GTX 1050, the suspension failed, but in my case it did't suspend at all, as in other cases i readed the suspension works but the problem is when the sistem try to resume.

I tried change versions, first 450 server, 418 server and 470 server. With 470 server driver version the suspension it works in my laptop.

Driver

Noel.Galdamez
  • 39
  • 1
  • 4
0

Apparently, the suspend problem has been fixed starting from driver 565.

Additional Drivers in Ubuntu 24.10 allowed me to choose nvidia-driver-570-server, which solved the problem in my case.

https://gist.github.com/bmcbm/375f14eaa17f88756b4bdbbebbcfd029?permalink_comment_id=5527056#gistcomment-5527056

Bart
  • 121
-2

I had this same problem for my ubuntu 20.04 for driver version 460.91.

So I ran the following commands:

sudo apt purge nvidia-*
sudo apt autoremove

I did not install another version after removing these drivers.

After this, the problem was fixed.