为什么 Linux 不能像 Windows 那样使用此戴尔 USB-C 坞站驱动 2 台显示器 2560x1440?

为什么 Linux 不能像 Windows 那样使用此戴尔 USB-C 坞站驱动 2 台显示器 2560x1440?

到目前为止,我一直在使用 Windows 10 Lenovo T590 和戴尔 USB-C 坞站,支持 2 个屏幕,每个屏幕均为 2K 分辨率 (2560x1440),没有任何问题。

在我决定迁移到 Ubuntu Linux 后,戴尔 USB-C 坞站似乎不支持 Linux 上的任何这些屏幕。然后我设法获得与笔记本电脑同一品牌的不同扩展坞,现在只有一个屏幕可以设置为其原始分辨率。检测到第二个,但无法生成任何输出,除非我将两台显示器设置为较低的分辨率(1920x1080),然后它们都可以工作,但正如您可以猜到的,这不是最好的方法,看到的图像不清晰。

我想知道,假设 Windows 10 能够处理两个 2K 屏幕,我的设置的瓶颈在哪里?扩展坞、GPU 驱动程序还是其他什么?

有没有什么方法可以降低赫兹频率以减少带宽的使用(xrandr例如使用工具),但让这两个屏幕保持其原始分辨率?

lspci将我的卡报告为:

00:00.0 Host bridge: Intel Corporation Coffee Lake HOST and DRAM Controller (rev 0c)
00:02.0 VGA compatible controller: Intel Corporation WhiskeyLake-U GT2 [UHD Graphics 620] (rev 02)

答案1

我已经为多显示器 xrandr 设置写了几个答案。让我回顾一下:

  • Intel UHD 620 GT2 支持 DisplayPort 1.2 → 总带宽为 17.28 Gbit/s
  • DisplayPort 的 USB-C 备用模式可以执行以下任一操作
    • 使用 2 个通道用于 DP (8.64 Gbit/s),并为 USB 3 留出 2 个通道
    • 使用 4 个 DP 通道 (17.28 Gbit/s),并且没有 USB 3(USB 2 始终可用)
  • 2x1080p 仅需要 6.4 Gbit/s
  • 2x1440p 需要超过 11 Gbit/s

可以双重启动 Windows 或类似系统吗?您能否确认 Windows 在以 1440p 运行 2 个显示器时无法通过扩展坞驱动 USB 3 速度?

我不知道操作系统是否以及如何决定使用哪种模式(2 与 4 通道)。在一些Acer(?) 笔记本电脑的 BIOS 设置(或“固件设置实用程序”)决定使用哪种模式。该选项隐藏在一些令人困惑的名称后面,例如“高分辨率 USB-C 模式”或类似名称。

您的报告中缺少一些信息。首先,您应该始终能够关闭一台显示器并将另一台显示器切换到最高分辨率,如下所示:

xrandr --output <SECOND_MON> --off --output <FIRST_MONITOR> --auto

你从哪个错误中得到xrandr来自内核(来自 的新最后几行dmesg如果你把第二个显示器打开到满屏?

xrandr --output <SECOND_MON> --auto

xrandr现在通过不带参数获取支持的模式列表。将第二台显示器设置为超低分辨率,然后将一个常见分辨率提高到下一个。从...开始

xrandr --output <SECOND_MON> --mode 640x480

...然后800x6001024x768等等。哪一个是最后一个工作的?哪个不再起作用了?

通过这些数据,我们可以做出有根据的猜测,这里的带宽似乎是限制。如果我们卡在 8.64 Gbit/s,那么很明显,Linux 上的 DisplayPort 与扩展坞的连接仅使用 2 个通道,而 Windows 则使用全部 4 个通道。

并且:通过另一个端口(而不是通过同一 USB-C 连接)连接一台显示器也应该允许两台显示器都具有全分辨率。

你能证实吗?

相关内容