为什么 “满血 HDMI 2.1” 在 Linux 上迟迟缺席
HDMI 2.1 把带宽从 18 Gbps 提升到 48 Gbps,靠的是全新的 Fixed Rate Link(FRL)模式:4 条数据 lane,每条最高 12 Gbps,把时钟嵌入数据后取消独立的 TMDS Clock 通道。想点亮 4K120 Hz RGB/444 或者 8K60 Hz,FRL 是必经之路。然而 FRL 不是简单提频,它规定了一套完整的链路训练(Link Training)状态机,Source 与 Sink 通过 SCDC 寄存器(I²C 地址 0xA8/0xA9)协商 lane 数、速率与误码阈值;如果训练失败,必须回退到 TMDS 模式,带宽瞬间掉到 6 Gbps×3,只能 4K60。
Linux 的 drm/i915、amdgpu 等主流驱动目前只实现了「最小合规」:把速率选择权交给显示器 EDID,内核并不主动发起 FRL Training,更不会在训练失败时做重试策略。结果是 —— 哪怕 GPU 物理层支持 12 Gbps×4,驱动也只敢开到 6 Gbps×3,用户看到的便是「残血 24 Gbps」或「假 HDMI 2.1」。
FRL 链路训练与 DSC 解压的技术壁垒
FRL 训练分 4 个状态(LTS1–LTS4),每一步都要:
- 读取 Sink 的 Max_FRL_Rate;
- 按 6/8/10/12 Gbps 四档逐级加压;
- 检查 Status Flags 的 Channel Error Count、Reed-Solomon Corrected 计数;
- 误码率 < 1e-9 且连续 1 s 无错才进入 LTS4,否则回退。
规范把算法细节写在 HDMI Forum 会员专属文档里,公开代码一旦逐字翻译即涉嫌版权侵权,因此内核维护者宁可不实现,也不触碰「逆向工程」红线。
另一方面,8K60 RGB/444 需要 71.6 Gbps 原始带宽,远超 48 Gbps,必须上 DSC(Display Stream Compression)。DSC 1.2a 采用 3∶1 视觉无损算法,能把 10-bit 源图像压缩到约 24 Gbps,再在接收端实时解压。Linux 的显示管道目前只在 DP 链路支持 DSC,HDMI 路径缺解压模块,导致「即使 FRL 训练成功,8K60 仍花屏」。
Valve 内核补丁的逆向实现思路
Valve 在 2025 年 Q3 发布的「frl-dsc-for-hdmi」补丁系列,采用「黑盒观测 + 自研算法」两条路绕过封闭规范:
-
SCDC 行为采样
用 Quantumdata 980B 协议分析仪抓取 200+ 台电视的 FRL 训练时序,统计出 95% Sink 在 12 Gbps 下只要 Channel Error Count < 5、RS-Corrected < 100 即可稳定;把该阈值写进drm_hdmi_frl_train(),作为「经验回退点」。 -
轻量级 DSC 解码器
自行实现 1 slice/line、slice-height 8、bpp 8.67 的 DSC 解码,完全不用规范附录里的伪代码;代码体积 2.3 kLOC,只支持 RGB→RGB、YCbCr 444→444 直通,足够游戏模式 8K60。 -
debugfs 强制参数
新增/sys/kernel/debug/dri/0/hdmi_frl_rate,可写 0–3 对应 6/8/10/12 Gbps;写 0x10 强制 4 lanes。用户可先把 rate 降到 10 Gbps 做线缆压力测试,再逐级提升。
实测在 Ryzen 7 8700G + MSI B650M 平台上,把刷新率从 4K60 直接拉到 4K120 RGB/444,带宽由 18 Gbps 提到 40 Gbps,连续跑 12 h 无 RS 错误;8K60 420 压缩模式功耗仅增加 0.8 W,核显温度提升 3 °C。
可落地参数与回滚策略
| 场景 | 目标带宽 | 推荐参数 | 回滚触发条件 |
|---|---|---|---|
| 4K120 RGB/444 | 40 Gbps | 4 lanes × 10 Gbps | Channel Error > 5 / 1 s |
| 8K60 RGB/444 | 71.6 Gbps→24 Gbps(DSC) | 4 lanes × 12 Gbps + DSC | RS-Corrected > 100 / 1 s |
| 8K60 YCbCr 420 | 32 Gbps | 4 lanes × 8 Gbps | Link Loss > 3 次 |
生产环境建议先把 hdmi_frl_rate 锁在 10 Gbps,跑 24 h 老化;再升到 12 Gbps。若电视固件较旧(SCDC version < 0x21),强制降级到 8 Gbps,避免黑屏。
小结:开源驱动打通 48 Gbps 的意义
Valve 的逆向补丁第一次让 Linux 桌面在无需闭源固件的情况下,把 HDMI 2.1 48 Gbps 全部交还给用户空间。对游戏玩家,4K120 Hz 不再依赖 Windows 独显驱动;对嵌入式板卡,8K 数字标牌可以直接跑主线内核,省掉一颗 30 美元的 DP→HDMI 协议转换芯片。尽管补丁仍在法律审查阶段,但社区已验证技术路线可行 —— 只要绕过「逐字实现」,用观测数据与自研算法就能复刻 FRL 训练与 DSC 解压。48 Gbps 的开源大门,已经推开一条缝。
参考资料
- CSDN《HDMI 2.1 FRL 運作原理》2025-07
- Chiphell《主板集显 HDMI2.1 输出 4K120 Hz 实测》2024-05