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
3
  • 2
    FYI the bug report for this is at bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-460/….
    – edwinksl
    May 14, 2021 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. Oct 9, 2021 at 7: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 Oct 9, 2021 at 8:03

7 Answers 7

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.

1
  • Do you mean to downgrade the driver version? Downgrading doesn't work for me. Oct 9, 2021 at 8:06
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:

4
  • It doesn't work for me. May 3, 2021 at 11:12
  • @babylearnmaths Can you update your question with which step of reverting driver to version 450 didn't work? Including error message will help. May 4, 2021 at 1:51
  • 460.80 and 465.27 are still bad (and .84 and .31 respectively have changelogs that don't indicate any changes). Incredibly frustrating that this hasn't been fixed after 6 months. Jun 12, 2021 at 14:56
  • This works for me as well. I am using a IdeaPad 5 Pro 14" with a MX450 Sep 20, 2021 at 9:04
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.

1
  • 2
    After disabling nvidia services, how do we check if the default mechanism is in place and working?
    – Danijel
    Jan 24, 2023 at 8: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
  • 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 4, 2021 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

1
  • I also tried Nvidia 510 server driver, it worked as well. Apr 9, 2022 at 5:53
-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.

1
  • 1
    This does not really answer the question. If you have a different question, you can ask it by clicking Ask Question. To get notified when this question gets new answers, you can follow this question. Once you have enough reputation, you can also add a bounty to draw more attention to this question. - From Review
    – David
    Jan 11, 2022 at 15:13

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .