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

时间:2015-04-05 17:54:14

标签: ubuntu-12.04 xrandr

我有一个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(我没有,我尝试创建一个并重新启动,但它没有帮助)。其他一些解决方案建议在模式名称周围使用括号 - 它也没有帮助。

2 个答案:

答案 0 :(得分:0)

如果我没有完全弄错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 Server Settings工具我怀疑驱动程序安装已损坏。无论如何,我强烈地仔细检查,驱动程序是否正确安装,没有任何干扰它们。

答案 1 :(得分:0)

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

此外,您不能总是依赖于cvt和gtf。您可能必须通过查找设备EDID并通过parse-edid读取它来获取工作号码。

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