环境:Zorin OS 18.1/ Kernel 6.17 / GNOME Wayland / AMD RX 580 / DisplayPort 连接 / 泰坦军团 P24A2G(165Hz,Fast IPS,AMD FreeSync)
问题描述
新显示器支持 Adaptive Sync(OSD 已开启),连接 DP 口后 Linux 系统识别正常、165Hz 刷新率也正确运行,但 GNOME 显示设置中始终没有出现 VRR 开关,且以下路径不存在:
/sys/class/drm/card1-DP-2/vrr_capable # 文件不存在
排查过程
1. 确认连接与刷新率
xrandr | grep " connected"
# 输出:DP-2 connected primary 1920x1080+0+0
显示器已正确识别,但 xrandr 模式列表只有 60Hz —— 原因是当时还在用 HDMI 1.4 线。换 DP 线后 165Hz 正常出现。
2. 检查 VRR 能力
cat /sys/class/drm/card1-DP-2/vrr_capable
# cat: 没有那个文件或目录
文件不存在。进一步检查 amdgpu 驱动参数:
cat /sys/module/amdgpu/parameters/freesync_video
# 输出:0
根因找到:freesync_video 未开启,驱动没有读取 EDID 中的 FreeSync 扩展块,vrr_capable 因此不会被创建。
3. 确认 EDID 内容(可选但推荐)
sudo apt install edid-decode
cat /sys/class/drm/card1-DP-2/edid | edid-decode
关键输出:
Vendor-Specific Data Block (AMD), OUI 00-00-1A:
Version: 1.9
Minimum Refresh Rate: 48 Hz
Maximum Refresh Rate: 165 Hz
Display Range Limits: 48-165 Hz V, 186-186 kHz H
DTD: 1920x1080 @ 120Hz / 144Hz / 165Hz ← 全部存在
EDID 本身完整正确,AMD FreeSync vendor block 已写入,不需要修改 EDID。
4. 用 drm_info 确认驱动层状态
sudo apt install drm-info
drm_info 2>/dev/null | grep -A 5 -i "vrr\|freesync\|adaptive\|sync"
关键输出片段:
"vrr_capable" (immutable): range [0, 1] = 0 ← 启用 freesync_video 前
...
"VRR_ENABLED": range [0, 1] = 0 ← mutter 尚未开启
注意: Kernel 6.17 下
vrr_capable不再暴露为/sys/class/drm/card1-DP-2/vrr_capable路径,find /sys -name "vrr_capable"会返回空。实际属性存在于 DRM 内部 connector properties,需通过drm_info读取。
解决方案
Step 1:开启 amdgpu FreeSync 内核参数
sudo nano /etc/default/grub
找到:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
改为:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amdgpu.freesync_video=1"
sudo update-grub
# 重启
重启后验证:
cat /sys/module/amdgpu/parameters/freesync_video
# 输出:1
此时 drm_info 中 vrr_capable 变为 1。
Step 2:开启 GNOME Mutter VRR 实验性功能
gsettings set org.gnome.mutter experimental-features "['variable-refresh-rate']"
注销并重新登录,进入 设置 → 显示器 → 选中显示器,即可看到 VRR 开关。
验证最终状态
drm_info 2>/dev/null | grep "vrr_capable\|VRR_ENABLED"
预期输出:
"vrr_capable" (immutable): range [0, 1] = 1 ✅
"VRR_ENABLED": range [0, 1] = 1 ✅(GNOME 开关打开后)
总结
| 问题 | 原因 | 解决 |
|---|---|---|
| xrandr 只有 60Hz | HDMI 1.4 线缆限速 | 换 DP 线 |
vrr_capable 文件不存在 | Kernel 6.17 路径变更,且 freesync_video=0 | 用 drm_info 查;加内核参数 |
| GNOME 无 VRR 开关 | mutter 实验性功能未开启 | gsettings 命令 + 重新登录 |
两个条件缺一不可: amdgpu.freesync_video=1(驱动层)+ gsettings 实验性功能(compositor 层)。