xrandr: error BadMatch (invalid parameter attributes) 无法设置自定义分辨率刷新率解决办法

  • xrandr: error BadMatch (invalid parameter attributes) 无法设置自定义分辨率刷新率解决办法已关闭评论
  • 51 次浏览
  • A+
所属分类:linux技术
摘要

Manjaro KDE
Nvidia 显卡前几天在创建虚拟显示屏让 iPad 成为副屏时,我打算使用 xrandr 给虚拟显示屏自定义分辨率以及 144hz 的刷新率(为了与主屏幕同步)


我的环境

Manjaro KDE
Nvidia 显卡

前言

前几天在创建虚拟显示屏让 iPad 成为副屏时,我打算使用 xrandr 给虚拟显示屏自定义分辨率以及 144hz 的刷新率(为了与主屏幕同步)

但是当进行了如下操作后发生了RT报错:

❯ cvt 1920 1080 144 # 1920x1080 143.88 Hz (CVT) hsync: 169.35 kHz; pclk: 452.50 MHz Modeline "1920x1080_144.00"  452.50  1920 2088 2296 2672  1080 1083 1088 1177 -hsync +vsync  ❯ xrandr --addmode DP-0 "1920x1080_144.00" X Error of failed request:  BadMatch (invalid parameter attributes) Major opcode of failed request:  153 (RANDR). Minor opcode of failed request:  18 (RRAddOutputMode). Serial number of failed request:  29. Current serial number in output stream:  30 

解决办法

解除限制

Manjaro系统下修改/etc/X11/mhwd.d/nvidia.conf

其他linux发行版本系统可修改/etc/X11/xorg.conf(如果不存在该文件可以执行sudo nvidia-xconfig进行创建)

中的Screen Section部分,添加Option "ModeValidation" "NoDFPNativeResolutionCheck,NoVirtualSizeCheck,NoMaxPClkCheck,NoHorizSyncCheck,NoVertRefreshCheck,NoWidthAlignmentCheck"

该配置项的目的是关闭刷新率、分辨率等的检查。

Section "Screen"     Identifier     "Screen0"     Device         "Device0"     Monitor        "Monitor0"     DefaultDepth    24     Option "ModeValidation" "NoDFPNativeResolutionCheck,NoVirtualSizeCheck,NoMaxPClkCheck,NoHorizSyncCheck,NoVertRefreshCheck,NoWidthAlignmentCheck"     SubSection     "Display"         Depth       24     EndSubSection EndSection 

保存文件后,注销(logout)或重启桌面会话,然后再登录即可生效。

此时就不会发生 BadMatch 错误了,问题解决。

注意: 当该配置项生效后,任意刷新率和分辨率都可以被配置。如果不当配置两者可能会损坏屏幕!