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

ThinkPad T570 在 Ubuntu 下 Type-C 转 VGA 无法识别副屏:从 BIOS、UCSI 到 Thunderbolt 的完整排查记录

图1:ThinkPad T570 BIOS 中的 Thunderbolt 3 配置。Wake by Thunderbolt 3 已启用,Security Level 为 User Authorization。

作者:

最近一段时间,我一直在处理 ThinkPad T570 外接副屏异常的问题。

原来的副屏是一台比较老的显示器,主要使用 VGA 接口。之前我的连接方式是 ThinkPad T570 的 HDMI 接口经过 HDMI 转 VGA 转换器,再连接副屏。

前几天副屏开始出现黑屏、无法正常恢复等问题。为了减少对原来 HDMI 转 VGA 转换器的依赖,我又购买了一根 Type-C 转 VGA 线,希望直接使用 T570 的 USB-C 接口连接副屏。

2026 年 7 月 30 日,新线到手。

原以为只是换一根线,接上以后就能够继续使用双屏。结果却发现 Ubuntu 完全没有识别到副屏。

这次排查从最开始的显示器识别,一路深入到了 Linux DRM、USB Type-C、UCSI、BIOS 和 Thunderbolt Controller。虽然最后没有恢复 Type-C 视频输出,但基本确认这已经不是一个普通的 Ubuntu 双屏配置问题。

一、新 Type-C 转 VGA 接上以后,Ubuntu 完全没有识别到副屏

首先执行:

Bash
xrandr --query

结果只看到了笔记本自身的 eDP-1 内屏,分辨率为 1920×1080,没有看到已经连接的副显示器。

由于当前 Ubuntu 使用的是 Wayland,xrandr 看到的信息并不一定能够完整代表底层物理显示接口,因此继续直接检查 Linux DRM 层:

Bash
echo "$XDG_SESSION_TYPE"

for f in /sys/class/drm/card*-*/status; do
    [ -f "$f" ] || continue
    printf "%-45s " "$f"
    cat "$f"
done

结果确认当前会话确实是 Wayland,同时内屏 eDP-1 为 connected,而 DP-1、DP-2、HDMI-A-1 和 HDMI-A-2 全部为 disconnected。

这一步很重要,因为它说明问题并不是“Ubuntu 已经识别到了副屏,只是没有启用扩展桌面”。

实际上,Linux DRM 层根本没有检测到任何已经连接的外接显示器。

二、继续检查 USB-C:端口存在,但对端设备没有出现

随后检查 Linux 的 Type-C 子系统:

Bash
ls -la /sys/class/typec/

系统中能够看到 port0,说明 Ubuntu 已经识别到了 T570 的 USB-C 端口本身。

但是,即使 Type-C 转 VGA 已经插上,系统始终没有出现 port0-partner。

Linux Type-C 子系统在检测到连接的对端设备以后,会创建对应的 partner 对象。因此,这个现象意味着问题发生得比“显示器怎么扩展”更早:Type-C 连接本身就没有被系统完整建立。

这也不是因为 T570 的 USB-C 接口本来不能输出视频。Lenovo 官方资料明确说明,ThinkPad T570 的 USB-C 接口兼容 Thunderbolt 3,并支持供电、数据传输和视频输出。(联想支持)

三、尝试使用 Type-C 耳机验证接口

为了进一步判断 USB-C 接口是不是完全失效,我还找了一副 Type-C 耳机进行测试。

插入耳机以后,lsusb 没有出现新的 USB 音频设备,PipeWire 也没有出现新的音频输出设备。

继续查看 Type-C 对象时,仍然只有 port0,没有 port0-partner。

不过,这个测试不能作为决定性证据,因为部分 Type-C 耳机可能采用模拟音频模式,而且电脑的 USB-C 接口未必支持这种模式。

所以我没有根据耳机测试直接判断 USB-C 接口损坏,而是继续检查系统的 Type-C 驱动层。

四、UCSI 和 Type-C 驱动实际上正常

检查 USBC000:00 使用的驱动以后,可以确认它已经正确绑定到了 ucsi_acpi。

同时,ucsi_acpi、typec_ucsi、typec、thunderbolt 和 intel_wmi_thunderbolt 等相关模块都已经加载。

也就是说,目前并不是 Ubuntu 连 USB-C/UCSI 驱动都没有加载。

进一步查看启动日志,也没有发现明显的 UCSI 初始化失败。系统知道机器存在 USB-C 端口,但插入 Type-C 转 VGA 后,仍然没有产生正常的 partner 或 DisplayPort Alt Mode 连接状态。

到这里,问题已经逐渐从:

“Ubuntu 为什么不显示第二块屏幕?”

变成了:

“为什么 Type-C 转 VGA 插入以后,USB-C 连接本身都没有正常建立?”

五、排查过程中发现 BIOS 还停留在 2017 年

继续检查机器固件时,我发现这台 T570 的 BIOS 版本还是 1.23,发布日期为 2017 年 7 月 6 日。

这台机器已经使用了很多年,但 BIOS 基本一直没有更新。

随后执行:

Bash
fwupdmgr get-updates

LVFS 能够识别我的 ThinkPad T570,并且为 System Firmware 提供 1.54 更新。

更值得注意的是,在 LVFS 提供的历史更新说明中,还能够看到针对 Thunderbolt 设备识别问题的修复记录。

考虑到我当前排查的恰好就是 USB-C / Thunderbolt 相关问题,因此决定先把 BIOS 更新到较新的版本。

六、通过 fwupd 将 BIOS 从 1.23 升级到 1.54

我使用 fwupd 直接更新 T570 的 System Firmware:

Bash
sudo fwupdmgr update a4b2dfcb17ef7a2525210f83e29447d55681b12b

第一次尝试时,在下载固件阶段出现了 GnuTLS handshake failed。

由于当时还没有进入真正的 BIOS 刷写阶段,因此没有造成任何影响。重新执行一次以后,固件成功下载并安装到了待更新区域。

随后系统提示需要重启完成更新。

fwupdmgr 尝试自动重启时,又因为 systemd inhibitor 被阻止,因此最后使用正常的系统重启:

Bash
sudo reboot

重启过程中,电脑进入了 Lenovo 的固件升级流程。

最终升级成功。

再次进入 Ubuntu 检查以后,BIOS 已经从原来的 1.23 升级到了 1.54,发布日期也变成了 2023 年 7 月 14 日。

这次升级本身算是一个额外收获。即使暂时不考虑副屏问题,一台还停留在 2017 年 BIOS 的旧电脑,也确实已经有更新的必要。

不过遗憾的是,BIOS 更新完成以后重新连接 Type-C 转 VGA,副屏仍然没有被识别。

七、检查 BIOS 中的 Thunderbolt 设置

既然升级 BIOS 后问题依旧存在,我重新进入 ThinkPad Setup,检查 Config 下的 Thunderbolt 3 设置。

图1:ThinkPad T570 BIOS 中的 Thunderbolt 3 配置。Wake by Thunderbolt 3 已启用,Security Level 为 User Authorization。
图1:ThinkPad T570 BIOS 中的 Thunderbolt 3 配置。Wake by Thunderbolt 3 已启用,Security Level 为 User Authorization。

当前可以看到 Wake by Thunderbolt 3 为 Enabled,Security Level 为 User Authorization。

Support in Pre Boot Environment 下的 Thunderbolt device 和 USB device 都是 Disabled。

不过这两个设置控制的是操作系统启动之前是否支持相应设备,并不能很好地解释为什么进入 Ubuntu 以后热插 Type-C 转 VGA,同样完全没有连接事件。

因此,我没有为了测试而随意修改这些 Thunderbolt 安全设置。

八、Display 和 USB 设置也没有发现明显异常

随后又检查了 Config → Display。

图2:默认情况下,Boot Display Device 为 ThinkPad LCD。值得注意的是,BIOS 本身提供了 USB Type-C 作为启动显示设备。
图2:默认情况下,Boot Display Device 为 ThinkPad LCD。值得注意的是,BIOS 本身提供了 USB Type-C 作为启动显示设备。

当前 Boot Display Device 为 ThinkPad LCD,Shared Display Priority 为 Display on dock,总显存为 256MB。

这里有一个非常值得注意的信息:

Boot Display Device 本身就允许选择 USB Type-C。

也就是说,T570 的 BIOS 本身就知道这台机器能够通过 USB-C 输出显示信号,这与 Lenovo 官方文档中“USB-C 支持视频输出”的说明是一致的。(联想支持)

USB 设置也进行了检查。

图3:USB UEFI BIOS Support 和 Always On USB 均处于 Enabled 状态。
图3:USB UEFI BIOS Support 和 Always On USB 均处于 Enabled 状态。

USB UEFI BIOS Support 和 Always On USB 都已经启用,没有发现 USB 功能整体被关闭的问题。

九、直接让 BIOS 使用 USB Type-C 输出

为了确认问题究竟是不是 Ubuntu 导致的,我后来做了一个比较关键的测试。

在 Config → Display 中,将 Boot Display Device 从 ThinkPad LCD 改成 USB Type-C。

图4:把 Boot Display Device 改为 USB Type-C,然后保存 BIOS 设置,让电脑在 Ubuntu 启动之前就尝试通过 Type-C 输出启动画面。
图4:把 Boot Display Device 改为 USB Type-C,然后保存 BIOS 设置,让电脑在 Ubuntu 启动之前就尝试通过 Type-C 输出启动画面。

测试时 Type-C 转 VGA 和副屏保持连接,然后保存 BIOS 设置并重新启动。

结果是:

副屏仍然完全没有反应。

这时 Ubuntu、GNOME 和 Wayland 都还没有接管显示系统。如果 Type-C 视频输出能够在固件阶段正常工作,理论上应该有机会看到 Lenovo 启动画面,或者至少让副屏检测到视频信号。

实际却没有任何变化。

因此,这次测试进一步降低了 Ubuntu、Wayland 或 GNOME 显示设置是根本原因的可能性。

测试完成后,我又把 Boot Display Device 恢复为了 ThinkPad LCD。

十、Thunderbolt Controller 没有出现在系统中

随后继续检查 Thunderbolt:

Bash
boltctl domains -v

ls -la /sys/bus/thunderbolt/devices/

lspci -nnk | grep -A4 -Ei 'Thunderbolt|USB controller'

结果比较异常。

boltctl 没有列出任何 Thunderbolt domain,/sys/bus/thunderbolt/devices/ 也是空的,lspci 中只能看到 Intel Sunrise Point-LP USB 3.0 xHCI Controller,没有看到 Thunderbolt Controller。

不过这一步仍然不能直接宣布控制器损坏。

Thunderbolt Controller 在没有设备连接时可能因为节能而处于断电状态,因此仅凭 lspci 中看不到它,还不足以得到最终结论。

但 Lenovo 官方确实针对一批 ThinkPad 发布过 Critical 级别的 Thunderbolt 软件和固件更新公告,并明确列出了 USB-C 端口不工作、Thunderbolt Controller 在操作系统中不可见、USB-C/Thunderbolt Dock 无法识别以及 HDMI 输出不可用等症状。Lenovo 还指出,这些症状可能在正常使用一段时间以后才出现。(联想支持)

这与我当前机器表现出的部分现象已经出现了明显重合。

十一、使用 boltctl 强制让 Thunderbolt 上电

为了排除“控制器只是因为节能而没有启动”这种情况,我又检查了 boltctl 的 power 功能。

系统显示支持 force power。

于是进行了最后一个比较关键的软件测试:

Bash
boltctl power --timeout 20 &
power_pid=$!

sleep 3

boltctl power --query
boltctl domains -v
ls -la /sys/bus/thunderbolt/devices/
lspci -nnk | grep -A4 -Ei 'Thunderbolt|USB controller'

wait "$power_pid"

这次 boltctl 明确获得了 power guard,而且在测试过程中 power state 已经变成 on。

也就是说,强制上电操作本身确实执行成功了。

但是在这段强制上电时间内,boltctl domains 依然没有出现任何 Thunderbolt domain,Thunderbolt sysfs 目录仍然为空,lspci 中也没有出现 Thunderbolt Controller。

到这一步,“只是因为节能,所以平时看不到控制器”已经越来越难解释当前现象。

十二、为什么开始怀疑 T570 的 Thunderbolt / USB-C 子系统

Lenovo 针对 ThinkPad T570 的 20H9、20HA、20JW 和 20JX 机型,确实提供了单独的 Thunderbolt Firmware Update Utility。

目前官方页面列出的版本为 17.0.0.18-N1VTH09W,发布日期为 2021 年 8 月 18 日,而且更新级别被 Lenovo 标记为 Critical。(联想支持)

需要特别区分的是:

今天通过 fwupd 更新的 BIOS 1.54,与 Thunderbolt Controller 自己的 NVM 固件并不是同一个东西。

所以 BIOS 从 1.23 成功升级到 1.54以后,Type-C 视频输出仍然没有恢复,并不能证明 Thunderbolt 固件这一层没有问题。

结合目前排查得到的现象,我更倾向于认为 T570 的 USB-C / Thunderbolt 子系统本身存在异常。

但我暂时不会把结论写成“Thunderbolt 芯片已经损坏”。

目前还无法进一步区分到底属于 Thunderbolt NVM 固件异常、控制器故障、主板相关电路异常,还是其他更底层的问题。

十三、到目前为止已经排除了什么

整个排查过程看起来很长,但其实已经排除了不少最初非常容易怀疑的方向。

首先,并不是 Ubuntu 没有开启扩展显示,因为 DRM 层根本没有检测到外接显示设备。

其次,并不是单纯的 Wayland 或 xrandr 问题,因为 USB-C 连接连 port0-partner 都没有出现。

UCSI 和 Type-C 驱动也已经正常加载。

BIOS 中没有发现 Thunderbolt、USB 或显示输出被明显禁用。

BIOS 已经从 2017 年的 1.23 成功升级到 1.54,但故障仍然存在。

甚至把 BIOS 的 Boot Display Device 直接设置为 USB Type-C,在 Ubuntu 启动之前测试,副屏依然没有反应。

最后,通过 boltctl 成功强制请求 Thunderbolt 上电以后,控制器仍然没有枚举出来。

因此,目前已经很难把它看成一个普通的软件配置问题。

十四、为什么决定暂时停止继续排查

继续往下查并不是完全没有方向。

Lenovo 官方的 Thunderbolt 故障说明中,推荐安装对应的 Thunderbolt 驱动和固件;T570 也确实存在专用的 Critical Thunderbolt Firmware Update Utility。Lenovo 官方页面目前提供的是 Windows 10 64-bit 工具。(联想支持)

理论上,后面还可以准备 Windows 环境,再尝试官方 Thunderbolt 固件工具是否能够枚举 Controller,并判断 NVM 是否还能正常更新。

但问题在于,我最初真正想解决的事情非常简单:

只是希望重新正常使用双屏。

如果为了实现这个目标,还要继续准备 Windows 环境、处理 Thunderbolt NVM 固件甚至进一步判断主板硬件,那么时间成本已经开始明显超过这个需求本身。

前几天我已经围绕原来的副屏黑屏问题排查了很久,今天又继续从 Type-C 转 VGA 一直查到 Thunderbolt Controller。

所以最终还是决定及时止损。

十五、最终更倾向于重新购买一台 HDMI 副屏

目前我更倾向于重新购买一台原生支持 HDMI 的显示器作为副屏。

以后直接使用 T570 的 HDMI 接口,通过普通 HDMI 线连接显示器。

也就是:

ThinkPad T570 HDMI → HDMI 线 → 新副屏 HDMI。

这样可以同时去掉两类额外转换链路。

第一类是这次尝试的 USB-C → DisplayPort Alt Mode → VGA。

第二类是以前使用的 HDMI → VGA 转换器 → VGA。

对于一台新的副屏,我目前的要求其实并不复杂:原生支持 HDMI,1920×1080,60Hz 就已经能够满足日常双屏使用。

如果还能额外提供 DisplayPort 等数字接口当然更好,但没有必要为了这台 T570 专门追求 USB-C 视频输入。

这样以后就是纯数字视频链路,不再需要依赖 VGA 模拟信号以及额外的协议转换。

十六、这次排查最大的收获

虽然最终没有把 Type-C 转 VGA 修好,但今天的排查并不是毫无收获。

首先,这台 ThinkPad T570 原本一直使用从 2017 年留下来的 BIOS 1.23,这次已经成功升级到了 BIOS 1.54。

其次,更重要的是已经确认:当前副屏无法通过 Type-C 转 VGA 使用,并不是简单的 Ubuntu 双屏配置错误。

从 DRM、Type-C/UCSI、BIOS 启动显示输出,一直到 Thunderbolt 强制上电,排查结果都越来越指向更底层的 USB-C / Thunderbolt 链路异常。

所以暂时停止排查,并不是因为完全没有找到方向,而是因为继续修复这条老设备链路需要投入的时间已经太多。

真正的目标只是稳定使用双屏。

从这个目标出发,换一台原生 HDMI 副屏,直接使用 HDMI 数字连接,可能才是目前最简单、最省心,也最实际的方案。

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