SDDM Blank Screen FIX

When I first recieved my Framework 16 (Ryzen AI 300) laptop, I found that SDDM was having trouble starting. I went through thinking it was a package problem when I finally figured out it was a GPU error causing it to draw a blank screen.

All of this was done on an Arch Linux install, but I assume it should work on other distros as well. This should also work for anyone with any GPU config, here’s my fix:

Create and edit a new file that exists here: /etc/X11/xorg.conf.d/10-amdgpu-primary.conf

Section "Device"
    Identifier  "AMD Display GPU"
    Driver      "amdgpu"
    BusID       "PCI:196:0:0"
    Option      "PrimaryGPU" "true"
EndSection

It’s as simple as that. Just restart sddm and it should work.

This sets the default X11 gpu to be the iGPU for the Ryzen AI 300 chip. I’m unsure if this applies to the Ryzen 7040 series exactly the same, but you can replace the BusID using lspci -vmm and searching for a section that looks similar to this:

Slot:   c4:00.0
Class:  Display controller
Vendor: Advanced Micro Devices, Inc. [AMD/ATI]
Device: Krackan [Radeon 840M / 860M Graphics]
SVendor:        Framework Computer Inc.
SDevice:        Device 000d
Rev:    c2
ProgIf: 00
IOMMUGroup:     22

The key thing to search for is the class being Display controller and the device matching the iGPU’s general name.

The Slot value is what you want to use for the BusID in the X11 config file. Convert each hexadecimal value in the Slot value to decimal, which for this case, would visualize like so:

  • c4:00.0 breaks down into c4, 00, and 0 respectively.
  • c4196
  • 000
  • 00
  • Put these values back together for the BusID to be set to PCI:196:0:0.

Be sure your all of your gpu modules are loaded correctly as well before attempting as I tested this method on a completely different laptop running an intel iGPU and an NVIDIA dGPU, and because the NVIDIA dGPU was not fully working, it stopped sddm from displaying even though I set it to use the intel iGPU.

Hope this helps those out having the same problem!
Cheers!

2 Likes

do you have a fix for when it comes to GNOME? since i use zorin os and it also goes black screen for like 32 seconds before bios logo shows up and it boots up into linux. If this now what you are referring too?

Update: you probably referring to a game now arent you? if so then dang it thought this was for boot delay problem.

No this is for SDDM which is used on KDE Plasma as the login manager (for now, will be replaced with plasma-login-manager in Plasma 6.6). Your issue is something totally different if it “hangs” on boot, or is slow to boot

1 Like

rats :confused: well it’s back on suspecting bios issue then, Since FW Desktop has delay on booting linux too so yeah.

kinda annoying having to wait aprox 31-32 seconds before framework logo appears and then loading animation from linux os. Before that screen is completely black.

I have been having this EXACT same issue! Thank you so much for this Blockyheadman! By blind inputting my password into SDDM I’ve been getting into KDE, but I’ve been banging my head on this for a while. I was incorrectly focused on the fact that the system was not reading the monitor details (dmesg indicated this).

1 Like

Just wanted to elaborate on this for those who are unfamiliar with hexadecimal and have different values.

The “printf” command line tool is a quick way to convert:

printf “%d\n” 0xc4

If you’re unfamiliar with printf syntax (and really, if you’re unfamiliar with hexadecimal then this is probably the case), a wrapper can be added to ~/.bashrc :

hex2dec () {
printf “%d\n” “0x$1”
}

But back on topic, on my AI 300 the value is C5:0.0 (197) for the 890M, while the Radeon 7700 is on C4:0.0. This xorg.conf change might solve my X11 issue reported in another thread - when I finally get caught up on work, I’ll reboot and give it a go (/dev/nvme0n1 disappeared five days ago! I thought that BIOS bug was fixed!)

1 Like

I later realized when working on a different Framework 16 that had the Ryzen 9 AI Series chip that the iGPU was located on that system at “c5:00.0”. My personal system is the Ryzen 7 tier with an RX 7700S dGPU which led me to my iGPU being at “c4:00.0”.

Confirmed. This fixed X Windows just booting to a black screen on the Ryzen AI.

I am much obliged, my good fellow - I can now use Enlightenment again.