External screens turning off and on repeatedly at different intervals (flickering)


I've recently started encountering this problem where my external screens will sometimes turn off and on repeatedly at different intervals. It ranges from every few minutes to multiple times in a minute. It's not always both screens at once.

Things I've tried:

Not sure what else I can try.
Here's the inxi -Faz output:

System:    Kernel: 5.15.4-zen1-1-zen x86_64 bits: 64 compiler: gcc v: 11.1.0
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen root=UUID=8a0a4f23-e4b4-468d-a55d-308b2de6b338
rw [email protected] quiet
root=/dev/mapper/luks-06b5b85e-d9c6-4b3d-8ad4-9160c300f9fc splash rd.udev.log_priority=3
vt.global_cursor_default=0 systemd.unified_cgroup_hierarchy=1
resume=/dev/mapper/luks-a775b892-c6c9-43c9-8c98-189505509025 loglevel=3
Desktop: KDE Plasma 5.23.3 tk: Qt 5.15.2 info: latte-dock wm: kwin_x11 vt: 1 dm: SDDM
Distro: Garuda Linux base: Arch Linux
Machine:   Type: Laptop System: Dell product: XPS 13 9370 v: N/A serial: <filter> Chassis: type: 10
serial: <filter>
Mobo: Dell model: 0W970W v: A06 serial: <filter> UEFI: Dell v: 1.15.0 date: 06/07/2021
Battery:   ID-1: BAT0 charge: 48.4 Wh (100.0%) condition: 48.4/52.0 Wh (93.1%) volts: 8.5 min: 7.6
model: LGC-LGC6.73 DELL H754V05 type: Li-ion serial: <filter> status: Full
CPU:       Info: Quad Core model: Intel Core i7-8550U bits: 64 type: MT MCP arch: Kaby Lake note: check
family: 6 model-id: 8E (142) stepping: A (10) microcode: EA cache: L2: 8 MiB
flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 31999
Speed: 3400 MHz min/max: 400/4000 MHz Core speeds (MHz): 1: 3400 2: 3400 3: 3400 4: 3400
5: 3400 6: 3390 7: 3300 8: 3394
Vulnerabilities: Type: itlb_multihit status: KVM: VMX disabled
Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable
Type: mds mitigation: Clear CPU buffers; SMT vulnerable
Type: meltdown mitigation: PTI
Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via prctl
Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer sanitization
Type: spectre_v2
mitigation: Full generic retpoline, IBPB: conditional, IBRS_FW, STIBP: conditional, RSB filling
Type: srbds mitigation: Microcode
Type: tsx_async_abort status: Not affected
Graphics:  Device-1: Intel UHD Graphics 620 vendor: Dell driver: i915 v: kernel bus-ID: 00:02.0
chip-ID: 8086:5917 class-ID: 0300
Device-2: Realtek Integrated_Webcam_HD type: USB driver: uvcvideo bus-ID: 1-5:2
chip-ID: 0bda:58f4 class-ID: 0e02 serial: <filter>
Display: x11 server: X.Org compositor: kwin_x11 driver: loaded: intel display-ID: :0
screens: 1
Screen-1: 0 s-res: 5760x1080 s-dpi: 96 s-size: 1520x285mm (59.8x11.2") s-diag: 1546mm (60.9")
Monitor-1: eDP1 res: 1920x1080 hz: 60 dpi: 168 size: 290x170mm (11.4x6.7") diag: 336mm (13.2")
Monitor-2: DP1-1 res: 1920x1080 hz: 60 dpi: 81 size: 600x340mm (23.6x13.4") diag: 690mm (27.2")
Monitor-3: DP1-2 res: 1920x1080 hz: 60 dpi: 96 size: 510x290mm (20.1x11.4") diag: 587mm (23.1")
OpenGL: renderer: Mesa Intel UHD Graphics 620 (KBL GT2) v: 4.6 Mesa 21.2.5 direct render: Yes
Audio:     Device-1: Intel Sunrise Point-LP HD Audio vendor: Dell driver: snd_hda_intel v: kernel
alternate: snd_soc_skl bus-ID: 00:1f.3 chip-ID: 8086:9d71 class-ID: 0403
Device-2: Realtek USB Audio type: USB driver: snd-usb-audio bus-ID: 3-1.3.4:8
chip-ID: 0bda:402e class-ID: 0102 serial: <filter>
Sound Server-1: ALSA v: k5.15.4-zen1-1-zen running: yes
Sound Server-2: JACK v: 1.9.19 running: no
Sound Server-3: PulseAudio v: 15.0 running: no
Sound Server-4: PipeWire v: 0.3.40 running: yes
Network:   Device-1: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter
vendor: Rivet Networks Killer 1435 Wireless-AC driver: ath10k_pci v: kernel bus-ID: 02:00.0
chip-ID: 168c:003e class-ID: 0280
IF: wlp2s0 state: down mac: <filter>
Device-2: Realtek RTL8153 Gigabit Ethernet Adapter type: USB driver: r8152 bus-ID: 4-1.4:4
chip-ID: 0bda:8153 class-ID: 0000 serial: <filter>
IF: enp57s0u1u4 state: up speed: 1000 Mbps duplex: full mac: <filter>
IF-ID-1: vmnet1 state: unknown speed: N/A duplex: N/A mac: <filter>
IF-ID-2: vmnet8 state: unknown speed: N/A duplex: N/A mac: <filter>
IF-ID-3: wg-mullvad state: unknown speed: N/A duplex: N/A mac: N/A
Bluetooth: Device-1: Foxconn / Hon Hai type: USB driver: btusb v: 0.8 bus-ID: 1-7:3 chip-ID: 0489:e0a2
class-ID: e001
Report: bt-adapter ID: hci0 rfk-id: 0 state: up address: <filter>
Drives:    Local Storage: total: 476.94 GiB used: 81.53 GiB (17.1%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: SK Hynix model: PC611 NVMe 512GB size: 476.94 GiB
block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s lanes: 4 type: SSD serial: <filter>
rev: 11002111 temp: 51.9 C scheme: GPT
Partition: ID-1: / raw-size: 459.81 GiB size: 459.81 GiB (100.00%) used: 81.53 GiB (17.7%) fs: btrfs
dev: /dev/dm-0 maj-min: 254:0 mapped: luks-06b5b85e-d9c6-4b3d-8ad4-9160c300f9fc
ID-2: /boot/efi raw-size: 260 MiB size: 256 MiB (98.46%) used: 708 KiB (0.3%) fs: vfat
dev: /dev/nvme0n1p1 maj-min: 259:1
ID-3: /home raw-size: 459.81 GiB size: 459.81 GiB (100.00%) used: 81.53 GiB (17.7%) fs: btrfs
dev: /dev/dm-0 maj-min: 254:0 mapped: luks-06b5b85e-d9c6-4b3d-8ad4-9160c300f9fc
ID-4: /var/log raw-size: 459.81 GiB size: 459.81 GiB (100.00%) used: 81.53 GiB (17.7%)
fs: btrfs dev: /dev/dm-0 maj-min: 254:0 mapped: luks-06b5b85e-d9c6-4b3d-8ad4-9160c300f9fc
ID-5: /var/tmp raw-size: 459.81 GiB size: 459.81 GiB (100.00%) used: 81.53 GiB (17.7%)
fs: btrfs dev: /dev/dm-0 maj-min: 254:0 mapped: luks-06b5b85e-d9c6-4b3d-8ad4-9160c300f9fc
Swap:      Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
ID-1: swap-1 type: zram size: 15.33 GiB used: 2.5 MiB (0.0%) priority: 100 dev: /dev/zram0
ID-2: swap-2 type: partition size: 16.86 GiB used: 0 KiB (0.0%) priority: -2 dev: /dev/dm-1
maj-min: 254:1 mapped: luks-a775b892-c6c9-43c9-8c98-189505509025
Sensors:   System Temperatures: cpu: 72.0 C mobo: 46.0 C sodimm: SODIMM C
Fan Speeds (RPM): cpu: 4795
Info:      Processes: 293 Uptime: 23m wakeups: 5 Memory: 15.33 GiB used: 7.21 GiB (47.0%) Init: systemd
v: 249 tool: systemctl Compilers: gcc: 11.1.0 clang: 13.0.0 Packages: pacman: 1488 lib: 356
Shell: fish v: 3.3.1-644-gc71a2e573 default: Bash v: 5.1.8 running-in: konsole inxi: 3.3.08


Could it be EM interference from something nearby? If they're cheap cables, they're often highly susceptible to it (if I use (either of the two semi cheap) HDMI cables for my monitor rather than DVI, my screen flicks off for a second everytime the fridge in my room switches off.

Recent video on this (nevermind the title stating AMD, this happens with all GPUs): Flickering Issues With AMD GPUs? We've Got You Covered! Driver Settings And Choosing Proper Cables - YouTube

Just covering this despite the probability it's software, as it'd probably be overlooked by others.

I should mention that this is happening at the office. I'm surrounded by other computers and screens and this has only recently started happening. I'm using DP cables but I don't know how 'cheap' they are as they were given to me by the company I work for.

Maybe try this: https://forum.garudalinux.org/t/just-installed-but-i-cant-see-gnome-and-the-apps-keep-freezing/14812/29

I'm going with @Chrispynut. If you run your normal utils and they show the GPU's/heads(output) are "there" and "attached" then this is likely outside your system. (They show in your sys info anyhow.)

I've had the same issue where I bought 3 of the same cable and used them on the same GPU. They worked...for a while. Then some mornings I'd sit down, fire things up to find one screen wouldn't turn on. System GPU saw it, but the monitor swore no signal. Work for a while, flicker clicker flicker. OR the scarier version was waking up to red or green "fuzz" all over the screen. Change the cables, flicker, no signal, fuzz, all gone. scAmazon is known for their cheap crap cables and I'm sure a lot of those cables have made their ways to local shops too. Local shops desperate to improve profit margins over scAmazon and that know a small percent of clients will ever notice the difference.

If you have cables of "different makers/brands" mix and match. Try to use ones that look like they have ferrite. Ferrite can also be misleading as some cords use that to mask the crappy insulation but if the cords are thin and crap to begin with it might be your best worst option. Outside that tell the boss to toss you $20ish in petty cash (or whatever denomination might be enough in your country/region) and ask to run to the local store and pick up a cable or two.

Just installed it, will see if it changes anything.

I'm fairly sure it's not the cables as I've tried connecting the same two screens with the same cables to my MacBook and nothing flickers. The cables as well as the screens and computers were all bought directly from Dell so I doubt that's where it comes from unfortunately.

Dell is notorious for peddling trash. Their displays are often good, that's about it.

If the cables work OK with the Apple then perhaps they are decent but it might also be GPU/driver timing not agreeing with them. Have you tried just running single external to see if it still happens? If it does have you tried restarting X? Not suggesting that as a fix just as a link in the chain. Single screen works, if restarting X makes it behave again...all data points that might suggest something can't handle both the screens or just X getting crappy over time possibly due to RAM...it is an IGP so shared system RAM might be the culprate. (cue 3 identical spider men pointing to each other)

I've been running only one external screen for a few hours now and it still happens intermittently. Restarting X doesn't change anything, neither does rebooting as flickering can happen as soon as the session is opened. I'm thinking maybe it's an issue with the graphics drivers and/or the configuration but I haven't found a way to reset only that configuration without resetting anything else.

Well this is good to know. Has there been any dmesg or log messages with errors when it starts? I've also been thinking have you tried another distro just as a control. I mean it's an Intel system using an Intel IGP, Clear Linux might be the definitive way to go. Now if it still happens running Clear then something things are Bootsie Collins level funky.

***I say dmesg but I've noted Garuda doesn't kick things out as I'm used to for hunting debug log so if someone else can chime in on where the definitive syslog/dmesg style stuff is in Arch that'd be great.

I'm not seeing any errors related to the displays in dmesg and there is nothing of importance in journalctl from what I see - though so far I haven't had any flickers...

I feel like I'm at the edge of my usefulness as dmesg and jctl are pretty different for info gathering than I'm used to in Garuda. The one caveat to that might be tail -f on your .xsessionerrors and tail -f /var/log/Xorg.0.log with a couple terms (or multitail) and just watching. I am curious though as your symptoms are really similar to my cable debacle.

Well, I don't have an .xsession-errors file. I'm monitoring the Xorg log right now but I'm not seeing much even though it's flickering again. I love the look and feel of Garuda but I think I'm just going to move away from it as I've been having too many issues running it with this laptop.

Well I don't know how much time you want to dump into things but I'd be curious if you went Clear if things would behave. https://clearlinux.org/

I'll try to run it live from a USB drive when I get the chance. I'm pretty sure it'll run fine though, this laptop had Ubuntu on it before I installed Garuda and I had no issues with the displays.

I wonder if some of the zen tweaks just push the IGP timings too hard.

Alright so I haven't yet had the opportunity to try Clear Linux yet, but I should add that something has apparently been going on for a while and I hadn't noticed. This is a video of a fully black image on my external display (wait for the zoom): IMG 0372 Wa GIF | Gfycat

As previously noted, it doesn't happen with my MacBook nor with the screen unplugged from the computer (when in standby and displaying menus etc.). I've already tried multiple different cables. Not sure what could cause something like that to happen.

It really looks like a "mild" version of what was happening to me with the duplicate cables. Interfering static on the line. It's really strange because everything kinda screams it's the cables but it can't be if you can change OS and all is fine. The Mac I can kinda rule out because maybe there is better electrical shielding on the board that keeps it stable where the Dell just has charge build up and the cables can't resist it. Of course the second part of that is debunked IF you can change OS on the DELL and the issue also vanishes which leans back to something in the driver timing.

This might be some A Grade grasping at straws but IF you have a decent UPS handy and the screens and laptop aren't already on it, can you toss them on and see if that cleans things up just to rule out line power issues?

Unfortunately I don't have a UPS. I will however try Clear Linux in a few hours and try changing cables again too just in case...

Aight, well again spitballing / grasping. Clear should definitely be the gold standard for compatibility with that hardware though. Keep me posted.

Linux sometimes doesn't handle sub-standard cabling as well as Windows. So I guess it's possible Apple hardware might not have issues in some cases as well.