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

Ubuntu 26.04 双屏突然黑屏排查:ThinkPad T570 从 i915、GNOME 到 HDMI→VGA 转换链路的实践

图1:Ubuntu 26.04 主屏正常工作,但 Samsung 副屏已经完全黑屏

作者:

我的 ThinkPad T570 一直连接着一台 Samsung 22 英寸旧显示器作为副屏。

这台显示器只有 VGA 输入,而 ThinkPad T570 本身没有 VGA 接口,因此此前一直采用:

Plaintext
ThinkPad T570 HDMI

HDMI → VGA 转换器

VGA 线

Samsung 22" 显示器

的方式连接。

这套方案此前已经正常使用了一段时间,副屏长期运行在:

Plaintext
1920 × 1080
60 Hz
100% 缩放

2026 年 4 月,我其实已经记录过一次这套双屏的配置过程。

当时遇到的问题是 Windows 已经识别两台显示器,但 VGA 副屏没有画面,最后发现真正原因非常简单:VGA 显示器的连接线并没有正确连接。

因此,这次副屏再次出现黑屏时,我最开始也自然怀疑是不是线材、接口或者转换器又出现了类似问题。

此前的实践可以参考:

ThinkPad T570 双屏此前的配置与排查实践

不过,这次问题明显复杂得多。

一、问题出现:只是移动了一下位置,副屏突然黑屏

当前系统已经是 Ubuntu 26.04。

原本两块屏幕一直正常工作,但我只是稍微移动了一下笔记本电脑和 Samsung 副屏的位置,随后副屏突然彻底黑屏。

笔记本内置屏幕一切正常,而 Samsung 副屏没有任何桌面画面。

图1:Ubuntu 26.04 主屏正常工作,但 Samsung 副屏已经完全黑屏
图1:Ubuntu 26.04 主屏正常工作,但 Samsung 副屏已经完全黑屏

第一反应自然是:

  • HDMI 或 VGA 接口松动;
  • HDMI→VGA 转换器接触异常;
  • Ubuntu 显示配置发生变化;
  • GNOME Wayland 多屏异常;
  • Intel i915 显卡驱动出现问题。

于是开始逐层排查。

二、奇怪的是:Ubuntu 仍然认为副屏正常连接

首先进入:

设置 → 显示器

结果发现 Ubuntu 并没有认为 Samsung 已经断开。

系统依然能够看到:

Plaintext
1 内置显示器
2 Samsung Electric Company 22"

而且仍然处于“加入”模式,也就是扩展桌面模式。

图2:虽然 Samsung 副屏实际已经黑屏,但 Ubuntu 仍然完整识别两台显示器
图2:虽然 Samsung 副屏实际已经黑屏,但 Ubuntu 仍然完整识别两台显示器

这就意味着问题不是最简单的:

Ubuntu 没有检测到第二台显示器。

接下来在副屏黑屏状态下检查 DRM:

Bash
echo "========== 当前 DRM 接口状态 =========="
for f in /sys/class/drm/card*-*/status; do
    [ -f "$f" ] || continue
    printf "%-55s " "$f"
    cat "$f"
done

echo
echo "========== 最近 10 分钟显示相关内核日志 =========="
journalctl -b -k --since "10 minutes ago" --no-pager \
    | grep -Ei 'i915|drm|hdmi|displayport|dp-|edid|connector|hotplug|link|crtc|pipe|fail|error|timeout'

最关键的结果是:

Plaintext
/sys/class/drm/card1-HDMI-A-2/status    connected

副屏明明已经黑屏,但 Linux 内核仍然认为 HDMI 显示设备处于连接状态。

与此同时还出现了:

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

以及:

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

这时我一度开始怀疑 Intel i915 或 GNOME Wayland 的多显示器处理出现了异常。

三、继续检查:connected、enabled、EDID 全部正常

进一步检查 HDMI:

Bash
for f in status enabled modes; do
    echo "--- $f ---"
    cat "/sys/class/drm/card1-HDMI-A-2/$f" 2>&1
done

wc -c /sys/class/drm/card1-HDMI-A-2/edid
sha256sum /sys/class/drm/card1-HDMI-A-2/edid

结果:

Plaintext
status:
connected

enabled:
enabled

EDID 也可以正常读取:

Plaintext
256 /sys/class/drm/card1-HDMI-A-2/edid

系统还能识别:

Plaintext
1920x1080
1680x1050
1600x900
1440x900
1280x720
1024x768
……

桌面环境则是:

Plaintext
XDG_SESSION_TYPE=wayland
XDG_CURRENT_DESKTOP=ubuntu:GNOME

也就是说,从 Linux 的视角来看:

显示器存在、接口连接、输出启用、EDID 可读、分辨率也能识别。

但真实世界中的 Samsung 显示器依然是一块黑屏。

四、尝试软件关闭、重新启用副屏

下一步直接在 GNOME 显示设置中关闭 Samsung 副屏。

图3:在 Ubuntu 显示设置中关闭 Samsung 副屏,并准备应用新的显示配置
图3:在 Ubuntu 显示设置中关闭 Samsung 副屏,并准备应用新的显示配置

应用以后,布局中只剩下笔记本内置屏幕。

图4:关闭 Samsung 副屏以后,GNOME 当前仅启用内置显示器
图4:关闭 Samsung 副屏以后,GNOME 当前仅启用内置显示器

随后再次重新开启 Samsung。

理论上,这相当于让 GNOME 主动重新配置一次显示输出。

但结果仍然没有任何改善。

副屏还是黑屏。

因此,问题已经不像是简单的:

GNOME 显示状态卡住了。

五、Samsung 自检正常,显示面板并没有坏

接下来按下 Samsung 显示器自身的菜单按钮。

结果显示器可以正常点亮,而且出现:

Plaintext
TEST GOOD
图5:Samsung 显示器可以正常完成 TEST GOOD 自检,说明面板、背光和基本显示功能仍然正常
图5:Samsung 显示器可以正常完成 TEST GOOD 自检,说明面板、背光和基本显示功能仍然正常

这个测试非常重要。

因为 OSD 和 TEST GOOD 画面是显示器自己产生的,并不依赖 Ubuntu,也不依赖 HDMI→VGA 转换器。

因此至少可以确认:

  • 显示器可以正常供电;
  • 背光正常;
  • 液晶面板正常;
  • 显示器自身能够生成画面。

但需要注意:

这只能证明显示器本身能够工作,并不能证明它的 VGA 输入电路一定正常。

六、问题开始指向 HDMI→VGA 转换链路

我的实际连接并不是 HDMI 直连 Samsung。

而是:

Plaintext
ThinkPad HDMI

Acer HDMI→VGA 转换器

VGA 线

Samsung
图6:ThinkPad T570 当前使用 Acer HDMI→VGA 转换器连接仅支持 VGA 输入的 Samsung 副屏
图6:ThinkPad T570 当前使用 Acer HDMI→VGA 转换器连接仅支持 VGA 输入的 Samsung 副屏

随后先后尝试了:

  • 重新插拔 ThinkPad 一侧 HDMI;
  • 重新插拔转换器;
  • 重新插拔 VGA;
  • Samsung 完全断电后重新启动;
  • Ubuntu 正常重启;
  • 完整关机几十秒后重新启动。

全部无效。

但排查过程中出现了一个很有意思的现象:

在重新插拔转换器附近接口时,Samsung 偶尔能够短暂出现正常画面。

这意味着视频信号并不是绝对不存在,而更像是:

可以建立,但无法稳定维持。

七、降低分辨率以后,问题发生变化

接下来尝试降低 Samsung 的输出分辨率。

原来的:

Plaintext
1920 × 1080 @ 60Hz

基本一直黑屏。

改为:

Plaintext
1280 × 720 @ 60Hz

副屏居然短暂亮了一次。

但是很快又黑掉。

随后继续降低:

Plaintext
1024 × 768 @ 60Hz

这一次竟然能够显示,而且最开始还能维持一段时间。

图7:降低到 1024×768 后,Samsung 副屏一度恢复 Ubuntu 桌面画面
图7:降低到 1024×768 后,Samsung 副屏一度恢复 Ubuntu 桌面画面

于是得到一个很奇怪的规律:

Plaintext
1920×1080 → 基本黑屏

1280×720 → 短暂亮起,然后黑屏

1024×768 → 一度可以工作,但仍然闪烁

更重要的是,1024×768 并没有真正解决问题。

它只是:

比较容易维持信号。

八、录屏记录:1024×768 仍然存在随机闪烁

为了更直观地记录问题,我又录了一段视频。

即使已经降低到 1024×768,Samsung 也只是“勉强可以使用”,实际运行过程中依然会随机黑屏、闪烁,然后再次恢复。

此处插入视频1:108(1).mp4

视频1:Samsung 副屏即使降低到 1024×768,仍然存在随机黑屏和恢复现象

这个现象让我基本放弃了:

只是 1920×1080 分辨率设置错误

这种解释。

因为如果只是 1080p 参数不兼容,那么切换到一个可以工作的 1024×768 后,理论上应该保持稳定。

但事实并非如此。

九、1920×1080 本身仍然是系统识别出的正常模式

后来重新将 Samsung 设置为 1920×1080。

GNOME 依然能够正常显示:

Plaintext
分辨率:1920 × 1080
刷新率:59.94 Hz
缩放:100%
方向:横向
图8:GNOME 仍然可以为 Samsung 配置 1920×1080、59.94Hz 和 100% 缩放
图8:GNOME 仍然可以为 Samsung 配置 1920×1080、59.94Hz 和 100% 缩放

这点非常重要。

因为以前这台显示器长期正常使用的本来就是 1080p。

所以问题并不是:

这台显示器或者这套方案是否支持 1920×1080。

答案显然是支持。

真正的问题应该是:

原来能够稳定传输 1080p 的链路,现在为什么不能稳定工作了?

十、怀疑与此前的一次异常断电有关

排查过程中,我又想到了一件事情。

我的 ThinkPad T570 现在没有电池,完全依赖 AC 电源工作。

此前曾经不小心拔掉过笔记本电源。

电脑瞬间断电以后,再重新连接 AC,竟然一度无法正常开机。

表现是:

Plaintext
按下开机键

电源灯亮一会儿

自动熄灭

无法开机

最后不得不:

Plaintext
拔掉所有外设

长按开机键

重新连接电源

电脑才恢复正常。

而当前这个 Acer HDMI→VGA 转换器本身又没有单独的供电线。

所以一度也怀疑:

会不会某次异常断电以后,HDMI 输出或者转换器取电状态出现了异常?

于是进一步做了一次 ThinkPad Emergency Reset。

十一、执行 T570 Emergency Reset

ThinkPad T570 底部带有 Emergency-reset hole。

图9:ThinkPad T570 底部结构,排查过程中进一步执行了 Emergency Reset
图9:ThinkPad T570 底部结构,排查过程中进一步执行了 Emergency Reset

操作方式是:

Plaintext
正常关闭 Ubuntu

拔掉 AC 电源

拔掉 HDMI、USB 等外设

使用 Emergency-reset hole 复位

等待

只连接 AC 电源

重新开机

进入 Ubuntu 后再连接副屏

但结果仍然没有改善。

甚至到了第二天,连之前勉强能够工作的:

Plaintext
1024×768

也已经无法稳定显示。

这基本排除了:

只是某个临时电源状态没有复位

这种解释。

十二、检查 GNOME 的 monitors.xml

因为 1024×768 与 1920×1080 时,GNOME 对显示布局的表现也有所不同,所以又开始怀疑显示配置文件。

检查:

Bash
ls -l ~/.config/monitors.xml

sed -n '1,240p' ~/.config/monitors.xml

配置实际上非常简单。

当时保存的是:

Plaintext
内置屏 eDP-1
1920×1080
primary=yes

Samsung HDMI-2
1024×768

而且 Samsung 位于内置屏左侧。

没有发现历史配置重复、主屏冲突或者明显损坏。

十三、使用 gdctl 检查 Mutter 的实时状态

进一步执行:

Bash
gdctl show --verbose

结果显示 Samsung 被正确识别为:

Plaintext
Vendor: SAM
Product: S22D300

它的首选模式仍然是:

Plaintext
1920×1080 @ 60.000

而在测试 1024×768 时,Mutter 甚至明确显示:

Plaintext
1024×768 @ 60.004
is-current ⇒ yes

换句话说:

GNOME/Mutter 已经认为显示模式成功应用,但实际物理显示器仍然没有稳定画面。

到这里,“只是 Ubuntu 显示器配置错误”的可能性已经明显下降。

十四、再次捕获 i915 hotplug 日志

随后实时监控 i915:

Bash
sudo journalctl -kf --no-pager \
  | grep --line-buffered -Ei 'i915|drm|hdmi|hotplug|atomic|connector|crtc|pipe|link|edid|fail|error|timeout'

在继续修改显示模式的过程中,又出现:

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

而且计数还在继续增加。

也就是说,Intel i915 仍然反复在处理显示器 hotplug 相关工作。

结合此前所有现象:

Plaintext
系统始终可以识别 Samsung

EDID 正常

GNOME 可以设置显示模式

Mutter 认为输出已经生效

真实显示器却没有稳定画面

插拔接口偶尔能恢复

降低分辨率曾经稍微稳定

i915 又不断处理 hotplug

故障越来越像:

显示链路本身已经处于不稳定状态。

十五、为什么之前 1080p 一直正常?

这是整个过程中最让我困惑的问题。

如果 HDMI→VGA 天生无法稳定输出 1080p,那这套方案从一开始就不应该正常。

但实际上它已经正常用了几个月。

所以现在更合理的理解是:

Plaintext
以前:

ThinkPad HDMI

HDMI→VGA

VGA

Samsung

信号余量足够

1920×1080 稳定

而现在:

Plaintext
链路某个环节状态发生变化

1080p 无法稳定

720p 只能短暂工作

1024×768 一度勉强工作

最终低分辨率也开始失败

可能涉及:

  • Acer HDMI→VGA 转换器;
  • VGA 线;
  • 转换器的 VGA 输出接口;
  • Samsung VGA 输入电路;
  • ThinkPad HDMI 输出;
  • HDMI hotplug 或供电状态。

由于目前没有备用转换器、VGA 线和 HDMI 显示器,已经很难继续通过现有设备进一步交叉验证。

十六、最终决定:直接换一条视频路径

最开始考虑过再购买一个 HDMI→VGA 转换器。

但这样只能替换转换器本身:

Plaintext
ThinkPad HDMI

新 HDMI→VGA

旧 VGA 线

Samsung

如果仍然黑屏,还无法知道到底是:

转换器、VGA 线、HDMI 输出,还是 Samsung VGA 输入。

所以最后决定换一条完全不同的视频输出路径。

ThinkPad T570 还有支持视频输出的 USB-C/Thunderbolt 3 接口。

因此可以变成:

Plaintext
ThinkPad USB-C

Type-C → VGA 一体线

Samsung VGA

这样一次可以绕过:

Plaintext
ThinkPad 原 HDMI 输出路径
+
Acer HDMI→VGA 转换器
+
现有 VGA 线

只保留:

Plaintext
T570 USB-C

全新的 Type-C→VGA 一体线

Samsung VGA 输入

这不仅是解决方案,也是一次非常干净的交叉验证。

十七、原厂/海外产品价格并不划算

最开始查看 Lenovo 和 Plugable 的 USB-C→VGA 产品。

价格大约从:

Plaintext
16.95 美元
19.95 美元
24.99 美元
40.99 美元

不等。

图10:Lenovo/Plugable USB-C→VGA 产品价格,对于这次故障验证来说成本明显偏高
图10:Lenovo/Plugable USB-C→VGA 产品价格,对于这次故障验证来说成本明显偏高

对于一台仍然只有 VGA 输入的旧 Samsung 副屏来说,仅仅为了排查故障花这么多钱并不划算。

而且这些还是海外站点,购买也不方便。

十八、最终在拼多多购买 Type-C→VGA 一体线

最后在拼多多找到了一根 Type-C→VGA 一体线。

页面显示:

Plaintext
券后价格:33.9 元
图11:最终在拼多多购买 Type-C→VGA 一体线,券后价格 33.9 元
图11:最终在拼多多购买 Type-C→VGA 一体线,券后价格 33.9 元

页面宣传有“4K 60Hz”等参数,不过对于我来说这些并不重要。

Samsung 本身的目标模式只有:

Plaintext
1920×1080 @ 60Hz

真正关心的只有:

这根线能否让 T570 通过 USB-C 稳定输出 1080p 到 Samsung VGA 显示器。

而且选择“一体线”而不是“USB-C→VGA 转接器 + 旧 VGA 线”,还有一个额外好处:

旧 VGA 线也一起被排除。

新方案最终变成:

Plaintext
ThinkPad T570 USB-C

全新 Type-C→VGA 一体线

Samsung S22D300

十九、阶段性结论:系统识别正常,不代表视频链路正常

这次排查最值得记录的,其实不是最终买了一根什么线。

而是一个非常容易误判的现象:

操作系统能够识别显示器,并不代表真正的视频链路一定正常。

这次长时间处于这样一种状态:

Plaintext
Samsung 被正确识别
connected
enabled
EDID 正常
1920×1080 可识别
GNOME 能设置显示模式
Mutter 甚至显示 is-current=yes

但实际屏幕:

Plaintext
黑屏

偶尔亮起

闪烁

再次黑屏

所以排查外接显示器时,至少应该区分:

Plaintext
显示器识别

桌面显示配置

显卡输出

视频接口

转换器

线材

显示器输入电路

面板最终显示

系统能够识别 EDID,只能证明链路中的一部分仍然工作。

并不能证明真实的视频信号已经成功、稳定地到达显示器。

二十、下一步:等待 Type-C→VGA 到货进行最终验证

目前这次故障还不能真正下结论。

尤其不能现在就说:

Acer HDMI→VGA 转换器坏了。

现有证据只能说明:

原 HDMI→VGA 显示链路已经无法稳定工作。

真正的下一步,是等待新购买的 Type-C→VGA 一体线到货。

到时候直接连接:

Plaintext
T570 USB-C

新 Type-C→VGA 一体线

Samsung

并测试:

Plaintext
1920×1080
60 Hz
100% 缩放

如果能够长期稳定工作,那么问题基本可以确定发生在原来的:

Plaintext
HDMI 输出
/
HDMI→VGA 转换器
/
VGA 线

这一侧。

如果全新的 USB-C→VGA 路径仍然黑屏或者闪烁,那么下一阶段调查的重点就会明显转向:

Plaintext
Samsung VGA 输入电路

甚至显示器本身。

目前先到这里。

等新线到货,再继续验证。

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 来减少垃圾评论。了解你的评论数据如何被处理