使用 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 读取它来获取工作编号。
这两个解决了我的类似问题。
我有一个 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 读取它来获取工作编号。
这两个解决了我的类似问题。