![三个显示器:xrandr 配置 crtc 失败](https://linux22.com/image/177204/%E4%B8%89%E4%B8%AA%E6%98%BE%E7%A4%BA%E5%99%A8%EF%BC%9Axrandr%20%E9%85%8D%E7%BD%AE%20crtc%20%E5%A4%B1%E8%B4%A5.png)
截至今天,我无法以首选分辨率 (2560x1440) 启用所有三个显示器。此配置在过去两周内一直运行,没有出现错误。这个周末我从扩展坞上拔下了笔记本电脑和显示器的插头,这样我就可以将显示器连接到我的游戏电脑上。今天早上我把所有东西都插回了坞站。据我所知,还没有软件更新。
尝试启用所有三个监视器时出现以下错误:
xrandr: Configure crtc 2 failed
硬件
- 显示器
- 戴尔 S 系列 27 英寸屏幕 LED 照明游戏显示器 (S2719DGF);通过 DisplayPort 连接
- 戴尔 S 系列 27 英寸屏幕 LED 照明游戏显示器 (S2719DGF);通过 DisplayPort 连接
- 惠普Z27n;通过 HDMI 连接
- 笔记本电脑:联想 X1 Carbon V7 14 英寸(2019 年)
- 码头:联想 ThinkPad Ultra 坞站(美国)(40AJ0135US)
软件
- 操作系统:Debian 测试
- 窗口管理器:i3wm
DP-1-{1,2,3}
注意:即使其中一根电缆是 HDMI,所有外部显示器都显示为HDMI;不是显示端口。我记得以前的显示器(当三个显示器设置工作时)显示为DP-2-{1,2,3}
。
我尝试过的事情
- 关闭笔记本电脑然后再次打开。
- 卸下笔记本电脑,将其打开并在脱离安装座时登录,然后再次将其关闭以将其放回安装座上。
- 在笔记本电脑运行时从安装座上插入和拔下显示器电缆
- 以首选分辨率 (2560x1440) 激活三组显示器中的每一组(例如:Dell1 和 Dell2、Dell1 和 HP 等)。这工作没有错误。
- 激活所有三台显示器,但其中一台的分辨率较低(Dell1 2560x1440、Dell2 2560x1440 和 HP 1920x1080)。这工作没有错误。
- 添加自定义分辨率(
2552x1440_60.00 59.94
、2048x1152_60.00 59.90
、2480x1395_60.00 59.97
)并将第三台显示器设置为这些分辨率。2048x1152_60.00 59.90
工作过;另外两个不起作用。
arandr
布局输出(格式化以供阅读):
#!/bin/sh
xrandr \
--output eDP-1 --off \
--output DP-1 --off \
--output HDMI-1 --off \
--output DP-2 --off \
--output DP-1-1 --mode 2560x1440 --pos 4898x2033 --rotate left \
--output DP-1-2 --mode 2560x1440 --pos 2338x1846 --rotate normal \
--output DP-1-3 --mode 2560x1440 --pos 2338x3286 --rotate normal
xrandr --verbose
启用两台戴尔显示器后:要旨。
答案1
通过将第三个显示器设置为较低的刷新率,我可以将所有显示器设置为 2560x1440。我当前的配置有两台分辨率为 2560x1440 的戴尔显示器:
DP-1-1 connected 1440x2560+0+320 right (normal left inverted right x axis y axis) 610mm x 356mm
...
2560x1440_30.00 29.94*
DP-1-2 connected primary 2560x1440+1440+0 (normal left inverted right x axis y axis) 597mm x 336mm
2560x1440 59.95*+ 143.91
DP-1-3 connected 2560x1440+1440+1440 (normal left inverted right x axis y axis) 597mm x 336mm
2560x1440 59.95*+ 143.91
#!/bin/sh
xrandr \
--output eDP-1 --off \
--output DP-1 --off \
--output HDMI-1 --off \
--output DP-2 --off \
--output DP-1-1 --mode 2560x1440_30.00 --pos 0x320 --rotate right \
--output DP-1-2 --primary --mode 2560x1440 --pos 1440x0 --rotate normal \
--output DP-1-3 --mode 2560x1440 --pos 1440x1440 --rotate normal
我创建了 2560x1440_30.00 模式按照 archlinux wiki 上的步骤操作:
- 用于
cvt
创建模型行:cvt 2560 1440 30
- 在 xrandr 中创建一个新模式:
xrandr --newmode "2560x1440_30.00" ...
- 将第三台显示器设置为使用此新模式阿兰德尔,你也可以使用
xrandr
.
答案2
我想我应该添加我的解决方案,这样其他人可能会受益
我也被困住了,xrandr: Configure crtc 2 failed
但与最初的解决方案相比,我的两个外部显示器(包括内部显示器在内的所有 3 个显示器)都需要更多的修改才能以 60Hz 工作。
我的问题是只有一台显示器可以工作 - 而我无法激活另一台。
最终起作用的顺序是:
- 先激活其中一个监视器(更改顺序意味着它不起作用,在我的情况下首先是 DP-2-2)
- 将此显示器设置为 60Hz 而不是默认的 75Hz:
xrandr --output DP-2-2 --mode 2560x1440 --rate 60
- 创建 30Hz 模式:
gtf 2560 1440 30
获取设置并xrandr --newmode "2560x1440_30.00" 146.27 2560 2680 2944 3328 1440 1441 1444 1465 -HSync +Vsync
创建模式 - 将此模式添加到其他显示器:
xrandr --addmode DP-2-3 "2560x1440_30.00"
- 使用 30Hz 模式激活此显示器(以其他频率激活不起作用):
xrandr --output DP-2-3 --mode 2560x1440_30.00
- [现在两个监视器都处于活动状态]
- 将显示器设置为 60Hz
xrandr --output DP-2-3 --mode 2560x1440 --rate 60
在此过程中,我还重置了我的 gnome,以首先激活正确的显示器(不推荐,删除 gnome 设置!dconf reset -f /org/gnome/
)。我还尝试使用 gnome 显示设置 GUI(在桌面上单击鼠标右键)首先进入此序列。
我将尝试将所有这些组合成一个可以在启动后运行的脚本,但至少我知道有一个工作序列。