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.0breaks down intoc4,00, and0respectively.c4→19600→00→0- Put these values back together for the
BusIDto be set toPCI: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!