4K 外接显示器 USB-C 不起作用 - 默认为 2K

4K 外接显示器 USB-C 不起作用 - 默认为 2K

我已经排查这个问题一段时间了,但似乎找不到解决办法。我也很难准确确定问题可能出在哪里。所以,任何帮助排查问题的方法我都会很感激。

硬件和环境

  • Surface Book 3
  • Ubuntu 22.04
  • X11 - 我还没有在 Wayland 中测试任何东西,我仍然使用 X11 是有原因的,如果可能的话,我希望在 X11 中实现 4K 工作。
  • 自定义最新 Surface 内核 6.1.6-surface - 除了我自己的报告外,linux-surface github 问题跟踪器中没有报告或解决有关在 Surface Book 3 上运行 4K 的问题。我不排除自定义内核由于某种原因不支持它,但那里没有回应,我正在尝试其他地方寻求帮助。
  • 专有 Nvidia 驱动程序(版本 525.60.11)- 我目前正在使用这个,但我也尝试了最新的 nvidia-driver-525,它似乎有相同的行为。
  • 通过 USB-C 转 USB-C 和 DP 转 USB-C 使用两个不同的 4K 显示器进行测试

当前行为

首先,我需要注意的是,两台显示器在 Windows 中都可以使用两种电缆类型正常工作。我知道 Surface Book 3 上的 USB-C 端口支持 4k@60hz,而且我使用的两台显示器在 Windows 中都没有问题。

另一点需要注意。这不是 30hz 与 60hz 的问题,这似乎是这些论坛上的常见问题。我已经在 Windows 中确认,两个显示器都支持 4k@60hz,没有问题。这意味着,在连接单个外接显示器的情况下,显示器、电缆和 USB-C 端口都支持 4k@60hz。

如果在计算机启动前连接显示器,则 4K 既可以在启动期间有终端输出时使用,也可以在出现 SDDM 登录屏幕时使用。一旦我登录帐户,分辨率就会降至 2K。不过,我的两台 4K 显示器似乎不一致,因为其中一台似乎会随机在终端和 SDDM 登录的较低分辨率之间切换。

启动后插入 4K 显示器,并且用户登录后,它会检测显示器并默认将分辨率设置为 2K。如果我去配置显示设置,有一个 3840x2160 分辨率选项。当我选择 4K 选项时,它会尝试更改为 4k,但随后又降回 2K,并从显示管理器中删除 4K 选项,当我从命令行运行 xrandr 时也是如此。(4K 确实会显示在 xrandr 上,直到我尝试将其切换到 4K,之后 4K 显示模式被删除)。

到目前为止我尝试过的方法

  • 正如我之前所说,我尝试了存储库中最新的 Nvidia 驱动程序和 Nvidia 网站上的专有驱动程序。两者的行为似乎与当前行为中描述的相同。
  • 我已经尝试使用 prime-select 和所有可用的混合模式 Intel/On demand/Nvidia - 结果与当前行为相同。
  • 我也尝试过清除 Nvidia 驱动程序,只使用 Intel 芯片组 - 结果与当前行为相同。
  • 我从 Windows 中获取了 Windows 中一台显示器的确切模式行,用于在 Linux 中使用 xrandr 创建自定义显示模式。当我尝试强制使用这种新显示模式进行显示时,它不起作用。使用 xrandr 命令设置它会使屏幕暂时变黑,然后恢复到之前可用的分辨率。在 Kubuntu 的显示配置设置对话框中设置它会导致系统锁定,需要硬重启。
  • 使用此有效的 Windows 模式行,我似乎能够诱使 Linux 使用它。我首先在当前会话中将外部显示器设置为此自定义 4K 分辨率。4K 屏幕将变为空白,并且通常会完全锁定系统(笔记本电脑显示器上的鼠标光标除外)。然后我硬重启计算机,同时保持显示器插入电源,然后我能够登录我的帐户,并且它保持 4K@60hz。但这似乎不一致,我尝试了很多次后才让它发生两次。换句话说,我无法始终如一地实现这一点。

如果您想查看任何日志,请告诉我,我可以上传它们。

这是带有 Nvidia 专有驱动程序的 dmesg 转储,使用 nvidia-prime 选择“nvidia”,并在启动期间连接外部 4k 显示器。 https://mega.nz/file/IZIFmKiZ#5AIhEVRnUsYAJWHQXs-uieqiRkutojR8ALTolFzl2dA

编辑

刚刚加载了 Ubuntu 22.04 的实时版本,4K 似乎开箱即用。Ubuntu 22.04 似乎使用 Wayland 作为其默认显示管理器。也许这可能是 KDE 或 X11 的问题?

编辑

决定启动 Kubuntu 22.04 的实时版本。它默认使用 X11,并且 4k@60hz 在那里也可以开箱即用。所以,我不认为这是 X11 与 Wayland 的问题。

几天前,我重新安装了 Kubuntu 22.04,看看是否能解决这个问题,但在安装操作系统时,我没有插入外部 4k 显示器,所以我之前没有注意到它在那里工作。但在安装操作系统后,我相当确定 4K 无法工作,甚至在使用自定义表面内核之前也是如此。不过,我很快就会在这里重新安装完整的操作系统来确认这一点。

答案1

看起来当前的 Surface 内核 (6.1.6-surface) 和我使用的 nvidia 驱动程序版本 (Ubuntu 存储库中的 525.78.01) 存在问题。我猜直接从 Nvidia 下载的驱动程序现在也可以使用,尽管我还没有测试过。

目前不确定内核和 nvidia 驱动程序之间的问题到底是什么,但我确实有解决方法。

我将自定义 Surface 内核降级为最接近的默认 Ubuntu 内核,外接显示器又开始工作了,Nvidia 驱动程序 (525) 似乎也能正常运行。

就我而言,当前的 Ubuntu 内核是 5.15.0-58,因此我从此处的 linux-surface github 发布页面中选择了版本 5.15.3-surface:

https://github.com/linux-surface/linux-surface/releases/tag/debian-5.15.3-1

相关内容