我的环境
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 错误了,问题解决。
注意: 当该配置项生效后,任意刷新率和分辨率都可以被配置。如果不当配置两者可能会损坏屏幕!