Xorg not starting after setting BusID

Hi,

I have a 6800XT and a RX550 in my system. I want the system to use RX550 and only use the 6800XT when called with DRI_PRIME=1. With the automatic config everything in linux itself works fine.

I am currently trying to get a custom xorg.conf to work. Reason for that is that I need a bit more control over witch graphics card is claimed to make it pass-through to a kvm. Currently I am at the step to get the 6800XT ready to be passed through. (I use this as a template: https://www.mups.co.uk/post/2018/08/seamless-gpu-pass-through-on-linux/ )

Having the config like this works fine as well:

# RX550
Section "Device"
    Identifier "amdgpu1"
    Driver "amdgpu"
#    BusID "PCI:e@0:0:0"
EndSection

# RX6800XT
Section "Device"
    Identifier "amdgpu2"
    Driver "amdgpu"
#    BusID "PCI:d@0:0:0"
EndSection

But when I uncomment the BusID-Option XOrg does not start and shows this error in the Xorg.log:

[    10.527]    ABI class: X.Org Video Driver, version 24.1
[    10.527] (II) AMDGPU: Driver for AMD Radeon:
        All GPUs supported by the amdgpu kernel driver
[    10.537] (EE) No devices detected.
[    10.537] (EE)
Fatal server error:
[    10.537] (EE) no screens found(EE)
[    10.537] (EE)

(Full log: https://pastebin.com/mtdNm9pN)

I also tried a lot of stuff of setting the Screen and Layout manually (Full Config I tried https://pastebin.com/de2JeYEM), but the culprit seems to be the BusID. So it would stand to reason that I have goofed up there and put the wrong values in. But when I check lspci this is the output there:

⋊> ~ lspci | grep "VGA"                                                                                                                                                                                                                                                                                             12:55:34
0d:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] (rev c1)
0e:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X] (rev c7)

I am running out of things to consider what the culprit could be. Can anybody give me a hint where I am going wrong?

This looks different to that on the Arch wiki page:

Should it be

BusID "PCI:e:0:0"

instead?

1 Like

I have tried that as well (had that before) but with the same error. The Xorg Manual states that the @0 is optional.

Edit: Just tried it to sanity-check but sadly same result :frowning:

1 Like

Just for someone who finds this.

My hacky solution for my specific usecase was to just leave out the BusID. It seems to be consistent for my setup that the first Device Section always relates to my 550 while the second one always to the 6800xt. So I trust xorg in that regard to get it right every time for now. I can use the gpu with DRI_PRIME after bootup, and can pass it to a kvm. If i want to DRI_PRIME after it was passed through once, even if the vm is shut down, I need to restart my machine, as that unloads the amdgpu-driver.

Not clean, and might break anytime, as it might be a racing condition over which gpu reports first, but for now it works, kinda.

1 Like