You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下使用xrandr为DVI显示器添加自定义分辨率时遇BadMatch错误求助

Ubuntu下使用xrandr为DVI显示器添加自定义分辨率时遇BadMatch错误求助

刚接触Ubuntu就折腾自定义分辨率确实容易踩坑,我来帮你捋捋这个BadMatch错误的解决思路——这个报错通常是因为你创建的分辨率模式参数(比如像素时钟、同步信号规则)和显示器/显卡输出端口的硬件不兼容,系统拒绝把不匹配的模式绑定到输出上。

下面是一步步的排查和解决步骤:

1. 用系统工具生成合规的分辨率参数

很多新手手动写--newmode参数容易出错,建议用系统自带的cvt工具自动生成符合标准的模式参数,尤其DVI接口要注意带宽限制,推荐用**reduced blanking(缩减消隐)**模式来降低像素时钟,避免超出DVI的带宽上限:

  • 比如要生成1920x1080@60Hz的缩减消隐模式,运行:
    cvt -r 1920 1080 60
    
  • 你会得到类似这样的输出:
    1920x1080 59.93 Hz (CVT 2.07M9-R) hsync: 66.59 kHz; pclk: 138.50 MHz

    Modeline "1920x1080R" 138.50 1920 1968 2000 2080 1080 1083 1088 1111 +hsync -vsync

  • 把Modeline后面的内容完整复制下来,用来创建newmode。

2. 正确执行xrandr命令

首先用xrandr命令查看你的DVI输出端口名称(比如DVI-0、DVI-1,不同机器可能不一样),然后按顺序执行:

  • 创建新模式(把下面的参数替换成你刚才cvt输出的内容):
    xrandr --newmode "1920x1080R"  138.50  1920 1968 2000 2080  1080 1083 1088 1111 +hsync -vsync
    
  • 绑定到DVI输出(替换成你的端口名):
    xrandr --addmode DVI-0 1920x1080R
    
  • 最后应用这个模式:
    xrandr --output DVI-0 --mode 1920x1080R
    

3. 手动创建Xorg配置片段(如果命令行方式无效)

既然你没有/etc/X11/xorg.conf,可以在/etc/X11/xorg.conf.d/目录下新建一个配置文件(比如10-dvi-custom-res.conf),把自定义模式硬编码进去,这样系统启动时会自动加载:

Section "Monitor"
    Identifier "DVI-0"  # 这里要和你xrandr里看到的端口名一致
    Modeline "1920x1080R"  138.50  1920 1968 2000 2080  1080 1083 1088 1111 +hsync -vsync
EndSection
Section "Screen"
    Identifier "Screen0"
    Device "Card0"
    Monitor "DVI-0"
    SubSection "Display"
        Modes "1920x1080R"
    EndSubSection
EndSection

保存文件后重启电脑,系统会自动加载这个配置,不需要再手动跑xrandr命令。

4. 排查硬件限制

如果上面的方法都不行,可能是你的老DVI显示器本身不支持这个分辨率/刷新率,建议查一下显示器的官方说明书,确认它的最大支持参数,不要强行设置超出硬件能力的模式。

备注:内容来源于stack exchange,提问作者Ded J

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 07:58:03