Thunderbolt 3 拓展卡动手玩
一线通,轻而易举啊(✕)
两个月前工作电脑从 12 代小主机换到了 DELL 工作站,虽然 Comet Lake 但是体验好上太多,毕竟多核性能持平、有更大的内存、Turing 世代的显示卡,最重要的是风扇噪音几乎不可感,稳定性也很好。唯一的 regression 是没有选配雷电,破坏了目前与笔记本切换极为方便的一线通 setup,当时研究了数日寻找替代方案。总之目前还算工作,聊作记录。
笔者使用的拓展坞是 ThinkPad Thunderbolt 4 Dock (40B0),芯片为 JHL8440 Goshen Ridge 方案,根据 fwupd 输出推测 topology 为新思 vmm533x MST hub 下接 vmm6212 出两路 DP 1.4 和一路 HDMI 2.1 端口,结合下游 TB4 端口实现四路显示输出。说明书 中提及最高输出为 8K@30 (HDMI) + 5K@60 (downstream TB4),算上 DSC 应该是分别用掉了 TB4 提供的两路 4-lane HBR3 stream;插入 DP 会全部降级为 4K@60,实际使用时被识别为 daisy chain,符合 MST 特征。
在不具备 雷电/USB4 连接能力的桌面电脑上,实现笔者期望的双屏一线通,有如下方案:
- 增加 Thunderbolt 3/4 拓展卡
- 增加 USB-C w/ DP alt mode 拓展卡
- 使用显卡的 VirtualLink USB-C 接口
- 软件实现,如 DisplayLink
方案 2 的典型板卡是 三泰 UPA2015,仅需 PCIe 3.0×2 用于 10Gbps USB3 拓展,4-lane DP alt mode 下可以降级 USB 2.0 支持 8K@60 (DSC) 输出,那么 daisy chain 接俩 4k@60 显示自然也非常可行。DELL 贴牌版本海鲜市场有售,均价 ~140 大洋,配备普通的 USB-C 转 DP 拓展坞及 MST splitter 即可,成本不算高,如非已有 TB dock 确实极具吸引力。
VirtualLink 是已经破产的一种 usb-c alt mode 实现,常见于 20 系显卡,能够同时承载 4-lane HBR3 及 10Gbps USB3,看 pinout 定义是重用了 dp alt 的 D+/D-(下图 A6/A7/B6/B7)跑 USB3 的 TX/RX 差分对,因此需要专用线缆且依赖主机识别插入方向。

笔者尝试连接带 HBR3 输出的 dp alt 拓展坞,系统无法认到坞上 USB 2.0 hub,猜测未实现 fallback,对于非 VirtualLink 设备只能输出显示信号。
DisplayLink 针对硬件输出限制,通过专有软件采集画面压缩后发给拓展坞,性能较差:M2 MacBook Air 关闭内屏外接两路 4K 显示,WindowServer 有 40% 左右 CPU 占用,且帧率明显较低,不得已将屏幕设置为 50Hz 以缓解撕裂。M3 及之后的非 Pro Apple Silicon 设备支持通过 Thunderbolt 外接多显示器,但由于 macOS 不支持 MST,TB dock 需要接驳两路原生输出。此外,开源社区有发表逆向实现的 Vino DRM 驱动,如后续能进一步完善,DisplayLink 方案的可用性应该会提高不少。
回归主题,本文案例增加 Thunderbolt 拓展卡的难点在于,对于未选配雷电的机器,主板缺少拓展卡所需的 5-pin GPIO header,而且公开资料较少,不能假定各厂商的 AIC 引脚定义相同。可用的 40Gbps host controller 方案有:
- Alpine Ridge (TB3), JHL6540, 2015
- Titan Ridge (TB3), JHL7540, 2018
- Maple Ridge (TB4), JHL8540, 2020
- ASMedia(祥碩科技) USB4, ASM4242, 2024
DELL 提供的 Thunderbolt 3 AIC (丝印 8DTHW) 使用 Alpine Ridge 方案,海鲜市场上有商家在描述中称“兼容性较好”“不用 TB_Header 也可以识别”,咨询后说法与 DELL 官方 文档 一致,要求 BIOS 中有雷电选项且未禁用,如下图所示。

笔者的机器上显示为 USB Configuration 且完全没有雷电选项,遂放弃。实际上,雷电相关的安全设置隐藏在单独的条目中,仅在插入拓展卡后出现,不过这是后文了。
还是看看远处的 Titan Ridge 吧。成功案例较多的是技嘉 GC-TITAN RIDGE 这张卡,有两路 mini-dp in 和两个 TB3 端口。笔者购入的是 Rev 1.0 版本,THB_C 连接线上箭头指示的引脚为 VCC,将其与 pin 3 短接以启用热插拔,如下图所示:

左侧的供电和 USB 2.0 排线就不接了,毕竟不需要 PD 供电,主板也没有空闲的 USB 排针。拓展卡安装在与 PCH 相连的 ×4 槽位上,因为走 MST 所以只需连接一路 DP 至显卡。BIOS 中出现雷电设置:

系统自动安装 Thunderbolt Control Center:

NVIDIA 控制面板显示 branching device:

小问题还是有的,缺少 Thunderbolt Boot support 导致无法在系统启动前使用 USB 外设,因此备了一块键盘放机箱上。目前坞上挂着一根 45cm 的 延长线,搭配 1m 及以内的雷电线都可以握上手,基本能够满足使用要求。
阅读材料:
Dan S. Charlton – Tech Blog
Hacking Thunderbolt Part 2: Retrofitting PCI Hot-Plug to the UEFI
Type-C 扩展器 方案指南(DP Alternative Mode 篇)