使用 Ubuntu 20.04 和 Nvidia RTX 5000 时出现奇怪的图形伪影/显示器关闭

使用 Ubuntu 20.04 和 Nvidia RTX 5000 时出现奇怪的图形伪影/显示器关闭

我正在尝试从 Windows 迁移到 Linux,休眠 Windows 并在新磁盘上安装全新的 Ubuntu 20.04(LUKS 增加了休眠时的交换大小)。但我偶尔会出现屏幕损坏或奇怪的图形伪影:

我该如何解决?

系统配置

  • 戴尔 Precision 15 英寸 7540,至强[电子邮件保护]、128 GB ECC RAM、NVIDIA Quadro RTX 5000 16GB VRAM

  • 家庭和办公室的扩展坞:WD19DC (240W)

  • 用于 Linux 迁移的显示器:2x 4K U4320Q,42.5 英寸 @ 96dpi 字体/无缩放

  • Windows 中的显卡问题/伪影(正常运行时间为三个月,
    直至计划重启):在此期间,已完成以下事项:更改日常显示器布局(在 Home2x4k 42 英寸/Office1 2x38 英寸/Office2 3xFullHD 24 英寸下工作),执行每日睡眠/恢复循环,一些休眠循环,以防旅行期间无法充电

Ubuntu 20.04 LTS:

  • 启动、重启、从睡眠状态恢复和休眠后出现伪影

  • 伪影以矩形形式出现在随机位置。

  • 有时显示器会无缘无故黑屏一秒钟(很难重现)

  • Ubuntu 自动安装的 NVIDA 驱动程序 460 版本会导致出现问题

  • 我再次安装了 Ubuntu,并安装了目前可在 nvidia.com 上下载的驱动程序(见下文)

  • 这些工件也出现在 GNome 和 KDE 中。只要我启动终端窗口,Artfacts 就会启动。

  • 在 KDE 中:我尝试了 kwin --replace&,但问题仍然存在

  • 在 KDE 中:当我按下 alt tab 切换应用程序时,伪影就会消失,当我截取屏幕截图时,图像本身没有任何伪影。

上次安装的版本:

  • 核心: user01@earth2:~$ uname -a Linux earth2 5.8.0-41-generic #46~20.04.1-Ubuntu SMP Mon Jan 18 17:52:23 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
  • KDE 版本:
  • user01@earth2:~$ kf5-config --version Qt: 5.12.8 KDE Frameworks: 5.68.0 kf5-config: 1.0
  • NVIDIA:
#NVIDIA-Linux-x86_64-450.102.04.run
user01@earth2:~$ nvidia-smi 
Sun Feb  7 18:18:18 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.102.04   Driver Version: 450.102.04   CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Quadro RTX 5000     Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   47C    P0    31W /  N/A |   1227MiB / 16091MiB |      2%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
  • 串行通信
user01@earth2:~/Downloads$ lspci
00:00.0 Host bridge: Intel Corporation Device 3e20 (rev 0d)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 0d)
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 0d)
00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Cannon Lake PCH Thermal Controller (rev 10)
00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)
00:15.0 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH Serial IO I2C Controller #0 (rev 10)
00:15.1 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH Serial IO I2C Controller #1 (rev 10)
00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)
00:17.0 SATA controller: Intel Corporation Cannon Lake Mobile PCH SATA AHCI Controller (rev 10)
00:1b.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #21 (rev f0)
00:1c.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #1 (rev f0)
00:1c.5 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #6 (rev f0)
00:1c.6 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #7 (rev f0)
00:1d.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #9 (rev f0)
00:1f.0 ISA bridge: Intel Corporation Device a30e (rev 10)
00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)
00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH SPI Controller (rev 10)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (7) I219-LM (rev 10)
01:00.0 VGA compatible controller: NVIDIA Corporation TU104GLM [Quadro RTX 5000 Mobile / Max-Q] (rev a1)
01:00.1 Audio device: NVIDIA Corporation TU104 HD Audio Controller (rev a1)
01:00.2 USB controller: NVIDIA Corporation TU104 USB 3.1 Host Controller (rev a1)
01:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU104 USB Type-C UCSI Controller (rev a1)
02:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983
03:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
04:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
04:01.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
04:02.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
04:04.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
05:00.0 System peripheral: Intel Corporation JHL7540 Thunderbolt 3 NHI [Titan Ridge 4C 2018] (rev 06)
39:00.0 USB controller: Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge 4C 2018] (rev 06)
6e:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5260 PCI Express Card Reader (rev 01)
6f:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)
70:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983

user01@earth2:~/Downloads$ free -h
              total        used        free      shared  buff/cache   available
Mem:          125Gi       3,5Gi       118Gi       584Mi       3,6Gi       120Gi
Swap:         405Gi          0B       405Gi
user01@earth2:~/Downloads$

答案1

以下通过禁用 EDID 查询解决了屏幕损坏/伪影问题。但对于使用不同显示器更换工作场所来说,这不是可行的解决方案。它可能会损坏您的显示器,因此请不要 1:1 使用它!

  • 在 nvidia-settings 工具中保存 Xorg 配置
  • 保存显示器的 Edid 文件
  • 获取模式行
parse-edid < edid_from_nvidia.bin
  • 修改以下部分:
Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "LGD"
        Horizsync 30-140
        VertRefresh 29-76
        # Maximum pixel clock is 600MHz
        #Extension block found. Parsing...
       Modeline        "Mode 13" 533.25 3840 3888 3920 4000 2160 2163 2168 2222 +hsync -vsync
       Option "PreferredMode" "Mode 13"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro RTX 5000"
    Option         "UseEDID" "FALSE"    
EndSection
  • systemctl restart gdm 后,显示器切换到 24 位 -> 不再出现屏幕损坏

显示器的屏幕显示很有帮助,这是我进一步研究的起点:

  • 在 Bios 中,启动期间以及 Windows 启动时,OSD 显示 38402160 60Hz @24bit
  • Linux 一旦启动,甚至在登录屏幕出现之前,OSD 就会显示 3840x2160 60Hz @30bit,但 nvidia-settings 和 xorg log 告诉我它是 24 位。

笔记:

  • 在 Linux 中:只要 OSD 显示 30Bit,屏幕损坏就会在任何分辨率和频率下持续存在。

  • 直接连接到笔记本电脑时无屏幕损坏,说明 30 位工作可靠

  • 扩展坞的 HDMI 端口输出@24bit -> 无屏幕损坏

  • 执行 fw-updr 更新也无济于事

  • 由于 30Bit 开关,我的 Dual U3818DW, 37.5" 在工作时也出现了损坏的情况。

  • 我遇到了“https://wiki.ubuntu.com/DeepColourDepthSupportPlan”,但减少到 bpc 8 不起作用:命令“xrandr --output {your screen} --set "max bpc" 8”会出现错误。

  • 两个显示器的EDID告诉,30bit是可能的(10bits)

  • 最新版本:

    戴尔坞站中的 VMM5331:设备 ID:
    摘要:多流传输控制器当前版本:05.04.06

    NVIDIA 版本:460.73.01

    Ubuntu 20.04 版本:5.8.0-55-generic

概括:

  • 看来,对接站是罪魁祸首。更新固件(fwupdmgr 更新)无法解决问题(已经是最新版本)

  • Windows 不知何故停留在 24 位并且可靠,因此我会使用 Windows 一段时间,因为 24 位对我来说已经足够好了。

  • 我不知道如何告诉 Linux/NVidia 保持在 24 位,而无需对 Xorg.conf 进行复杂的破解或对自定义 EDID 文件进行 shim。对我来说,创建 xorg.conf 非常糟糕,因为如果不重新启动,我就无法在不同的地方使用不同的显示器使用笔记本电脑。

更新 我刚刚通过使用 Displayport 转 HDMI 转换器[1] 解决了 Linux 30 位问题。现在 Linux 不知何故被迫以 24 位使用 4K 60Hz。不再有屏幕损坏,也不需要 EDID 文件黑客攻击。

[1]https://www.amazon.de/gp/product/B017BQ8I54/ref=ppx_yo_dt_b_asin_title_o00_s01?ie=UTF8&psc=1

相关内容