没有不值得去解决的问题,也没有不值得去学习的技术!

Ubuntu ThinkPad T570 挂起后黑屏:最终关闭自动挂起与合盖挂起,避免频繁强制关机

图6:创建独立的 systemd 配置文件,将三种合盖情况全部设置为 ignore

作者:

从 Windows 到 Ubuntu:迁移与配置完全指南

在启动项列表中找到刚创建的 Ubuntu Installer,通过右侧的 “上移” 按钮将其移到第一位。这样重启后电脑会优先从这个启动项引导。

(1) 从 Windows 10 迁移至 Ubuntu – 上篇:安装前的准备工作

如图24 – 选择 Ubuntu 外观,高亮默认

(2) 从 Windows 10 迁移至 Ubuntu – 下篇:Ubuntu 26.04 安装与首次配置

安装完成后,打开 Fcitx5 配置工具(fcitx5-configtool),在“输入法”选项卡中添加 “五笔拼音” 即可正常使用。

(3) Ubuntu 初始化配置(基本设置、软件安装)

图10 – 新分区信息(UUID、卷标、文件系统)

(4) Ubuntu 磁盘规划:将 /home 迁移到第二块 SSD

如图10:点击 安装 按钮,进度条显示“正在准备…”。

(5) Ubuntu 26.04 软件安装与维护最佳实践:以微信为例

图中查找范围为 /home/wangqiang,名称列表里仅有「下载」和「xwechat_files」两个文件夹

(6) 解决 Linux 微信「另存为」对话框只显示两个文件夹的问题

图1 重启后右上角没有输入法图标

(7) Ubuntu 26.04 输入法折腾记:从 Fcitx5 自启失败到五笔拼音稳定使用

下图为实拍照片(图3): (此处为双屏实物照片,展示左外接、右笔记本的布局,两台显示器并排亮起)

(8) Ubuntu 双屏幕配置实战:ThinkPad T570 外接显示器,左屏右本更顺手

中文部分显示为梦源宋体,清晰舒适

(9) 从思源到梦源:在 Ubuntu 26.04 上把宋体“折腾”明白

至此,三个数据库容器均已正常运行。

(10) 配置开发环境:使用 Docker 管理多版本 MySQL 与 Redis

SOLO 模式欢迎界面,我切换到了 IDE

(11) 从百度API推送到AI IDE选型:我如何搞定Trae安装并准备开工

如图15:授权完成后,Gmail 账号成功添加。最终,Thunderbird 账户列表里一共添加了 8 个邮箱。

(12) Ubuntu 26.04 邮件客户端折腾记:从网易邮箱大师到 Thunderbird,一口气添加 8 个邮箱

图1:优化前60标签整机内存占用截图(原始满载19GB+)

(13) Ubuntu 26.04 下 Chrome 高内存占用优化全记录|同60标签,Win10≈7GB,Ubuntu暴涨至20GB排坑实录

📸 浏览器显示 JSON 数据,如图4

(14) Ubuntu 26.04 + Docker 搭建 Go Gin 开发环境(全记录)

在保存对话框中找到 显示选项 - 编码 ,将其从“自动检测”改为 UTF-8。

(15) Ubuntu 打开 Windows 文档提示“无效字符”?我的解决方法

从截图中可以看到,我连续执行了 mv、chmod、nano,最后 ssh aliyun 一气呵成,直接显示欢迎信息和上次登录时间,没有任何密码询问。

(16) 告别密码与断连:阿里云 ECS SSH 免密登录与心跳保活实践

[截图 5:扩展显示“用户已全局禁用此扩展”及右键菜单]

(17) 在 Trae CN 中尝试 Dev Containers:一次不太成功的踩坑记录

Docker 扩展面板的容器操作菜单

(18) 从零到一:在 Trae CN + Docker 中搭建 Go + Gin 开发环境

Flameshot 的功能

(19) 告别微信窗口限制:在 Ubuntu 26.04 使用 Flameshot 绑定全局 Alt+A 截图

微信的内存占用高达 2.01 GB(1.5%);而在只开启一个标签页的情况下,Google Chrome 的内存占用更是达到了 2.96 GB(1.0%)。

(20) Ubuntu 26.04 软件安装与维护最佳实践更新:从 Chrome 内存暴涨排坑到弃用 Flatpak 重度应用

deb 版 Firefox 更实用:能直接访问 Chrome 配置文件,资源占用更小。现在开启 4 个窗口,50 个标签页,内存占用 5 GB 左右

(21) Ubuntu 26.04 下从 Chrome 迁移到 Firefox:我的折腾经历

如图4:将中州韵加入输入法列表

(22) 从 Windows 到 Ubuntu:Rime → wbpy 的输入法选型失败记录

about:config

(23) Ubuntu 26.04 桌面性能优化实战:从卡顿到稳定运行的完整调优记录

图6:创建独立的 systemd 配置文件,将三种合盖情况全部设置为 ignore

(24) Ubuntu ThinkPad T570 挂起后黑屏:最终关闭自动挂起与合盖挂起,避免频繁强制关机

最近,我的 ThinkPad T570 在 Ubuntu 下突然出现了一个比较麻烦的问题:

电脑进入挂起状态以后,重新唤醒时屏幕一直黑着,最终只能长按电源键强制关机。

以前我暂停使用电脑时,经常直接挂起。下一次回来以后轻按电源键,就能继续之前的工作。但在 2026 年 7 月 30 日,这种使用方式连续出现异常。

当天至少有两次是在正常使用过程中遇到挂起后无法恢复显示,后来完成系统更新后,我又主动测试了一次,问题仍然能够复现。

最开始,我想继续排查内核、Intel i915、NVIDIA、PRIME 和显示恢复问题。

但排查一段时间以后,我重新确认了自己的实际需求:

我并不一定需要真正的“挂起”。
我只是希望暂停使用电脑时不用关机,回来以后仍然可以继续 Firefox、VS Code、终端和其他已经打开的工作。

于是最后采用了一个更简单的办法:

暂时彻底绕过挂起:关闭自动挂起,同时关闭合盖挂起,只保留锁屏和自动息屏。

最终实际合盖测试通过。


一、最初的问题:挂起以后屏幕无法恢复

我的电脑是 Lenovo ThinkPad T570。

目前的主要环境是:

Plaintext
Linux 内核:7.0.0-28-generic
PRIME 模式:on-demand
Intel 核显:HD Graphics 620
Intel 驱动:i915
NVIDIA 独显:GeForce 940MX
NVIDIA 驱动:580.173.02

问题发生以后,大致过程是:

Plaintext
正常使用电脑

进入挂起

稍后轻按电源键

屏幕没有亮起

再次轻按几次

仍然黑屏

最后只能长按电源键

强制关机

重新开机

当时比较容易产生一个错觉:

按下电源键以后,电脑根本没有从挂起状态恢复。

但后面的日志分析表明,实际情况并不是这样。

图1:ThinkPad T570 尝试从挂起状态恢复以后,屏幕仍然保持黑屏,但电脑的电源指示灯仍然亮着
图1:ThinkPad T570 尝试从挂起状态恢复以后,屏幕仍然保持黑屏,但电脑的电源指示灯仍然亮着

二、系统其实已经醒了,只是屏幕没有恢复

查看上一轮启动日志以后,可以看到系统正常进入了深度挂起:

Plaintext
PM: suspend entry (deep)

而在尝试唤醒以后,也能看到:

Plaintext
ACPI: PM: Low-level resume complete
ACPI: PM: Waking up from system sleep state S3

随后还有:

Plaintext
System returned from sleep operation 'suspend'.
PM: suspend exit

NVIDIA 的恢复流程也正常执行:

Plaintext
Starting nvidia-resume.service
...
Finished nvidia-resume.service

甚至 Wi-Fi 都重新连接成功,并重新获得了 IP 地址。

所以更准确的情况其实是:

Plaintext
电脑进入挂起

按电源键唤醒

底层电源管理恢复成功

NVIDIA 恢复流程完成

网络重新连接

但是屏幕没有恢复显示

也就是说:

电脑其实已经醒了,只是显示恢复出现了问题。

这也解释了为什么我从外部观察时,会感觉“轻按电源键完全没有反应”。


三、一天内多次出现相同问题

其中一次比较完整的时间线是:

Plaintext
7 月 29 日 22:33
进入深度挂起

7 月 30 日 10:57
尝试唤醒

系统完成恢复

屏幕仍然黑屏

约 11:00
长按电源键强制关机

11:01 左右重新开机

另一次发生在当天中午:

Plaintext
12:33 左右
进入深度挂起

12:56 左右
可能轻按了一次电源键

系统已经恢复

屏幕仍然黑屏

约 13:30
回来以后再次轻按几次电源键

仍然没有显示

长按电源键强制关机

重新开机

这已经不太像一次偶发故障了。


四、日志中还出现了 Intel i915 显示异常

进一步检查以后,还发现 Intel i915 驱动多次出现:

Plaintext
i915 0000:00:02.0: [drm] *ERROR* Atomic update failure on pipe A

以及:

Plaintext
workqueue: i915_hpd_poll_init_work [i915]
hogged CPU for >10000us

另外,在进入挂起之前,GNOME 还出现过:

Plaintext
Cursor update failed: drmModeAtomicCommit: 无效的参数

而且类似情况并不是只出现了一次。

所以目前至少可以确认:

故障重点更偏向于挂起之后的图形显示恢复,而不是电源键本身无法唤醒电脑。

但我最终没有继续深挖到底是 Linux 内核、Intel i915、NVIDIA,还是混合显卡显示链路中的哪一层导致黑屏。

因为后面我发现,其实没有必要为了这个问题继续大幅修改系统。


五、先进行了一次正常系统更新

在考虑修改内核和显卡配置之前,我先执行了一次正常更新:

Bash
sudo apt update
sudo apt upgrade

当时系统提示有 75 个软件包可以升级:

Plaintext
升级:75
安装:2
卸载:0

其中包括一些与桌面、显示和固件有关的组件,例如:

Plaintext
gnome-shell
gdm3
gnome-session
ubuntu-session
linux-firmware-intel-graphics
linux-firmware-nvidia-graphics
fwupd

这次更新没有更换当前内核,也没有更换 NVIDIA 驱动版本。

完成更新并重启以后,再次确认:

Bash
echo "当前内核:$(uname -r)"
echo "PRIME 模式:$(prime-select query)"
nvidia-smi | head -n 10

结果仍然是:

Plaintext
当前内核:7.0.0-28-generic
PRIME 模式:on-demand
NVIDIA Driver Version: 580.173.02

随后,我再次通过 Ubuntu 系统菜单执行“挂起”。

图2:完成系统更新以后,再次通过 Ubuntu 系统菜单执行“挂起”进行验证
图2:完成系统更新以后,再次通过 Ubuntu 系统菜单执行“挂起”进行验证

结果:

依然失败。

屏幕再次黑屏,最终还是只能强制关机。

所以至少可以确认:

这次普通的软件包更新并没有解决挂起后黑屏的问题。


六、重新确认需求:其实我不一定需要挂起

排查到这里以后,我开始重新考虑:

我到底为什么需要挂起?

答案其实很简单。

我平时真正想实现的是:

Plaintext
暂停使用电脑

不用关闭 Firefox、VS Code 和终端

不用关机

过一会儿甚至第二天回来

继续原来的工作

至于电脑在这段时间内:

Plaintext
到底是不是进入 Suspend

其实对我并不重要。

而且我的这台 T570 目前已经没有电池,一直连接电源使用。

所以:

电脑继续正常运行,只关闭屏幕,对我来说完全可以接受。

这样还可以直接绕过目前存在问题的:

Plaintext
挂起

恢复

显示恢复失败

黑屏

这条路径。

于是,我决定暂时不再修改内核、不切换 PRIME 模式,也不调整 NVIDIA 驱动,而是彻底关闭挂起功能。


七、关闭自动挂起

首先进入:

设置 → 电源 → 节电

我原来的设置中:

Plaintext
自动息屏:开启
延时:5 分钟

自动挂起:
使用电池时:开启,15 分钟
插入电源时:关闭
图3:修改前的 Ubuntu 电源设置,使用电池时仍然会在空闲 15 分钟以后自动挂起
图3:修改前的 Ubuntu 电源设置,使用电池时仍然会在空闲 15 分钟以后自动挂起

因为我的电脑已经没有电池,所以实际上:

Plaintext
插入电源时:关闭

才是目前真正起作用的设置。

不过为了保险起见,我还是把:

Plaintext
使用电池时

也一起关闭。

最终变成:

Plaintext
自动息屏:开启,5 分钟

自动挂起:
使用电池时:关闭
插入电源时:关闭
图4:最终关闭电池和接通电源两种状态下的自动挂起,同时继续保留 5 分钟自动息屏
图4:最终关闭电池和接通电源两种状态下的自动挂起,同时继续保留 5 分钟自动息屏

这里需要区分两个概念:

Plaintext
自动息屏

自动挂起

我仍然保留 5 分钟自动息屏。

也就是说:

Plaintext
离开电脑

5 分钟没有操作

屏幕关闭

电脑继续运行

不会因为空闲时间过长进入挂起

这已经能够满足大部分暂时离开电脑的场景。


八、关闭自动挂起还不够,合盖仍然是另一个入口

接下来还有一个问题:

合上笔记本屏幕以后怎么办?

关闭“自动挂起”,只解决了:

Plaintext
长时间没有操作

导致的挂起。

但:

Plaintext
合上笔记本盖子

是另一个独立的动作。

而我真正希望实现的是:

Plaintext
正在工作

合上 T570 屏幕

电脑继续运行

过一会儿重新掀开

直接继续工作

所以还需要单独处理合盖行为。


九、GNOME 优化中已经找不到合盖选项

我的电脑已经安装 GNOME“优化”。

最开始,我也尝试在这里寻找类似:

Plaintext
合上笔记本盖子时挂起

的开关。

但当前版本的“优化”界面中已经看不到这一项。

图5:当前 GNOME“优化”界面中没有看到控制合盖挂起的选项
图5:当前 GNOME“优化”界面中没有看到控制合盖挂起的选项

所以最后选择直接通过 systemd 配置合盖行为。


十、通过 systemd 禁止合盖挂起

执行:

Bash
sudo mkdir -p /etc/systemd/logind.conf.d

sudo tee /etc/systemd/logind.conf.d/99-lid-no-suspend.conf >/dev/null <<'EOF'
[Login]
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore
EOF

echo "========== 合盖配置 =========="
cat /etc/systemd/logind.conf.d/99-lid-no-suspend.conf

输出:

Plaintext
========== 合盖配置 ==========
[Login]
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore
图6:创建独立的 systemd 配置文件,将三种合盖情况全部设置为 ignore
图6:创建独立的 systemd 配置文件,将三种合盖情况全部设置为 ignore

其中:

Plaintext
HandleLidSwitch=ignore

表示普通合盖不执行挂起。

Plaintext
HandleLidSwitchExternalPower=ignore

表示接通电源时合盖也不执行挂起。

Plaintext
HandleLidSwitchDocked=ignore

则同样将 Docked 状态下的合盖动作设置为忽略。

对于我的实际情况,最重要的是:

Plaintext
HandleLidSwitchExternalPower=ignore

因为这台 T570 目前一直连接电源使用。


十一、第一次命令行重启还被阻止了

配置完成以后,我原本直接执行:

Bash
sudo reboot

结果却得到:

Plaintext
Call to Reboot failed: Operation denied due to active block inhibitor

也就是说,当时系统中存在一个正在阻止直接重启的会话或程序。

我没有使用强制参数绕过,而是直接通过 Ubuntu 图形界面正常执行:

Plaintext
重新启动

这样可以让桌面环境先正常处理当前会话,再完成重启。


十二、重启以后确认合盖配置是否真正生效

重新进入系统以后,执行:

Bash
echo "========== 合盖处理配置 =========="
systemd-analyze cat-config systemd/logind.conf \
  | grep -E 'HandleLidSwitch'

结果:

Plaintext
#HandleLidSwitch=suspend
#HandleLidSwitchExternalPower=suspend
#HandleLidSwitchDocked=ignore
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore
图7:重启以后确认三个自定义合盖设置已经被 systemd 正确读取
图7:重启以后确认三个自定义合盖设置已经被 systemd 正确读取

这里需要特别注意前后两组配置的区别。

前面的:

Plaintext
#HandleLidSwitch=suspend
#HandleLidSwitchExternalPower=suspend
#HandleLidSwitchDocked=ignore

前面都有:

Plaintext
#

这些只是默认配置中的注释,并没有直接生效。

真正需要关注的是最后:

Plaintext
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore

这说明刚才创建的:

Plaintext
/etc/systemd/logind.conf.d/99-lid-no-suspend.conf

已经被系统正确读取。


十三、最终进行实际合盖测试

配置和重启都完成以后,我没有再测试那个已经连续失败多次的“挂起”。

而是直接测试真正想要的使用场景:

Plaintext
正常使用电脑

合上 T570 屏幕

等待约 30 秒

重新掀开屏幕

最终结果:

测试通过。

电脑没有进入挂起。

重新掀开屏幕以后,能够继续之前的工作。

也就是说,现在已经实现:

Plaintext
正在使用电脑

暂时离开

锁屏 / 合盖

屏幕关闭

电脑本身继续运行

过一段时间回来

重新打开屏幕

继续工作

这正好就是我真正需要的效果。


十四、现在我的最终配置

目前,我保留:

Plaintext
自动息屏:开启
时间:5 分钟

关闭:

Plaintext
自动挂起:
使用电池时:关闭
插入电源时:关闭

同时配置:

Plaintext
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore

所以现在有两种日常使用方式。

短时间离开时:

Plaintext
锁屏

5 分钟后自动息屏

电脑继续运行

回来解锁

长一点时间不使用时,也可以:

Plaintext
合上盖子

电脑继续运行

重新掀开

继续原来的工作

不需要频繁关机。

也不需要再冒挂起以后黑屏、最终被迫强制关机的风险。


十五、为什么最终没有退内核或者切换显卡模式

排查期间,我还发现电脑中保留了:

Plaintext
7.0.0-27-generic
7.0.0-28-generic

并且之前还考虑过尝试:

Plaintext
回退到 7.0.0-27

或者:

Plaintext
将 PRIME 从 on-demand 切换为 Intel

还可以继续测试:

Plaintext
s2idle

以及进一步研究:

Plaintext
i915
DRM
NVIDIA
GNOME
ACPI

之间到底是哪一层导致显示恢复失败。

但这些操作都意味着继续扩大排查范围。

而我的实际目标只是:

暂停使用电脑以后,不用重新关机、开机。

现在已经通过一个更加简单的方案实现了这个目标。

所以我最终决定:

暂时停止继续修改内核、显卡和启动参数。

以后系统更新以后,可以偶尔再测试一次真正的挂起。

如果某一天发现:

Plaintext
挂起

轻按电源键

屏幕正常恢复

再考虑重新开启挂起功能。


十六、这个方案也有代价:合盖后电脑没有休眠

需要特别说明:

现在的:

Plaintext
合盖

已经不再等于:

Plaintext
挂起

合上屏幕以后,电脑仍然处于正常运行状态。

也就是说:

Plaintext
CPU 仍然运行
内存仍然保持工作
Wi-Fi 仍然连接
后台任务仍然执行
终端程序仍然可能继续运行

所以耗电肯定比真正的挂起更高。

不过我的 T570 已经没有电池,一直连接电源,而且主要放在桌面上使用,因此这个代价目前可以接受。

反而还有一个好处:

后台正在执行的任务不会因为挂起而停止。

但需要注意:

合盖以后不要把仍在运行的电脑直接塞进电脑包或者其他密闭空间。

因为电脑实际上没有休眠,仍然会产生热量。


十七、以后如何恢复默认合盖挂起

这次方案并没有修改原始的 systemd 配置文件,而是在:

Plaintext
/etc/systemd/logind.conf.d/

中新建了:

Plaintext
99-lid-no-suspend.conf

所以恢复也很简单。

以后挂起问题解决后,可以执行:

Bash
sudo rm /etc/systemd/logind.conf.d/99-lid-no-suspend.conf

然后正常重新启动电脑。

之后再根据需要,在:

设置 → 电源

中重新打开自动挂起。

这样就可以恢复原来的使用方式。


十八、最终结论

这次问题最开始看起来是:

ThinkPad T570 挂起以后无法唤醒。

但结合系统日志,实际更接近:

Plaintext
进入挂起正常

电源键成功触发恢复

底层恢复流程完成

NVIDIA 恢复完成

网络恢复

显示没有正常恢复

屏幕一直黑着

期间也确实观察到了:

Plaintext
i915
drmModeAtomicCommit
Atomic update failure

等显示相关异常。

不过普通系统更新以后,问题仍然能够复现。

最终,我没有继续为了“必须恢复挂起功能”而折腾内核和显卡。

因为重新确认需求以后发现:

我真正需要的是离开电脑以后不用关机,回来还能继续工作,而不是一定要让电脑进入挂起。

于是最终方案变成:

Plaintext
关闭自动挂起
+
关闭合盖挂起
+
保留自动息屏

然后进行了实际测试:

Plaintext
合盖

等待约 30 秒

重新掀开

正常继续工作

测试通过。

至少现阶段,这已经解决了我最实际的问题:

不用再因为暂停使用电脑,而频繁遭遇黑屏后长按电源键强制关机。

Ubuntu 26.04 桌面性能优化实战:从卡顿到稳定运行的完整调优记录

Linux 服务器运维、部署与线上故障排查

如果你的网站或后端服务部署在 Linux 服务器上,遇到访问异常、Nginx 配置问题、MySQL / Redis 异常、Docker 服务不可用、磁盘占满、CPU / 内存过高等问题,可以联系我做一次远程排查。

适合以下场景:
✅ 网站打不开或访问不稳定
✅ Nginx / PHP-FPM 配置异常
✅ MySQL / Redis 性能或连接问题
✅ Docker 服务部署与维护
✅ 服务器迁移与环境配置
✅ CPU / 内存 / 磁盘异常排查

服务内容:
✅ Linux 环境检查
✅ 网站部署与迁移
✅ Nginx / PHP-FPM / MySQL / Redis 排查
✅ Docker 配置与维护
✅ 服务器性能分析
✅ 长期远程运维支持

如需咨询,请联系我,并注明:Linux 运维咨询

联系方式:
Telegram:@shuijingwan
微信:13980074657
邮箱:shuijingwanwq@gmail.com

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理