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

我的环境

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 错误了,问题解决。

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

作者:littleblackLB原文地址:https://www.cnblogs.com/littleblacklb/p/17985967

%s 个评论

要回复文章请先登录注册