因此,当我挂起我的笔记本电脑,然后稍后唤醒它时,我的笔记本电脑确实会打开,我能够例如使用 kepboard 调高或调低音量并通过音频确认,但我的屏幕仍然黑着,直到我重新启动笔记本电脑后才显示任何内容。
答案1
这又是 nouveau 驱动程序的问题。这解决了我的问题。编辑文件/etc/default/grub
(使用 Vi 编辑器 - 有些用户在 Vi 中编辑后无法保存,不得不使用备用“Ex”编辑模式,该模式用下面的命令替换保存和退出命令sudo edit
,然后Alt+:w和)。:x
$ sudoedit /etc/default/grub
添加 nouveau.modeset=0
以下行GRUB_CMDLINE_LINUX
:
GRUB_CMDLINE_LINUX="nouveau.modeset=0"
然后按下CtrlO保存Enter文件并CtrlX离开编辑器。
跑步
$ sudo update-grub
现在重新启动。
答案2
这似乎是显卡驱动程序问题。
尝试Ctrl+ Alt+F3然后Ctrl+ Alt+ F2(可能是F7)这可能会打开显示器。
但这只是暂时的解决方案。
您可能需要持久的解决方案,然后您可以尝试升级或更改您的图形驱动程序,或者尝试@cascagrossa 的 grub 设置解决方案。
答案3
Ubuntu 21.10/22.04 NVIDIA 470/510nv_restore_user_channels
错误
当我在 Lenovo ThinkPad P51 NVIDIA Quadro M1200 上升级到 Ubuntu 21.10 后,这个问题就开始出现了,根据内核跟踪,我发现这是一个确切的错误:https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-510/+bug/1946303我的重复调查:https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-510/+bug/1953674
为了轻松重现问题,我必须断开笔记本电脑的电源线,只使用电池。否则,问题只会偶尔发生,而且更常见的情况是挂起几个小时后。
解决方法:
选项 1:错误报告链接到https://forums.developer.nvidia.com/t/fixed-suspend-resume-issues-with-the-driver-version-470/187150/3来自英雄用户 hummebee 的解决方法:
sudo systemctl stop nvidia-suspend.service sudo systemctl stop nvidia-hibernate.service sudo systemctl stop nvidia-resume.service sudo systemctl disable nvidia-suspend.service sudo systemctl disable nvidia-hibernate.service sudo systemctl disable nvidia-resume.service sudo mv /lib/systemd/system-sleep/nvidia ~/nvidia.bak
然后重新启动。
如果你核对它,其内容
nvidia.bak
如下:#!/bin/sh case "$1" in post) /usr/bin/nvidia-sleep.sh "resume" ;; esac
该帖子给出了其根本原因:
470 驱动程序迁移到 systemd 方法,而以前的版本依赖于内核驱动程序回调。显然这在某些设置和内核上存在问题。
选项 2:放弃加速并清除 NVIDIA 中的所有内容:卸载所有 nvidia 软件包(
dpkg -l | grep -i nvidia
、sudo apt uninstall
),并清除其配置(sudo apt purge ...
)。配置清除是根本,因为如选项 1) 所示,配置是问题的关键根源。请注意,即使像 NVIDIA 的 CUDA/OpenCL 包这样的非图形化的东西仍然会破坏一些东西,特别是在删除图形后我无法暂停,但保留它们,相关:Ubuntu 18.04.2 立即从挂起状态唤醒
选项 3:如果您不关心 CUDA,则放弃 Nvidia 并购买 AMD GPU。我为什么要买一台带有独立 GPU 的笔记本电脑?我在 5 年内玩过 10 次 CUDA。如果您偶尔使用 CUDA,只需在 AWS 上租用 Nvidia GPU 即可。
很容易知道您是否遇到了同样的错误,只需在 dmesg 上查找以下堆栈跟踪即可。
因为您可能会关闭计算机并重新启动,所以您必须按照上一次启动的 dmesg 中查找它们Ubuntu 16.04+ 重启后如何查找以前的启动日志?:
journalctl -b-1
这些痕迹是:
WARNING: CPU: 0 PID: 18016 at /var/lib/dkms/nvidia/510.47.03/build/nvidia/nv.c:3935 nv_restore_user_channels+0xce/0xe0 [nvidia]
Call Trace:
<TASK>
nv_set_system_power_state+0x22b/0x3e0 [nvidia]
nv_procfs_write_suspend+0xe9/0x140 [nvidia]
proc_reg_write+0x5a/0x90
? __cond_resched+0x1a/0x50
vfs_write+0xc3/0x250
ksys_write+0x67/0xe0
__x64_sys_write+0x19/0x20
do_syscall_64+0x61/0xb0
? exit_to_user_mode_prepare+0x37/0xb0
? syscall_exit_to_user_mode+0x27/0x50
? __x64_sys_newfstatat+0x1c/0x20
? do_syscall_64+0x6e/0xb0
? syscall_exit_to_user_mode+0x27/0x50
? do_syscall_64+0x6e/0xb0
? asm_exc_page_fault+0x8/0x30
entry_SYSCALL_64_after_hwframe+0x44/0xae
WARNING: CPU: 0 PID: 18016 at /var/lib/dkms/nvidia/510.47.03/build/nvidia/nv.c:4152 nv_set_system_power_state+0x2d0/0x3e0 [nvidia]
nv_procfs_write_suspend+0xe9/0x140 [nvidia]
proc_reg_write+0x5a/0x90
? __cond_resched+0x1a/0x50
vfs_write+0xc3/0x250
ksys_write+0x67/0xe0
__x64_sys_write+0x19/0x20
do_syscall_64+0x61/0xb0
? exit_to_user_mode_prepare+0x37/0xb0
? syscall_exit_to_user_mode+0x27/0x50
? __x64_sys_newfstatat+0x1c/0x20
? do_syscall_64+0x6e/0xb0
? syscall_exit_to_user_mode+0x27/0x50
? do_syscall_64+0x6e/0xb0
? asm_exc_page_fault+0x8/0x30
entry_SYSCALL_64_after_hwframe+0x44/0xae
我还看到以下 ACPI 错误:
ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.LPCB.EC.HKEY.DEVT.PEGS], AE_NOT_FOUND (20210331/psargs-330)
No Local Variables are initialized for Method [DEVT]
Initialized Arguments for Method [DEVT]: (1 arguments defined for method invocation)
Arg0: 00000000fe968048 <Obj> Integer 00000000000000D3
ACPI Error: Aborting method \_SB.PCI0.LPCB.EC.HKEY.DEVT due to previous error (AE_NOT_FOUND) (20210331/psparse-529)
有关的:
- Ubuntu 21.10 恢复时出现空白屏幕
- 暂停不起作用:Ubuntu 20.04(根本不起作用)/ 21.10(在电池模式下不起作用)
- 在配备 NVIDIA 的 Ubuntu 20.04 上,暂停功能无法正常工作(无法唤醒)
- Ubuntu 21.04 无法从睡眠状态唤醒
- 如何在 Ubuntu(21.10 - impish 版本)上暂停工作?
- https://superuser.com/questions/1699286/ubuntu-21-10-suspension-problems
- https://www.youtube.com/watch?v=_36yNWw_07g
- https://itsfoss.community/t/ubuntu-21-10-not-reawakening-from-sleep/7782
答案4
如果在 Ubuntu 22.04.2 或任何使用 Wayland 的 Ubuntu 操作系统上
请参阅我的回答:Wayland 窗口管理器导致我的电脑停留在黑屏/空白屏幕且无法唤醒。我在此详细列出了 3 个修复方法,因此请先查看它们。
我也已经开始在我的个人网站上记录这些类型的问题和修复,这样我就可以跟踪它们,因为每次我升级到最新版本的 Ubuntu 时我自己都需要它们:修复 Linux Ubuntu 中视频驱动程序(及相关)问题的常用方法。
最后的手段:在硬重启之前,让内核中断软重启过程
请记住:在按住电源按钮进行硬重启之前,您可以随时按照以下有趣的顺序进行软重启:
按住Ctrl+ Alt+ ,然后在按住前 3 个键的PrScr同时逐个按下以下键:R,E,I,S,U。B
请注意,在某些(许多?)笔记本电脑/键盘上,该PrScr按钮可能需要您的功能键才能激活它,因此您可能必须在输入 REISUB 重启键序列时Fn按住Ctrl+ Alt+ PrScr+ 。Fn
我不记得我在哪里学到了这一点,但我几年前在 Ask Ubuntu 或 SuperUser 上从别人那里读到过。最后一个键“B”代表“B'oot”。因此,当您按下该键时,您的计算机将重新启动。
遇到任何 Linux 问题时,请记住这一点。仅当此软重启序列首先失败时才进行硬重启。
最后几点想法
- 如果您插入了 Yubikey,请将其拔下!它会将自己枚举为您的计算机的 USB 键盘,并且可能会出现“卡住的按键”或以其他方式干扰计算机的正常运行。我制作了一个名为“Computa Pranksta”的 USB 键盘设备,有时也会遇到类似的问题。
- 你可能遇到了硬件问题,因为我曾经在我的电脑上。要测试这一点,请启动 BIOS/UEFI 启动菜单并选择运行完整的硬件诊断测试套件(假设您的计算机出厂时有这样的选项)。它可能会发现坏的 RAM、坏的主板或其他问题。
- 此回答来自@Vijay Prema看起来很有希望,但不幸的是我没有遇到问题的计算机上的 BIOS 密码,所以我无法更改 BIOS 设置来查找。