11

From the output of lspci how do I interpret the BUSID for xorg.conf.d ?

Example:

00:02.0 VGA compatible controller: Intel Corporation Skylake GT2 [HD Graphics 520] (rev 07)

01:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Sun XT [Radeon HD 8670A/8670M/8690M / R5 M330 / M430 / Radeon 520 Mobile] (rev 83)

How do I write the BUSID for the AMD card ?

Is this correct ? BUSID PCI 0@1:00:0

2 Answers 2

8

In your lspci output, 01:00.0 means bus 1, device 0, function 0, which maps to a BusID specifier of PCI:1:0:0 (without specifying the domain):

BusID "PCI:1:0:0"

See the xorg.conf documentation for details.

5

For PCI/AGP cards, the bus-id string has the form PCI:bus@domain:device:function (e.g., “PCI:1@0:0:0” might be appropriate for an AGP card).

But now you're wondering about the domain, and the xorg.conf official documentation only lets you know you don't need it unless you do.

We'll find the domain using the "lspci" script, with the -s switch. The "-s" switch has filter "[[[[domain]:]bus]:][slot][.[func]]". Domains are numbered from 0 to ffff), bus (0 to ff), slot (0 to 1f) and function (0 to 7).

So for your example, test domain 0, bus 1, slot 0 (if no .func, it searches all func).

lspci -s 0:1:0

If the output is your card, then the final form is

BusID "PCI:1@0:0:0"

Notice the bus@domain, not domain@bus. For most motherboards, the truth is the domain will always be 0. I have two cards and one is on bus 1, the other bus 7, but they are both on domain 0. I suspect domain > 0 means you have a pcie fabric switches, but I'm not sure.

1
  • Note that lscpi will output numerical values in hex while X expects them in decimal. lspci | grep Radeon | cut -d' ' -f1 ==> 24:00.0 corresponds to BusID "PCI:36@0:0:0".
    – Bruce
    Jul 29, 2023 at 2:04

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .