Ubuntu 20.04 LTS 暂停后无法恢复

Ubuntu 20.04 LTS 暂停后无法恢复

在 Ubuntu 20.04 LTS(安装了 UEFI 模式,NVIDIA GF GTX 1050)上,我无法在暂停后恢复计算机,因此我必须直接关闭它并重新启动。这是我的/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"

当我尝试恢复设备时屏幕显示:

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

答案1

我的联想 Legion 也出现了同样的问题。我设法让它工作了:

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

该包 nvidia-driver-450将代替安装 nvidia-driver-460

答案2

这是一个已知的漏洞

解决方案是恢复到 nVidia 版本 450。

您还应该在错误报告中注册并注明“它影响到我”,然后订阅有关错误更新的电子邮件。

要安装早期版本的 nVidia 驱动程序,请参见:

答案3

了解一些背景知识来理解问题和一些建议的(有效)解决方案的冗余。

NVIDIA Linux 驱动程序通过两种不同的机制支持挂起和休眠电源管理操作:

  1. 内核驱动回调:默认机制 - 无需明确配置即可启用和使用。内核驱动程序从 Linux 内核接收回调,以暂停、休眠和恢复已注册 Linux PCI 驱动程序的每个 GPU。

  2. /proc/driver/nvidia/suspend:此机制在使用时不依赖 Linux 内核的回调,而是依赖系统管理工具(例如)systemd通过接口向 NVIDIA 内核驱动程序发出暂停、休眠和恢复命令/proc/driver/nvidia/suspend。它仍处于实验阶段,需要明确配置才能使用。

最干净简单的解决方案就是简单地禁用 2(如果已启用)并让默认机制1做工作

当然,高级用户可以选择使用明确而准确的配置来修复[2]——它更强大,因为这种机制旨在消除内核驱动程序回调机制的限制1. 它支持具有高级 CUDA 功能(例如 UVM)的电源管理,并且能够保存和恢复所有视频内存分配

以下是最干净简单的解决方案su -假定访问):

  1. 检查[2]是否启用:

    systemctl status nvidia-suspend nvidia-hibernate nvidia-resume
    

    在此处输入图片描述

  2. 或者,执行以下操作:

    journalctl -b | grep suspend
    

    如果使用了 [2],您会在日志中看到它的明确操作,例如:

    COMMAND=/bin/systemctl status nvidia-suspend nvidia-hibernate nvidia-resume
    
  3. 好的,既然您知道 [2] 正在使用中,让我们禁用它。:

    systemctl disable nvidia-suspend nvidia-hibernate nvidia-resume
    

    您应该会看到一条消息,指出:

    Removed /etc/systemd/system/systemd-[suspend|hibernate|resume].service.requires/nvidia-[suspend|hibernate|resume].service
    
  4. 现在,您可以重复步骤 1 或 2,并验证服务确实已禁用

    rm /lib/systemd/system-sleep/nvidia
    

我见过一些有效但不准确的解决方案,例如[123],sudo rm /etc/systemd/system/systemd-suspend.service.requires/nvidia-suspend.service建议手动操作。你不应该这样做。

其他一些有用的诊断命令:

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

另外Ctrl+ Alt+F7后跟 Ctrl+ Alt+ F1

答案4

我使用 ubuntu 20.04、内核 5.11.0 和 Nvidia 驱动程序 470.74 时也遇到了同样的问题:暂停后尝试恢复时出现黑屏。如上所述这里使用命令行安装而不是驱动程序安装 GUI完成工作。服务器版本的驱动程序对我来说有缺点,因为它不管理显示器的颜色配置文件(这对于服务器来说是有意义的)。

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

此安装驱动程序版本 460.91 在我的配置下运行良好。版本 470.74 的命令行安装有问题。

相关内容