如何让 xrandr 通过此 USB-C 坞站以 60Hz 输出三个 1680x1050 视频信号?

如何让 xrandr 通过此 USB-C 坞站以 60Hz 输出三个 1680x1050 视频信号?

我有三台相同的 1680x1050 显示器,并尝试通过 Razer Blade 15" 2018 笔记本电脑上的“HP G5 USB-C 扩展坞”及其 Thunderbolt 3 端口使用它们。有时xrandr我可以让所有显示器同时工作,但从来没有在我想要的决议。

如果我自己构建模型行,我可以以 1680x1050 和 49Hz 运行所有三个模型。 60Hz不可能吗?也许这是像素时钟问题。

xrandr | egrep '^[^ ]' | grep -v 'Screen 0:' | sed -e 's/ (.*//'

在未连接底座的情况下打印此内容:

eDP-1 connected primary 1920x1080+0+0
DP-1 disconnected
DP-2 disconnected
HDMI-1-1 disconnected
DP-1-3 disconnected

热插拔坞站后我看到:

eDP-1 connected primary 1920x1080+0+0
DP-1 disconnected
DP-2 disconnected
DP-1-1 connected
DP-1-2 connected
DP-1-3 disconnected
HDMI-1-1 disconnected

使用扩展坞启动显示:

eDP-1 connected primary 1920x1080+0+0
DP-1 disconnected
DP-2 disconnected
DP-1-1 connected
DP-1-2 connected
DP-1-3 connected
HDMI-1-1 disconnected
DP-1-6 disconnected

扩展坞热插拔后,我无法配置xrandr --output DP-1-3 --auto。我明白了xrandr: cannot find preferred mode。不过,用它启动是有效的。

尝试启用具有 1680x1050@60 分辨率的第三台显示器会产生xrandr: Configure crtc 0 failed.我什至使用了用 生成的模型行cvt -r。我认为显示器对于 CVT-RBv2 来说太旧了。

[寻求好友@bain]

答案1

我的发现
  1. HP G5 坞站 (规格)仅支持 USB-C。视频信号将通过著名的 USB-C DisplayPort 备用模式传输;笔记本电脑的 Thunderbolt 3 功能(相同端口,不同操作模式)未使用。

  2. 三重 1680x1050 分辨率强烈暗示该笔记本电脑仅限于 USB-C 上的 DisplayPort 1.2仅使用 2 条车道。它允许 8.64Gb/s 的带宽,三倍 1680x1050 非常适合该带宽,但是60Hz 是可能的。是什么让您如此确信 CVT-RBv2 正时不起作用?该错误xrandr: Configure crtc 0 failed表明 GPU 无法配置为执行您想要的操作。如果显示器实际上无法处理该模式,它只能表明在它自己的屏幕上,奇怪地闪烁或变暗等。生成有用的模型行cvt对于这种情况(以及许多其他情况)是没有用的。此外,其-r开关仅生成“v1”时序。

  1. 热插拔问题似乎是一个不相关的错误。如果您查看没有坞站的端口,您可以看到奇怪的DP-1-3端口。我不确定它代表什么,尤其是 withoutDP-1-1DP-1-2around。—我相信这个奇怪的条目与冷插拔案例中的条目相同DP-1-6(数字始终是最后一个的+3 DP-1-x)。在热插拔事件中,枚举在该虚假名称之后和DP-1之后发生冲突,并且无法使用该名称注册并且不会尝试任何其他名称,似乎使得无法查看/处理扩展坞的最后一个视频端口。DP-1-1DP-1-2DP-1-3
如何进行
60Hz刷新

(以下文本显示了让事情顺利进行的方法。阅读并理解并适应您的环境。复制和粘贴可能不起作用。)

让我们将所有显示器设置为 60Hz。首先,确保您已冷插拔,并且所有 3 个外部显示器均以某种分辨率工作。为了避免瓶颈问题或达到 GPU 的其他限制(我们想要测试显示器!),请在内部屏幕上工作并关闭所有其他屏幕

for no in 1 2 3; do xrandr --output DP-1-$no --off; done

现在让我们添加“我的”模型行:

xrandr --newmode h160 119    1680 1728 1760 1840 1050 1053 1059 1080 +HSync -VSync
xrandr --newmode h80 114.048 1680 1688 1720 1760 1050 1066 1074 1080 +HSync -VSync
xrandr --newmode h60 112.752 1680 1688 1710 1740 1050 1066 1074 1080 +HSync -VSync
xrandr --newmode h50 112.104 1680 1688 1705 1730 1050 1066 1074 1080 +HSync -VSync
xrandr --newmode h40 111.456 1680 1688 1702 1720 1050 1066 1074 1080 +HSync -VSync
xrandr --newmode h30 110.808 1680 1682 1690 1710 1050 1066 1074 1080 +HSync -VSync
xrandr --newmode h25 110.484 1680 1682 1690 1705 1050 1066 1074 1080 +HSync -VSync
xrandr --newmode h20 110.16  1680 1682 1690 1700 1050 1066 1074 1080 +HSync -VSync
xrandr --newmode h12 109.642 1680 1684 1688 1692 1050 1066 1074 1080 +HSync -VSync

立即将它们添加到您首选的显示器(最终添加到其他显示器):

for name in h160 h80 h60 h50 h40 h30 h25 h20 h12; do xrandr --addmode DP-1-1 $name; done

现在测试它们!

xrandr --output DP-1-1 --mode h160

h160 应该可以。这是无聊的 CVT-RB 正时cvt -r 1680 1050 60。然后测试h80。这是CVT-RBv2。我有四台平庸的旧显示器,它们都可以做到这一点。更远:

  • 在 h60 上,我蹩脚的 Medion 品牌全高清显示器图像不稳定
  • h30 是该 BenQ 品牌全高清显示器的最后型号
  • h20 HP 全高清显示器(正常)
  • h12 戴尔办公室 1680x1050 显示器(工作正常!)

然后尝试在您使用的最后一个模型行上启用所有三个。

60Hz替代方案

如前所述,带宽限制还取决于 USB-C Displayport 备用模式版本和设置。如需更多带宽,请使用 DP 1.3+ 和/或 4 条通道(最多)而不是 2 条 USB-C 接线。前者无法在同一硬件上更改,后者有时可以在固件设置实用程序(“BIOS”)中查找“USB-C 高分辨率模式”或其他内容...在 4 通道模式下没有 USB 3.x 与 DisplayPort 视频信号相邻,仅 USB 2.0。

热插拔坞站

对于相同的 3 种状态(无坞站、热插拔、冷插拔),请发送以下输出

(cd /sys/class/drm; ls */edid)

我有

card0-DP-1/edid     card0-DVI-I-2/edid
card0-DVI-I-1/edid  card0-HDMI-A-1/edid

例如,与以下内容相比,名称完全不同xrandr | egrep '^[^ ]' | grep -v 'Screen 0:' | sed -e 's/ (.*//'

DisplayPort-0 connected primary 1680x1050+0+1080
HDMI-0 connected 1680x1050+1920+1080
DVI-0 connected 1680x1050+3840+1080
DVI-1 connected 1680x1050+1920+0

也许它可以让我们了解什么是什么。这Razer Blade 15 英寸底座 (2018)应该有内部显示屏、1×Thunderbolt3/USB-C、1×HDMI 2.0 和 1×Mini DisplayPort 1.4。

这解释了 eDP-1、HDMI-1-1(尽管不是其命名)和 DP-1 与 USB-C 相关,正如我们所知。留下 DP-2 和 DP-1-3。我猜 DP-2 是 Mini DisplayPort。也许 DP-1-3 是该双用 Thunderbolt/USB 端口的 Thunderbolt 端。如果存在相互依赖性,我们首先单独启用它们,然后一起启用它们来确认它。断开扩展坞并切换--off所有输出。然后

xrandr --addmode DP-1 0x74  # some 800x600 standard modeline on my system
xrandr --output DP-1 --mode 0x74  # does this work?
xrandr --output DP-1 --off  # afterwards

这样你就可以强制 GPU 在那里输出一些东西。接下来尝试 DP-1-3。有效吗?可以同时启用两者吗?还有不同的(低分辨率)分辨率(例如无镜像)?您能借个 Thunderbolt 转 DP 转换器吗?检查此适配器是否使用 DP-1-3。

不管怎样……如果这一切都是真的,那么 Xserver 似乎在为某种内部输出分离器发出冲突的名称时做了一个错误的调用。看看你是否可以,会很有趣仅有的热插拔扩展坞后重新启动 Xserver,无需完全重新启动。如果它正常工作,那么内核 GPU 驱动程序似乎不会引发问题,但 X11 中的枚举确实会引发问题。


1 像素时钟的计算方法为汤姆的视频计时计算器并手工模制成模型。

相关内容