超宽显示器无法设置分辨率

超宽显示器无法设置分辨率

我最近买了一台三星超宽 3440x1440 显示器(型号 C34H890),但在配置它以显示正确的分辨率时遇到了问题。使用cvt我获得了 modeline

Modeline "3440x1440_60.00"  419.50  3440 3696 4064 4688  1440 1443 1453 1493 -hsync +vsync

当我尝试--addmode访问相关端口时,出现以下错误:

X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  18 (RRAddOutputMode)
  Serial number of failed request:  37
  Current serial number in output stream:  38

类似地,我尝试从中获取一个模式行get-edid | parse-edid,它提供了

"Mode 7" 319.75 3440 3488 3520 3600 1440 1443 1453 1481 +hsync -vsync 

尝试--addmode这样做会产生与上述完全相同的错误。

我尝试使用nvidia-settings来配置显示器,但成功了一半。我可以将参数设置ViewPortIn为 3440x1440,但不能ViewPortOut,它拒绝从 更改1920x1080,导致图片非常模糊。

我还尝试了 22.04 的全新安装(在备用驱动器上),发现存在同样的问题。我目前在 5.11 内核上运行 20.04,使用 nvidia 460 驱动程序。

这不是显卡的问题,因为我有第二台显示器,可以以 4K 分辨率运行,没有任何问题。运行有问题的显示器的端口最高支持 4K。

有什么想法吗?我对神秘的 Linux 显示系统的了解已经到了极限...

答案1

我无法通过软件方法解决这个问题。我的理解是,即使我的显卡(Quadro K620)支持 DisplayPort 上高达 4K 的输出,Linux Nvidia 驱动程序也无法处理我尝试的特定配置(一个 4K 显示器和上面描述的超宽显示器)。Nouveau 也不足以满足这一目的。

我有第二个 GPU,GeForce RTX 2060,并且能够通过该卡以正确的分辨率显示两个显示器。希望 Linux 图形支持在未来几十年内变得不那么糟糕。

答案2

对于仍然遇到 3440x1440 显示器问题的人,经过几天的紧张研究,我找到了一个对我有用的解决方案。它如下:

  1. 在终端上执行sudo nano /etc/default/grub
  2. 修改以下内容,使其看起来像这样
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"
GRUB_CMDLINE_LINUX=""

nomodeset注意传递给的新的GRUB_CMDLINE_LINUX_DEFAULT

  1. 最后,执行sudo update-grub

似乎某处发生了内核和驱动程序冲突。

我尝试过但没有效果的方法:

  1. 使用 cvt 3440 1440 60 添加和使用新的模式行
  2. 从 Wayland 切换到 X11
  3. 从 gdm3 更改为 lightdm
  4. 正在自动安装 ubuntu 驱动程序
  5. 一堆其他配置

我已经切换回 Wayland 和 gdm3,但保留了 nomodeset。

希望这对仍然遇到此问题的人有所帮助。我真的不想花钱买一台新显示器。

资料来源:

  1. https://forums.linuxmint.com/viewtopic.php?t=366190
  2. 安装 Ubuntu 后如何设置“nomodeset”?
  3. `nomodeset` 有什么作用

相关内容