USB-C DP-Alt-Mode blank screen

Hi,

Got my Framework Desktop last month and super happy with the form factor (apart from the noisy PSU fan which was solved by upping the CPU fan speed).

I run everything through a Thunderbolt 4 cable with DP alt mode through a Sabrent KVM (connected to a Mac Studio on the other port). I initially installed Linux Mint and it worked for a while but then the screen kept going blank and would only sometimes work by rebooting.
I switched to Endeavour OS and found the same issue.

After many hours troubleshooting with my friend, who we’ll call ‘Chad Gippetti’, I finally cracked it that the Display Core is loading in too early which seems to conflict with DP alt mode. I have logged a bug here: https://gitlab.freedesktop.org/drm/amd/-/issues/4940.

If you have this problem, there are a few options but they vary in ugliness.

  1. You can install an alternative TTY display manager and configure it to load X/Wayland after login - this was my approach, I’m using tuigreet - GitHub - apognu/tuigreet: Graphical console greeter for greetd .

  2. You can disable the AMD Display Core entirely: amdgpu.dc=0 I am reliably informed this doesn’t disable the GPU and you can certainly use it for AI and gaming - but there are a few advanced features that would be turned off, such as HDR.

  3. You can continue with the default modern DM and use a DisplayPort cable, until you’ve got past login and then physically switch to USBC DP alt mode (e.g. if you are plugged into a monitor, use the input switch). This just wasn’t acceptable for me as I’ve put a lot of money into my cable minimisation.

I hope this helps if you’re struggling with the same thing, and I hope the bug gets fixed. I accept however that I’m pretty much and edge case!

4 Likes

I encountered the same issue which drove me almost mad because I thought I’m doing something wrong. I’m using a DELL monitor which has an integrated dock, so I connect via a single USB-C cable and all peripherals are connected to the monitor.

I think I found a better work-around that lets me keep PlasmaLogin (using CachyOS).
Simply add this into the systemd service config (systemctl edit plasmalogin.service):

[Service]
ExecStartPre=/usr/bin/sleep 3

This will delay the login screen for 3 seconds and gives enough of time for the DP-Alt-Mode to initialize. I did dozens of reboots and never encountered an issue. It’s an ugly workround, but a working one with no drawback except of 3 seconds additional wait after a reboot.

I’ll try later to see if I can find an initialized state and tap into it to avoid using a static sleep.

However, this issue happens only with the Framework Desktop. With my FW13 Laptop I don’t have any issues. I guess that’s something also Framework should try to address.

Cheers.

This is so bad on Framework’s side. I’ve been having multiple issues with the desktop on Linux myself, including this one. BTW, thank you @GhostingBit for that workaround.