带有多台显示器的联想 USB-C 基座

带有多台显示器的联想 USB-C 基座

我想将 Ubuntu 22.04 连接到联想的 ThinkPad USB-C 底座。两个联想显示器通过显示端口连接,这些显示器在启动笔记本电脑时(联想也是如此)工作,但是一旦 Ububtu 启动,显示器就会进入睡眠模式(省电模式)。在 Ubuntu 的设置面板中检测到显示器,但是没有显示图像。我打开了显示器,但几秒钟后没有图像,显示器将进入省电(睡眠)模式。你能帮忙吗? 这就是它的样子

答案1

我也遇到过这种情况。我没有联想品牌的 USB C 基座,而是通用的。不过我认为这与此无关,任何外接显示器设置都可能发生这种情况。

我的目标是使用三个外接显示器,笔记本电脑盖关闭,这样就不会使用其显示器。你可能想要一个不同的安排,我认为它应该可以工作,只是给你提供这些信息,因为它会为你在下面看到的内容提供背景。

关键是 1) 使用 xorg,而不是 wayland。2) 该~/.config/monitors.xml文件是主密钥。

最令人沮丧的两个部分是:a)这似乎monitors.xml在任何地方都没有记录下来;b)显示设备名称在每次启动时似乎都会随机变化。

因此,连接您需要的所有监视器,进入登录屏幕并登录 Ubuntu。删除或备份您的~/.config/monitors.xml以重新开始。重新启动系统。

再次登录 Ubuntu,我假设您的笔记本电脑面板可以正常工作,并且显示器可能处于各种状态。暂时忽略外部显示器上的输出。

在终端中运行xrandr以检查所有显示器是否显示。这是我的,显示了大量潜在的输出设备。请注意,我过滤掉了开头有空格的任何行,以便仅显示设备,而不是支持的分辨率的长列表。这只是为了让您在这里看到它,而且滚动浏览它不会太长。

$ xrandr | grep -v "^\ "
Screen 0: minimum 320 x 200, current 3840 x 2160, maximum 16384 x 16384
eDP connected (normal left inverted right x axis y axis)
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
DisplayPort-1 disconnected (normal left inverted right x axis y axis)
DisplayPort-2 disconnected (normal left inverted right x axis y axis)
DisplayPort-3 disconnected (normal left inverted right x axis y axis)
DisplayPort-4 disconnected (normal left inverted right x axis y axis)
DisplayPort-5 disconnected (normal left inverted right x axis y axis)
DisplayPort-6 disconnected (normal left inverted right x axis y axis)
DisplayPort-7 connected 1920x1080+1112+0 (normal left inverted right x axis y axis) 344mm x 195mm
DisplayPort-8 connected 1920x1080+0+1080 (normal left inverted right x axis y axis) 527mm x 296mm
DisplayPort-9 connected primary 1920x1080+1920+1080 (normal left inverted right x axis y axis) 530mm x 290mm

目前,底部的三个“DisplayPort”项目正在使用中。顶部的“eDP”是笔记本电脑的内部面板,由于如前所述,盖子是关闭的,因此它处于关闭状态。

您应该会看到类似的东西。请注意分辨率(我的所有显示器都是 1080p)以及 x 和 y 偏移量(每个显示器与左上角1920x1080之间的横向和纵向距离) 。0,0

所以:

  • DisplayPort-7 位于顶部,位于一半的位置。
  • DisplayPort-8 位于 7 下方,左侧(零偏移,1080 向下偏移)
  • DisplayPort-9 位于 8 的右侧,也位于 7 的下方(1920 偏移量位于 8 的右侧,1080 偏移量位于 7 的下方)

这是 GNOME 设置中的样子。

GNOME 设置显示选项

令人困惑的是,2 是 DisplayPort-7,3 是 DisplayPort-8,4 是 DisplayPort-9。我怀疑如果我打开笔记本电脑的盖子,1 将是 eDP,但我不会这样做而弄乱它!:D

好的,下一步,打开 GNOME 设置。导航到显示。这是我的完整设置的样子。

GNOME 设置显示所有监视器的显示选项

先不要重新排列顶部的任何内容。我们先来了解一下分辨率和刷新率。

因此,对于每个显示器,单击它并相应地设置分辨率和刷新率。例如:

单显示器刷新率

我发现如果显示器设置为不同的刷新率,这组面板就会完全失灵。GNOME 会抱怨我处于不可能的境地。

让它们的分辨率和刷新率保持一致。现在不用担心如何安排它们。我发现重新安排它们经常会导致显示器因“无信号”而关闭。

好的,现在打开文本编辑器并编辑你的~/.config/monitors.xml。也许先备份一下,放在一边,以防你弄乱了。

这是一个 xml 文件,格式如下。请注意,这是“配置”。该文件可能有多个。我的有两个配置部分。这是第一个,它显示了如果我只有笔记本电脑显示器处于活动状态(例如当我离开办公桌时),会发生什么情况。

需要注意的关键事项:如果面板/启动器应该位于显示器上,<x>则答案是<y> are the horizontal and vertical offset from 0,0 I mentioned above. Thesection is where you can put the resolution and refresh rate. Thesection is a simple“是”。如果不是,则完全省略该部分。

<monitors version="2">
  <configuration>
    <logicalmonitor>
      <x>0</x>
      <y>0</y>
      <scale>1</scale>
      <primary>yes</primary>
      <monitor>
        <monitorspec>
          <connector>eDP</connector>
          <vendor>SDC</vendor>
          <product>0x4167</product>
          <serial>0x00000000</serial>
        </monitorspec>
        <mode>
          <width>1920</width>
          <height>1200</height>
          <rate>60.001</rate>
        </mode>
      </monitor>
    </logicalmonitor>
  </configuration>
</monitors>

好的,以上内容适用于一台显示器。那么多台显示器呢?

下面是我的下一个(也是最后一个)配置部分 - 很长,抱歉。

请注意,有三个<logicalmonitor>部分。上面您看到的就是我的三个显示器。每个显示器都有其<x><y>偏移量、名称(如 所示)以及 、 、xrandr表示<connector>分辨率<width>和刷新率。只有其中一个已设置。请注意,顺序无关紧要。DisplayPort-9 位于我桌子的右下角,但它是列出的第一个。<height><rate><primary>

  <configuration>
    <logicalmonitor>
      <x>1920</x>
      <y>1080</y>
      <scale>1</scale>
      <primary>yes</primary>
      <monitor>
        <monitorspec>
          <connector>DisplayPort-9</connector>
          <vendor>SYN</vendor>
          <product>Non-PnP</product>
          <serial>0x00bc614e</serial>
        </monitorspec>
        <mode>
          <width>1920</width>
          <height>1080</height>
          <rate>60.000</rate>
        </mode>
      </monitor>
    </logicalmonitor>
    <logicalmonitor>
      <x>1112</x>
      <y>0</y>
      <scale>1</scale>
      <monitor>
        <monitorspec>
          <connector>DisplayPort-7</connector>
          <vendor>RTK</vendor>
          <product>Wimaxit FHD</product>
          <serial>demoset-1</serial>
        </monitorspec>
        <mode>
          <width>1920</width>
          <height>1080</height>
          <rate>60.000</rate>
        </mode>
      </monitor>
    </logicalmonitor>
    <logicalmonitor>
      <x>0</x>
      <y>1080</y>
      <scale>1</scale>
      <monitor>
        <monitorspec>
          <connector>DisplayPort-8</connector>
          <vendor>DEL</vendor>
          <product>DELL SE2416H</product>
          <serial>TP7H70AR1YVL</serial>
        </monitorspec>
        <mode>
          <width>1920</width>
          <height>1080</height>
          <rate>60.000</rate>
        </mode>
      </monitor>
    </logicalmonitor>
  </configuration>

正确处理此文件。保存它,备份它,然后重新启动您的会话。它应该像 ALT+F2、R、Enter 一样简单。但您可能希望注销/登录以确保万无一失。

我知道在 2023 年,编辑 XML 文件来获得正确的显示效果是一件非常痛苦的事情,而且这绝对不是“Linux 桌面年”,但这是我唯一能做到的方法。希望它能有所帮助。

答案2

好吧,我遇到了同样的问题。然后我记得当我在 Windows 上时,它仅支持我的 2k 显示器和 1080 显示器,两者均为 1080p,频率均为 60 hz。当两个显示器都插入时,甚至没有给我在 2k 显示器上进行更高分辨率的选项。所以这让我认为这不是驱动程序问题,而是分辨率问题。所以我用谷歌搜索并找到了这个:

https://support.lenovo.com/us/en/solutions/pd029622-display-and-video-output-configurations-docking-stations

因此,我将两个显示器都设置为 1920x1080 60 hz,这样就可以了。但根据链接中的图表,它显示我应该能够使用 DP 运行 2k @ 3840 x 2160 @ 30hz,而我的第二台显示器运行 1920 x1080 @ 60 hz。所以我试过了,但对我来说没用。所以也许可以尝试从 1080p 的两个显示器开始。

答案3

在 askubuntu 上搜索了很久之后,我解决了类似的问题,即连接的显示器无法接收 DP 信号。原因可能不是 Xorg 等,而是联想 USB-C 基座。我有一台 AF40,解决方案是从 DisplayLink 网站为基座安装 ubuntu DisplayLink 驱动程序。来源:https://www.synaptics.com/products/displaylink-graphics/downloads/ubuntu 看看是否有帮助。

相关内容