使用 xrandr 设置 4k 分辨率失败并出现不匹配错误

setting 4k resolution with xrandr fails with badmatch error

我有一个 4k 显示器并尝试设置我的 Ubuntu 14.04 LTS 来使用它。由于系统设置和 NVIDIA X 服务器设置中没有可用的 3840x2160 选项 - 唯一的方法是使用 xrandr 工具。 所以我输入:

gtf 3840 2160 60

# 3840x2160 @ 60.00 Hz (GTF) hsync: 134.10 kHz; pclk: 712.34 MHz
  Modeline "3840x2160_60.00"  712.34  3840 4152 4576 5312  2160 2161 2164 2235  -HSync +Vsync

xrandr --newmode test87 712.34  3840 4152 4576 5312  2160 2161 2164 2235  -HSync +Vsync

xrandr --addmode HDMI-0 test87

X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  18 (RRAddOutputMode)
  Serial number of failed request:  35
  Current serial number in output stream:  36

这似乎是一个常见错误,但其他解决方案建议修改 /etc/X11/xorg.conf(我没有,我尝试创建一个并重新启动,但没有帮助)。其他一些解决方案建议在模式名称周围使用括号 - 它也没有帮助。

如果我没有完全弄错的话,4k@60Hz 简直超出了 HDMI-1.4 的带宽能力;您要么需要通过 DisplayPort 连接,要么使用较低的刷新率; 30Hz 是一个安全的选择。

更新

鉴于 EDID 数据转储,到目前为止一切看起来都很好。与您的显示相对应的 xorg.conf 条目将是这些(由 parse-edid 生成,这相当于 X.org 服务器所做的)。

    # EDID version 1 revision 3
Section "Monitor"
    # Block type: 2:0 3:fd
    # Block type: 2:0 3:fc
    Identifier "ASUS PB287Q"
    VendorName "ACI"
    ModelName "ASUS PB287Q"
    # Block type: 2:0 3:fd
    HorizSync 24-160
    VertRefresh 30-80
    # Max dot clock (video bandwidth) 300 MHz
    # Block type: 2:0 3:fc
    # DPMS capabilities: Active off:yes  Suspend:no  Standby:no

    Mode    "3840x2160" # vfreq 30.000Hz, hfreq 67.500kHz
        DotClock    297.000000
        HTimings    3840 4016 4104 4400
        VTimings    2160 2168 2178 2250
        Flags   "-HSync" "+VSync"
    EndMode
    Mode    "1920x1080" # vfreq 60.000Hz, hfreq 67.500kHz
        DotClock    148.500000
        HTimings    1920 2008 2052 2200
        VTimings    1080 1084 1089 1125
        Flags   "+HSync" "+VSync"
    EndMode
    # Block type: 2:0 3:fd
    # Block type: 2:0 3:fc
EndSection

注意 UHD 分辨率模式。

如果你没有提到可以使用 NVidia X 服务器设置工具,我会怀疑驱动程序安装有问题。无论如何,我强烈建议您仔细检查一下,驱动程序是否已正确安装并且没有任何干扰。

您不能将 xrandr 与 nVidia 专有驱动程序一起使用。返回 Ubuntu 中包含的驱动程序并重试。

而且,你不能总是依赖cvt和gtf。您可能需要通过查找您的设备 EDID 并通过 parse-edid 读取它来获取工作编号。

这两个解决了我的类似问题。