我的问题是我无法正确暂停计算机。从技术上讲我可以,但当我回来并尝试重新打开它时,它就是不起作用。我的屏幕保持黑色,并闪烁着一条线,就像典型的书写线一样_
。
我的笔记本电脑HP Pavilion 15-BC519NS 英特尔酷睿 i5-9300H/8GB/512GB SSD/GTX 1050/15.6 英寸。
以下是输出lspci
:
00:00.0 Host bridge: Intel Corporation 8th Gen Core 4-core Processor Host Bridge/DRAM Registers [Coffee Lake H] (rev 07)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 07)
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Mobile)
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 07)
00:12.0 Signal processing controller: Intel Corporation Cannon Lake PCH Thermal Controller (rev 10)
00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)
00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)
00:17.0 RAID bus controller: Intel Corporation 82801 Mobile SATA Controller [RAID mode] (rev 10)
00:1d.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #9 (rev f0)
00:1d.5 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #14 (rev f0)
00:1d.6 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #15 (rev f0)
00:1d.7 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #16 (rev f0)
00:1f.0 ISA bridge: Intel Corporation HM470 Chipset LPC/eSPI Controller (rev 10)
00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)
00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH SPI Controller (rev 10)
01:00.0 VGA compatible controller: NVIDIA Corporation GP107M [GeForce GTX 1050 3 GB Max-Q] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GP107GL High Definition Audio Controller (rev ff)
02:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
04:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8822BE 802.11a/b/g/n/ac WiFi adapter
05:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader (rev 01)
我还没有在任何地方看到解决这个问题的方法,所以我希望有人能在这里帮我。提前谢谢!
答案1
我怀疑您的问题与最新的 NVIDIA 更新有关,该更新会安装nvidia-driver-460
。此版本及其之后的一些版本目前存在错误。您可以在此处订阅该错误:https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-460/+bug/1911055
您可以通过将 NVIDIA 驱动程序降级到以前的版本来解决此问题,直到错误得到解决。请按照以下步骤降级到nvidia-driver-450-server
:
打开软件和更新并转到附加驱动程序标签。
选择
nvidia-driver-450-server
(使用来自 nvidia-driver-450-server 的 NVIDIA 服务器驱动程序元包(专有))。如果愿意,您可以尝试其他驱动程序
nvidia-driver-450-server
,并选择最适合您的驱动程序。点击应用更改并等待更改应用完毕。
重新启动系统。
暂停现在应该可以按预期工作了!
答案2
修复暂停恢复问题 - 恢复时黑屏 Ubuntu 20.04LTS,5.13.0,nvidia-drivers 510
两个部分:
早期版本的 nvidia 驱动程序需要支持挂起/恢复/休眠
/etc/systemd/
从 nvidia-driver-470 开始,必须使用以下命令删除这些支持脚本:
sudo systemctl disable nvidia-suspend sudo systemctl disable nvidia-resume sudo systemctl disable nvidia-hibernate
在驱动程序更新过程中,它们不会自动删除,在 470 之前安装了 nvidia 驱动程序的系统在升级后会保留它们。这可能是许多人建议恢复到 460 的原因。
/usr/bin/nvidia-sleep.sh
仍需要通过立即退出来停用。在 bash 标头行后添加一行,以立即从脚本中退出 0(即成功):#!/bin/bash exit 0
通过这两组更改,暂停/恢复现在对我来说可以正常工作。
答案3
答案4
下面引用的是我对这个问题的解释和对重复线程的回答这里。
了解一些背景知识来理解问题和一些建议的(有效)解决方案的冗余。
NVIDIA Linux 驱动程序通过两种不同的机制支持挂起和休眠电源管理操作:
内核驱动回调:默认机制 - 无需明确配置即可启用和使用。内核驱动程序从 Linux 内核接收回调,以暂停、休眠和恢复已注册 Linux PCI 驱动程序的每个 GPU。
/proc/driver/nvidia/suspend
:此机制在使用时不依赖 Linux 内核的回调,而是依赖系统管理工具(例如)systemd
通过接口向 NVIDIA 内核驱动程序发出暂停、休眠和恢复命令/proc/driver/nvidia/suspend
。它仍处于实验阶段,需要明确配置才能使用。这最干净简单的解决方案就是简单地禁用 2(如果已启用)并让默认机制1做工作。
当然,高级用户可以选择使用明确而准确的配置来修复[2]——它更强大,因为这种机制旨在消除内核驱动程序回调机制的限制1. 它支持具有高级 CUDA 功能(例如 UVM)的电源管理,并且能够保存和恢复所有视频内存分配
以下是最干净简单的解决方案(
su -
假定访问):
检查[2]是否启用:
systemctl status nvidia-suspend nvidia-hibernate nvidia-resume
或者,执行以下操作:
journalctl -b | grep suspend
如果使用了 [2],您会在日志中看到它的明确操作,例如:
COMMAND=/bin/systemctl status nvidia-suspend nvidia-hibernate nvidia-resume
好的,既然您知道 [2] 正在使用中,让我们禁用它。:
systemctl disable nvidia-suspend nvidia-hibernate nvidia-resume
您应该会看到一条消息,指出:
Removed /etc/systemd/system/systemd-[suspend|hibernate|resume].service.requires/nvidia-[suspend|hibernate|resume].service
现在,您可以重复步骤 1 或 2,并验证服务确实已禁用:
rm /lib/systemd/system-sleep/nvidia
我见过一些有效但不准确的解决方案,例如[1, 2, 3],
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。