(Nerdy) multiple screens setup crashes

Hello, I’m having a not-so-conventional screens setup and I’d like to get some advices because I’m having some heavy crashes from time to time, and I couldn’t find answers to my issue on other sides of the internet :slight_smile:

So, at first, here’s the setup:

  • Framework Laptop 16
  • CPU: AMD Ryzen 7 7840HS
  • Expansion bay graphics module: AMD Radeon™ RX 7700S (1st Gen)
  • 48GB DDR5-5600
  • NVMe SN850X 2TB storage
  • OS: LMDE 6 (Faye) x86_64, Kernel 6.1.0-41-amd64
  • Screens:
    • Dell 19’’ (old), DVI output, can be configured to 75.02 Hz or 60.02 Hz
    • Philips CEC 22’’ (old too) DVI output, locked to 60.00 Hz
    • Samsung 27’’ curved (recent: bought last year), HDMI output, can be configured to 71.91 Hz, 60 Hz, 50 Hz or 59.94 Hz
    • The native Framework Laptop display, configurable to 60.00 Hz or 165.00 Hz
  • Note about the screens: they are all connected to the laptop through a setup that is like “only stuff I could find”:
    • All screens have an output cord that is {their output} → DisplayPort female. That is: two DVI→DisplayPort, and one HDMI→DisplayPort
    • They are all connected to a StarTech DisplayPort 3-screens splitter, with an external power supply.
    • The splitter has a DisplayPort male output, to which I plug a J&D DisplayPort female-to-female coupler
    • Out of this coupler, I have a DisplayPort→USB 3.1 Type-C male cord that I plug to the USB Type-C port on the back of the laptop’s graphics expansion bay, which is documented to correspond to the display output.

So far, the setup works: I can configure all 3 screens conjointedly with the laptop’s display.

Side-note: I have exactly the same setup for my desktop computer, they’re both on the same desk, and I “switch” the display cables when I switch computer: sometimes it’s the USB-C-to-laptop when I’m using it, and when I use the desktop computer, it’s full DisplayPort.

On the desktop computer, everything is fine, and I reported zero crash.

I just reported a few “sync” issues (sometimes the biggest screen isn’t detected), which are quickly fixed by… unplugging and re-plugging the cable :slight_smile:

The issue on the laptop is that “from time to time”, in situations that I still haven’t exactly concretely defined because they’re so diverse, I end up with the following types of issues:

  • Some “burning horizontal lines” appear when the screen’s input is received at first, like when turning the computer on, or when plugging the cable.
  • There are a lot of random sync issues when I turn every peripheral on: sometimes the biggest screen isn’t detected (same issue as the aforementioned desktop computer, but more often), but this part is fixed by unplugging and re-plugging the USB-C cable to the laptop.
  • And the worst part: sometimes, everything “crashes”, and my OS session is reset. This means that every app is SIGKILL/SIGQUIT terminated, and the OS tells me to enter my username and password to log in again. It must be noted that it is not a computer restart: it’s a “session reset”.

The issue I’d like to fix is the last one, because it’s the worst one: I lost some work because of that, and thankfully I’m a developer so I kinda never have “pending unsaved work” (I save everything everytime), and since it doesn’t imply data corruption (or it “just doesn’t yet”…), I mostly lost time, the “todo-list” I had in mind, and the running softwares that I all have to restart.

I searched in the logs by running dmesg -w, and I found stuff like this:

# ...
drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring sdma0 timeout, signaled seq=87027, emitted seq=87029                                          
[drm:amdgpu_job_timedout [amdgpu]] *ERROR* Process information: process  pid 0 thread  pid 0   
# ...
[drm] DPIA AUX failed on 0x600(1), error 7 
# ...
[drm:amdgpu_dm_process_dmub_aux_transfer_sync [amdgpu]] *ERROR* wait_for_completion_timeout timeout!
# ...
amdgpu 0000:c4:00.0: amdgpu: 0000000071c3ca30 pin failed
# ...
[drm:dm_plane_helper_prepare_fb [amdgpu]] ERROR Failed to pin framebuffer with error -12
# ...

I don’t have a lot of knowledge on CPU-related technologies, so I’m not sure where to look to fix this.

Another side-note: since the setup needs a lot of cables, I fear it might create an electrically unstable environment, and I know that if I just move the DisplayPort female-to-female coupler and the 2 cables connected to it, I can encounter a “sync issue”. Maybe this is the main cause? I don’t know :slight_smile:

Any idea? :sweat_smile:

For the sake of bringing more details:

I upgraded my OS to LMDE 7, everything is now “fresh latest”, and it works “better but still messy”.

Neofetch gives me this:

OS: LMDE 7 (gigi) x86_64 
Host: Laptop 16 (AMD Ryzen 7040 Series) AG 
Kernel: 6.12.63+deb13-amd64 
Resolution: 2560x1600 
DE: Cinnamon 6.6.5 
WM: Mutter (Muffin) 
Terminal: tmux 
CPU: AMD Ryzen 7 7840HS w/ Radeon 780M Graphics (16) @ 5.137GHz 
GPU: AMD ATI c4:00.0 Phoenix1 
GPU: AMD ATI Radeon RX 7600/7600 XT/7600M XT/7600S/7700S / PRO W7600 
Memory: 15128MiB / 43953MiB 

(shortened)

I still have frequent flickering, but sometimes for “no reason” it “just works” for a few hours. Then I put my computer to sleep mode, and at reopening, everything is still messing up.

The thing is the kernel 6.12 is already more than a year old. I’d suggest trying a livecd that provides bleeding-edge versions. For example, Fedora rawhide nightly build. It includes the latest 6.18 kernel. Run it for a few hours and observe whether your issues persist.

I’ll wait for ther Kernel 6.18 to be released in Debian 13 before migrating, because it’s not in stable packages yet.

In the meantime, I’ll update to 6.17 and see if anything changes :thinking:

That’s why I suggested a livecd. You don’t have to wait to test it. It also contains many newer packages than Debian stable which might be relevant to your problem.

I installed 6.17 and the flickering lowered, sometimes the laptop started with 6.12 again and I could definitely see the difference (basically: horizontal multicolor strange lines appearing every once in a while on the laptop’s screen, and black screens flickering on the external ones).

Now I just installed 6.18, and right after booting, screens were detected properly, but I still get black-flickers from time to time.

Better, but not perfect…

Something important though: since all my screens are different (and I’m sure it can have to do with that, as well as the complex cable-management to get it all working in the first place), I think the refresh rate must be synchronized. The Framework’s built-in screen could go up to 165Hz, other screens can go from 55Hz to 75Hz, and some have strange ratios (like 75.02Hz, why the 0.02? I don’t know.. :stuck_out_tongue: ). Setting everything to 60Hz (or 60.02Hz for one of them) stabilizes the overall flickering, even though it’s still not perfect.

The strangest thing is that sometimes I can use the whole setup for a few hours without any flickering at all, then I set the laptop on hold or power it off, and when reopening it, flickers all over the place, black screens and stuff, without any reason why :exploding_head: