我的联想 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