9

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
  • 2
    FYI the bug report for this is at https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-460/+bug/1911055. – edwinksl May 14 '21 at 21:53
  • I find out that when my miniconda jupyter notebook server is still on, if I suspend my computer without finishing the server, this error will occur. Still don't know how to fix it. – babylearnmaths Oct 09 '21 at 07:58
  • Maybe my system isn't so stable to run Ubuntu, there are also some small bugs when I resume my computer. Lenovo Legion Y530 Intel Core i7-8750H CPU – babylearnmaths Oct 09 '21 at 08:03

7 Answers7

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:

5

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
  • 171
  • 2
    After disabling nvidia services, how do we check if the default mechanism is in place and working? – Danijel Jan 24 '23 at 08:06
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)"

  • 1
    Your second point did finally help me after a lot of trial and error. Using the Server driver did the trick for me and installed the necessary NVIDIA systemd services, which weren't installed in the normal driver package for some reason. You may check if they are installed (and enabled) with systemctl status nvidia-suspend nvidia-hibernate nvidia-resume. – Dunkelkoon Oct 04 '21 at 19:00
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

-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.

Error404
  • 7,440