External monitor keeps cutting out

Hello everyone

I am a student and I like to connect my laptop to the large monitors in my university’s library. Last year I was using Fedora 38 (silverblue) and had no trouble. Over the winter break I upgraded to Fedora 39. Now it does not work so good. The external monitor will show the image for 1-5 seconds then go blank for 15-60 seconds, and this cycle will repeat, making the external monitor utterly useless.

My dmesg shows this every time I plug in the mini-DP cable:

i915 0000:00:02.0: [drm] *ERROR* uncleared fifo underrun on pipe B
i915 0000:00:02.0: [drm] *ERROR* CPU pipe B FIFO underrun

Both GNOME settings and inxi detect when I plug or unplug the cable, but show nothing different when the display cuts out (says it is still connected). I have tried a variety of cables and monitors at my university and have the same behavior with all of them. It was working fine with Fedora 38. I am using GNOME, wayland, intel graphics. Please let me know if you need more info. I would be so thankful for your help.

Have you tried increasing the memory allocation for the integrated graphics in the BIOS? That could help if you have multiple/high resolution displays.

I don’t have any options in my BIOS. Besides, why would a OS update cause it to require more RAM allocated by the BIOS? And finally I get the same behavior even if I’m mirroring the laptop display at 800x600.

My research shows that the intel driver should dynamically allocate the RAM. glxinfo shows that 1.5 GB are allocated!

RAM allocation in BIOS was once a thing. OS and GUI updates do, however, often add features that may not have been enabled previously due to concerns over RAM demands. Since newer systems tend to have more ram, such features will eventually be added to benefit the users who have invested in higher capacity hardware. Linux has tools to monitor RAM usage that may let you see if there is a spike when you connect the external monitor. Have you checked for journalctl messages are the time the problem occurs?

It is helpful to include hardware details from inxi -Fzxx (pasted as text using the </> button) so others with the same issue and hardware can find your post. You should also make sure your system is fully updated so you aren’t chasing a bug that has already been fixed and to make it easier for others to duplicate your configuration.

Relevant output:

inxi -Fzxx

  Device-1: Intel 4th Gen Core Processor Integrated Graphics
    vendor: Lenovo ThinkPad T440p driver: i915 v: kernel arch: Gen-7.5 ports:
    active: DP-1,eDP-1 empty: DP-2, HDMI-A-1, HDMI-A-2, VGA-1 bus-ID: 00:02.0
    chip-ID: 8086:0416
  Device-2: [] driver: uvcvideo type: USB rev: 2.0 speed: 480 Mb/s lanes: 1
    bus-ID: 1-12:4 chip-ID: 04f2:b39a
  Display: wayland server: N/A compositor: gnome-shell driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: crocus gpu: i915 display-ID: 0
  Monitor-1: DP-1 model: HP S340c res: 3440x1440 dpi: 110 diag: 864mm (34")
  Monitor-2: eDP-1 model: LG Display 0x0569 res: 1920x1080 dpi: 158
    diag: 355mm (14")
  API: EGL Message: EGL data requires eglinfo. Check --recommends.

journalctl gives the same error that I see in dmesg:

kernel: i915 0000:00:02.0: [drm] *ERROR* uncleared fifo underrun on pipe B
kernel: i915 0000:00:02.0: [drm] *ERROR* CPU pipe B FIFO underrun

rpm-ostree status

                  Version: 39.20240118.0 (2024-01-18T00:40:13Z)
               BaseCommit: 06009067fef48b9bdd0c456b85da3c3a0620c4bcf8fefd43d3b33c147e98f6b2
             GPGSignature: Valid signature by E8F23996F23218640CB44CBE75CF5AC418B8E74C
      RemovedBasePackages: firefox firefox-langpacks 121.0.1-1.fc39
          LayeredPackages: distrobox dnscrypt-proxy ffmpeg-free gnome-boxes langpacks-en
                           libavcodec-freeworld libva-intel-driver rpmfusion-free-release

I had a similar issue (not so severe) on my laptop, and found a workaround by going to BIOS to the Power menu and disabling CPU Power Management. Probably at expense of some power draw, but it worked, no more flickering.

1 Like

I booted the laptop from a Fedora 38 usb stick, plugged in the external monitor, and it worked perfectly. Same hardware, same BIOS… the only difference is Fedora 39 vs 38! Certainly not any issue with the hardware nor with my BIOS.

So, how to identify what is broken in Fedora 39?

If this was real breakage there would be lots of similar problem reports, so you need to consider what about your system is unusual (old low-end CPU, etc), lack up vendor firmware updates, etc.

Some problems with older hardware result from security mitigations or power-saving measures, so developers consider the changes to be improvements and you have to decide whether to upgrade your hardware or look for a workaround such as changing power/memory in BIOS or using an older kernel.

I have often encountered issues with older hardware after installing a new kernel. Developers all use newer hardware so problems will only be found by users with old hardware. Some issues were fixed by the time I found them, so make sure you have fully updated your system, including vendor firmware.

If updates and tweaks to BIOS settings don’t clear the problem, you should file a bug report with BugZilla. That way others with problem can find your report and the responses. Fedora developers can determine if something Fedora does is responsible, and forward the issue to kernel developers.

There are no settings in the BIOS. None. There is only a boot device selection. In any case this is my newest machine, only eleven years old, very popular enterprise device.

I think the new kernel in Fedora 39 is causing the problem, as the journal is clearly showing a kernel problem. Can you tell me how to change to the previous LTS kernel 6.1 in Silverblue? I could confirm whether the kernel is the problem and report it.