鼠标移动时屏幕闪烁(Ubuntu 20/21、Lenovo IdeaPad 5i Pro)

Seb*_*cht 8 display nvidia flicker lenovo intel-graphics

我最近购买了一台联想IdeaPad 5i Pro(16IHU6),配置如下

  • CPU:i5-11300H
  • 显卡:nVidia MX450
  • 显示:2k@120Hz

我无法在其上运行 Ubuntu 20.04/21.10(老实说,迄今为止的任何 Linux),而不会出现严重的屏幕问题(均使用集成显卡和专用显卡)。

问题描述

当我 (1) 移动鼠标、(2) 在窗口之间切换、(3) 在 YouTube 上浏览等时,屏幕会闪烁和/或闪烁。确切原因尚不清楚,但这些问题的频率似乎取决于整体设置,即使用哪个显卡、使用哪个显示管理器、设置哪个分辨率和刷新率等等。

这是输出dmesg -l err

<some AE_NOT_FOUND errors>
pci 0000:00:07.0: DPC: RP PIO log size 0 is invalid
i915 0000:00:02.0: [drm] *ERROR* CPU pipe A FIFO underrun
Run Code Online (Sandbox Code Playgroud)

有时也:

i915 0000:00:02.0: [drm] *ERROR* Potential atomic update failure on pipe A
ucsi_acpi USBC000:00: PPM init failed (-110)
i915 0000:00:02.0: [drm] *ERROR* Potential atomic update failure on pipe A
i915 0000:00:02.0: [drm] *ERROR* Atomic update failure on pipe A (start=2109 end=2110) time 17 us, min 1579, max 1599, scanline start 1595, end 1602
Run Code Online (Sandbox Code Playgroud)

部分解决方法

我通过卸载并重新启动成功解决了 Ubuntu 21.10 上鼠标移动 (1) 的问题xserver-xorg-video-intel。nVidia 设置确认现在使用专用 GPU(驱动程序:nvidia 495.44)。

然而,这种设置消耗电池的速度太快,并且其他操作仍然会导致所描述的问题。即使使用了专用 GPU,它们仍然存在,因为nvidia模块依赖于drm模块,这就是i915模块仍然被加载的原因。

解决尝试

  • 升级所有包
  • 在 Wayland 上使用 Ubuntu
  • 按照另一篇文章中的建议配置英特尔设备(TearFree 模式等)
  • 切换到lightdmand xdm(主观上改善了问题)
  • 按照另一篇文章中的edp_vswing建议配置内核参数
  • 配置内核参数intel_iommu=off解决了列出的其他错误,dmesg但没有解决显示问题
  • 配置内核参数i915.enable_rc6=0
  • 配置内核参数i915.enable_psr=0和/或i915.enable_fbc=0
  • 通过创建和应用自定义显示模式xrandr
  • nvidia-driver-455|460|490从 PPA安装
  • 使用 Fedora 35,具有更新的内核(据我所知,集成的 Intel 显卡驱动程序是内核的一部分)
  • 更新BIOS

概括

集成显卡驱动似乎有问题

无论使用集成显卡还是专用显卡,此问题都会产生影响,并且在多个 Linux 发行版中持续存在,但在 Windows 中则不然。

有谁在这个设备上成功运行过 Ubuntu 吗?我可以做什么来进一步调试或解决问题?

Seb*_*cht 8

enable_psr=0 解决方案是正确设置:

/etc/modprobe.d/i915.conf创建一个包含以下内容的文件

options i915 enable_psr=0
Run Code Online (Sandbox Code Playgroud)

并通过应用此配置

sudo update-initramfs -u
sudo update-grub
Run Code Online (Sandbox Code Playgroud)

重新启动后,我的闪烁问题消失了。