ubuntu设置显示器刷新率本质是让x server识别并启用显示器支持的「分辨率+刷新率」组合,需通过xrandr验证星号标注的真实刷新率,用cvt生成mode后经--newmode/--addmode注册,再通过xorg.conf.d持久化配置并重启gdm生效。

Ubuntu 设置显示器刷新率,本质是让 X Server(X11)识别并启用显示器支持的某组「分辨率 + 刷新率」组合。它不靠 GUI 点几下就“生效”,而是依赖底层模式(mode)是否被正确注册、是否被 xrandr 选中、是否与显卡驱动和显示器 EDID 兼容。
怎么确认当前刷新率是否生效
别信设置界面里下拉框选了“144 Hz”就真跑起来了——很多桌面环境(GNOME、KDE)只显示选项,但实际未应用或 fallback 到 60 Hz。
必须用命令验证:
-
xrandr输出中,目标输出行(如HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm)下方列出的 mode 行,带*星号的才是当前激活的 mode;它后面括号里的数字(如144.00)才是真实刷新率 - 若星号旁没写刷新率(只写
1920x1080),说明该 mode 是“无刷新率标注”的 legacy 模式,实际走的是默认(通常是 60 Hz) - 更准的方式:
xrandr --verbose | grep -A 5 "HDMI-1",找Current clock和Refresh:字段
为什么 xrandr --output HDMI-1 --rate 144 报错 “invalid rate”
xrandr --output HDMI-1 --rate 144 报错 “invalid rate”这不是命令写错了,而是你试图设置的刷新率根本没被 X Server 认作该输出设备的合法选项。
原因常见于:
- 显示器 EDID 没报告该刷新率(尤其 HDMI 连接时线材/转接器/显示器固件限制)
- 显卡驱动(尤其是开源
nouveau或旧版amdgpu)未解析出高刷 mode - 你用
cvt生成的 modeline 频点超出显示器HorizSync/VertRefresh范围(ddcprobe或get-edid可查) -
--rate参数只对已存在的 mode 生效;它不能凭空创建新 mode
正确流程是:先 cvt → --newmode → --addmode → 再 --mode "name" --rate N(可选,仅当 mode 名含多个 rate 时需指定)
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
cvt 和 gtf 生成 modeline 的区别在哪
cvt 和 gtf 生成 modeline 的区别在哪两者都算时序参数,但策略不同,影响兼容性:
-
cvt(Coordinated Video Timings):现代主流,推荐优先用。它按 VESA 标准生成保守、宽兼容的时序,对 LCD 友好,cvt 1920 1080 144通常能直接 work -
gtf(Generalized Timing Formula):老标准,计算更激进(水平消隐短、像素时钟高),容易触发显示器拒绝(EDID check fail)或黑屏;仅在cvt失败且你明确知道显示器支持该时序时才试 - 关键差异:同一分辨率下,
gtf生成的pclk(pixel clock)常比cvt高 5–10%,而很多 HDMI 1.4 接口或廉价线材上限就是 225 MHz —— 超了就静默失败
实操建议:cvt 1920 1080 144 -r(加 -r 启用 reduced blanking,进一步降低带宽需求,对高刷 HDMI 更稳)
如何让自定义刷新率开机自动生效
xrandr 命令只作用于当前 X session,重启即丢。要持久化,不能只改 ~/.profile(它在登录前执行,X 尚未启动)。
可靠方式只有两个:
-
方案一(推荐):写入 X11 屏幕配置片段
新建/etc/X11/xorg.conf.d/10-monitor.conf,内容示例:Section "Monitor" Identifier "HDMI-1" Modeline "1920x1080_144.00" 312.25 1920 1968 2000 2080 1080 1083 1088 1144 -hsync +vsync Option "PreferredMode" "1920x1080_144.00" EndSection <p>Section "Screen" Identifier "Screen0" Monitor "HDMI-1" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1920x1080_144.00" EndSubSection EndSection</p>注意:Identifier必须与xrandr输出的设备名一致;Modeline必须与你用cvt生成的完全匹配 -
方案二:用桌面环境启动脚本(次选)
GNOME/KDE 可在“启动应用程序”里添加一条xrandr --output HDMI-1 --mode "1920x1080_144.00";但存在 race condition:X 启动早于 compositor,可能被覆盖
最易被忽略的一点:改完 xorg.conf.d 后,必须重启 GDM(sudo systemctl restart gdm3)或整个系统,xrandr 才会把新 mode 列出来 —— 单纯 reload 不生效。










