(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:

Hey, coming again for a followup.

TL;DR:

So, to anyone that comes here:

If you want to plug multiple external displays to your Framework Laptop, try using only the same screens, and only USB Type C inputs, to avoid having to couple too many different formats (as a reminder if you haven’t read: I have one VGA screen, another with HDMI, and the last one with DVI-D…).


I upgraded my kernel to 6.19.14, it still lowers the potential issues that I might encounter.

Overall, the setup is unstable but I can make it work at some point. Sometimes, it takes up to 15-20 minutes of rebooting and/or unplugging-replugging cables to make all screens work, but I manage. My goal is still to be able to work at least 7-8 hours in a row, at least two days per week with this setup. And I only use this setup for work (or for linux-only stuff), because the rest of the times I use my personal desktop computer which also uses the same setup (almost flawlessly though).
So far, the compromise of having to wait and jiggle a bit with cables and plugs is still a good compromise for me, since I end up having 4 displays total, with very old screens, so it’s still a win :slight_smile: .

Some indications though: the causes are not of one single origin, I’m now certain of that.

A list of a few remaining issues that must be taken in account:

  • The 3-to-1 DisplayPort hub I’m using might have some unstabilities, because once I had to unplug its external power and re-plug the power cord to make it work.
  • Sometimes, I “just” have to reboot the computer and it works :person_shrugging:.
  • At some other moments, a specific screen doesn’t work, and I have to unplug/re-plug the cable on the screen (but not on the hub).
  • Sometimes, Cinnamon crashes, or so it seems (black screen, mouse still working, other apps working in the background, and opening a new TTY with Ctrl+Alt+F{X} and using htop says that everything else works apart the display), and after multiple rage-computer-shutdown-button, I tried patience: sometimes it takes a few minutes for Cinnamon to synchronize, but it eventually shows the desktop environment again.
  • There is some “multi-color-tearing” on the main screen (the FW Laptop 16 built-in screen), I don’t know where it comes from, could be the graphics card because that’s something I’ve seen when the computer is on heavy load like when I’m heavily 3D-rendering some stuff.
  • Talking about hardware: this setup is SO WEIRD that I initially thought the “last cable” in the chain was flawed (DisplayPort Hub with male DisplayPort output → DisplayPort F-to-F coupler → DisplayPort-to-USC-Type-C cable → USB-Type-C input from the FW Laptop 16).
    In the end, I bought FOUR other DisplayPort->USB-Type-C cables, of different brands, and NONE of them worked. No matter what, only the first cable I bought does work. I tried cheap brands and expensive brands, I tried with “high throughput”, “8K cables” and stuff like that, nothing works. And I forgot what brand is my original cable, so I can’t even recommend one :sweat_smile: (though I might remember at some point, and if I do, I’ll come back here).
  • The issue happens ONLY with the Framework Laptop. Since the global input is one single DisplayPort coupler for all 3 external displays, I have another cable that comes out of my personal desktop computer (on the same desk), which is full DisplayPort, and it works like a charm, no flickering, no tearing, no instability.

I hope this helps someone, and feel free to like this post if it helped, so that I don’t feel like I’m talking to the void :sweat_smile: