焦点 - 屏幕闪烁,i915 CPU 管道 A/B FIFO 在配备 DisplayPort 屏幕的 Intel HD Graphics 上欠载运行

焦点 - 屏幕闪烁,i915 CPU 管道 A/B FIFO 在配备 DisplayPort 屏幕的 Intel HD Graphics 上欠载运行

我的联想 ThinkPad X220 通过 DisplayPort 连接到 Acer VG0 27 英寸 1440p 屏幕。屏幕会定期闪烁几秒钟。通常它会恢复,但偶尔会关闭,直到我拔下屏幕并重新连接。

我添加了一个端口复制器,这样我就可以连接第二个屏幕并在关闭笔记本电脑的情况下使用。第二个屏幕是通过 DisplayPort->HDMI 连接的 LG 23 英寸 1080p。此屏幕不闪烁,因此这与 Acer 的高分辨率或原生 DisplayPort 连接(或两者)有关。

dmesg我发现关于闪烁后出现的错误消息有很多相互矛盾的信息:

[ 2779.680083] [drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU pipe B FIFO underrun
[ 2779.680147] [drm:intel_set_pch_fifo_underrun_reporting [i915]] *ERROR* uncleared pch fifo underrun on pch transcoder B
[ 2779.680176] [drm:intel_pch_fifo_underrun_irq_handler [i915]] *ERROR* PCH transcoder B FIFO underrun

有时是pipe/transcoder A。无论哪种情况,都是相同的消息块。经过大量搜索,我发现这是一个简单的诊断消息,对使用没有特别的影响,与我遇到的显示闪烁症状相同,并且没有明确的解决方案。一些帖子指出,这个问题在比我运行的更旧的内核中得到了修复 - 5.4.0-37

闪烁发生得很随机并且很难引起,但在 Firefox 中滚动、放下我的 Guake 终端或参加 Zoom 会议时经常发生。

我尝试了各种帖子中的许多不同的内核标志,它们似乎指向 1) 这款 Sandy Bridge i7 中的 IOMMU 或 2) C 状态和电源管理。没有什么能可靠地解决问题。我尝试过的一些选项:"i915.enable_rc6=0 i915.semaphores=1 pcie_aspm=force i915.enable_psr=0 i915.edp_vswing=2 intel_iommu=on,igfx_off processor.max_cstate=1 intel_idle.max_cstate=1"。我目前正在运行"i915.enable_rc6=1 i915.enable_fbc=1 i915.powersave=1 i915.modeset=1 i915.lvds_downclock=1",但它仍然闪烁。一个例子:当我使用终端时,屏幕闪烁 + CPU 管道 B FIFO 欠载

我更换了 X220 的主板,但网卡损坏了,所以这块主板可能存在硬件故障,但由于它确实工作了相当长的时间,而且第二个屏幕很稳定,我相信问题不在这块主板上。我还没有在原装主板上试过 Acer 屏幕,但通过 DP->HDMI 将原装主板连接到 1080p 屏幕没有问题。我没有另一个 DP 屏幕可以测试。我试过另一根 DP 电缆,但没有成功。如果连接到笔记本电脑的 DP 输出,它也会闪烁。

屏幕不是问题,因为它可以通过 DP 在另一台笔记本电脑上使用。我还尝试过通过 HDMI 将屏幕连接到 X220,这很稳定,但似乎最大分辨率为 1080p,我特别想要额外的像素。

硬件是:

  • 酷睿 i7 2620m,配备 16GB DDR3
  • 集成英特尔高清显卡 3000
  • Acer VG270UPbmiipx 通过 DP
  • LG IPS236v 通过 DP->HDMI
  • 联想 Mini Dock Series 3 Plus USB3.0

软件是:

  • Ubuntu 20.04 x64
  • 5.4.0-37 内核
  • Xorg 上的 Cinnamon GUI

内核模块:

Module                  Size  Used by
ppp_mppe               16384  2
ppp_async              20480  1
nf_conntrack_pptp      24576  0
nf_conntrack          139264  1 nf_conntrack_pptp
nf_defrag_ipv6         24576  1 nf_conntrack
nf_defrag_ipv4         16384  1 nf_conntrack
binfmt_misc            24576  1
nls_iso8859_1          16384  1
dm_multipath           32768  0
scsi_dh_rdac           16384  0
scsi_dh_emc            16384  0
scsi_dh_alua           20480  0
intel_rapl_msr         20480  0
mei_hdcp               24576  0
intel_rapl_common      24576  1 intel_rapl_msr
x86_pkg_temp_thermal    20480  0
coretemp               20480  0
kvm_intel             282624  0
kvm                   663552  1 kvm_intel
intel_cstate           20480  0
intel_rapl_perf        20480  0
uvcvideo               98304  0
videobuf2_vmalloc      20480  1 uvcvideo
videobuf2_memops       20480  1 videobuf2_vmalloc
snd_usb_audio         262144  1
videobuf2_v4l2         24576  1 uvcvideo
videobuf2_common       49152  2 videobuf2_v4l2,uvcvideo
cdc_mbim               20480  0
joydev                 24576  0
snd_usbmidi_lib        36864  1 snd_usb_audio
snd_rawmidi            36864  1 snd_usbmidi_lib
snd_seq_device         16384  1 snd_rawmidi
iwldvm                237568  0
videodev              225280  3 videobuf2_v4l2,uvcvideo,videobuf2_common
cdc_ncm                36864  1 cdc_mbim
mac80211              843776  1 iwldvm
usbnet                 45056  2 cdc_mbim,cdc_ncm
wmi_bmof               16384  0
mii                    20480  1 usbnet
libarc4                16384  2 ppp_mppe,mac80211
mc                     53248  5 videodev,snd_usb_audio,videobuf2_v4l2,uvcvideo,videobuf2_common
input_leds             16384  0
cdc_acm                40960  0
cdc_wdm                24576  1 cdc_mbim
serio_raw              20480  0
iwlwifi               331776  1 iwldvm
snd_hda_codec_hdmi     61440  1
snd_hda_codec_conexant    28672  1
snd_hda_codec_generic    81920  1 snd_hda_codec_conexant
cfg80211              704512  3 iwldvm,iwlwifi,mac80211
snd_hda_intel          53248  5
snd_intel_dspcfg       24576  1 snd_hda_intel
snd_hda_codec         131072  4 snd_hda_codec_generic,snd_hda_codec_conexant,snd_hda_codec_hdmi,snd_hda_intel
snd_hda_core           90112  5 snd_hda_codec_generic,snd_hda_codec_conexant,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
thinkpad_acpi         110592  0
snd_hwdep              20480  2 snd_usb_audio,snd_hda_codec
mei_me                 40960  1
snd_pcm               106496  6 snd_hda_codec_hdmi,snd_hda_intel,snd_usb_audio,snd_hda_codec,snd_hda_core
mei                   106496  3 mei_hdcp,mei_me
nvram                  16384  1 thinkpad_acpi
ledtrig_audio          16384  3 snd_hda_codec_generic,snd_hda_codec_conexant,thinkpad_acpi
snd_timer              36864  1 snd_pcm
snd                    90112  24 snd_hda_codec_generic,snd_hda_codec_conexant,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_usb_audio,snd_usbmidi_lib,snd_hda_codec,snd_timer,thinkpad_acpi,snd_pcm,snd_rawmidi
soundcore              16384  1 snd
mac_hid                16384  0
sch_fq_codel           20480  3
parport_pc             40960  0
ppdev                  24576  0
lp                     20480  0
parport                53248  3 parport_pc,lp,ppdev
ip_tables              32768  0
x_tables               40960  1 ip_tables
autofs4                45056  2
btrfs                1253376  0
zstd_compress         167936  1 btrfs
dm_crypt               40960  1
raid10                 57344  0
raid456               155648  0
async_raid6_recov      24576  1 raid456
async_memcpy           20480  2 raid456,async_raid6_recov
async_pq               24576  2 raid456,async_raid6_recov
async_xor              20480  3 async_pq,raid456,async_raid6_recov
async_tx               20480  5 async_pq,async_memcpy,async_xor,raid456,async_raid6_recov
xor                    24576  2 async_xor,btrfs
raid6_pq              114688  4 async_pq,btrfs,raid456,async_raid6_recov
libcrc32c              16384  3 nf_conntrack,btrfs,raid456
raid1                  45056  0
raid0                  24576  0
multipath              20480  0
linear                 20480  0
hid_logitech_hidpp     40960  0
hid_logitech_dj        24576  0
hid_generic            16384  0
usbhid                 57344  1 hid_logitech_dj
hid                   131072  4 usbhid,hid_generic,hid_logitech_dj,hid_logitech_hidpp
crct10dif_pclmul       16384  1
crc32_pclmul           16384  0
ghash_clmulni_intel    16384  0
i915                 1986560  22
sdhci_pci              53248  0
cqhci                  28672  1 sdhci_pci
ahci                   40960  3
aesni_intel           372736  2
psmouse               155648  0
libahci                32768  1 ahci
i2c_algo_bit           16384  1 i915
i2c_i801               32768  0
lpc_ich                24576  0
sdhci                  65536  1 sdhci_pci
drm_kms_helper        184320  1 i915
syscopyarea            16384  1 drm_kms_helper
crypto_simd            16384  1 aesni_intel
sysfillrect            16384  1 drm_kms_helper
sysimgblt              16384  1 drm_kms_helper
fb_sys_fops            16384  1 drm_kms_helper
cryptd                 24576  3 crypto_simd,ghash_clmulni_intel
glue_helper            16384  1 aesni_intel
drm                   491520  8 drm_kms_helper,i915
e1000e                258048  0
wmi                    32768  1 wmi_bmof
video                  49152  2 thinkpad_acpi,i915

答案1

由于它是随机的,我不能肯定地说这是否是一个修复,但是随着较新的内核/其他更新似乎增加了闪烁的频率,这似乎确实有所帮助:

https://bbs.archlinux.org/viewtopic.php?pid=1533863#p1533863

此驱动程序使用 SNA 作为默认加速方法。如果遇到问题,您可以尝试回退到 UXA。为此,请将包含以下内容的文件保存为 /etc/X11/xorg.conf.d/20-intel.conf :

  Section "Device"
    Identifier  "Intel Graphics"
    Driver      "intel"
    Option      "AccelMethod"  "uxa"
    #Option      "AccelMethod"  "sna"
  EndSection

自从添加此文件并重新启动 X11 后,它就不再闪烁了。希望这能有所帮助。

编辑:不,这不是修复。只是又闪烁了一次。不过,它似乎确实减少了发生次数。

答案2

我的 Thinkpad W520 也遇到了与您类似的问题,并且出现了类似的 CPU 错误消息。

这是硬件问题,因为我尝试切换到 Windows 7,但屏幕还是闪烁。问题与过热有关。

我使用“Thinkfan”将风扇速度调到最大,现在几乎不再出现问题了。

答案3

几个月来我遇到了同样的问题,错误消息也一样。我使用的是内核为 5.11.22 的 Fedora 32,但这个问题在之前的内核中也存在。我的笔记本电脑是 ASUS N55S,即使安装了全新的 Ubuntu 20.04,问题仍然存在。

我确认问题是由于过热引起的。我清洁了 CPU 风扇,问题已最小化。此外,fancontrol 服务(与 lm_sensors 提供的 pwmconfig 一起运行)存在一个问题,即在我的情况下,文件“fan1_input”没有任何值(对此文件执行 cat 命令时显示“无此设备或地址”错误)...因此,我创建了一个小型 shell 服务,以更严格的方式控制风扇。我还创建了一个 gnome shell 扩展,以便随时对其进行监督(由于 fan1_input 文件存在同样的问题,显示风扇状态的标准扩展在我的情况下也失败了)。

该程序(fanASUS 服务和 gnome shell)可从以下网址下载:https://nuvol.cmima.csic.es/owncloud/s/ehzjniK9Ls2hlLx

相关内容