Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Dec 2023 22:29:15 +0000
From:      bugzilla-noreply@freebsd.org
To:        doc@FreeBSD.org
Subject:   [Bug 275876] FreeBSD Handbook: The X Window System: 5.4.3. Video Cards: Use of BusID appears wrong
Message-ID:  <bug-275876-9@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D275876

            Bug ID: 275876
           Summary: FreeBSD Handbook: The X Window System: 5.4.3. Video
                    Cards: Use of BusID appears wrong
           Product: Documentation
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Books & Articles
          Assignee: doc@FreeBSD.org
          Reporter: david@catwhisker.org

The section of
https://docs.freebsd.org/en/books/handbook/x11/#x-graphic-card-drivers after
"To configure multiple video cards, the BusID can be added. A list of video
card bus IDs can be displayed by executing:" shows:

The output should be similar to the following:

vgapci0@pci0:0:2:0:     class=3D0x030000 rev=3D0x07 hdr=3D0x00 vendor=3D0x8=
086
device=3D0x2a42 subvendor=3D0x17aa subdevice=3D0x20e4
    vendor     =3D 'Intel Corporation'
    device     =3D 'Mobile 4 Series Chipset Integrated Graphics Controller'
    class      =3D display
--
vgapci1@pci0:0:2:1:     class=3D0x038000 rev=3D0x07 hdr=3D0x00 vendor=3D0x8=
086
device=3D0x2a43 subvendor=3D0x17aa subdevice=3D0x20e4
    vendor     =3D 'Intel Corporation'
    device     =3D 'Mobile 4 Series Chipset Integrated Graphics Controller'
    class      =3D display

(which is fine), but then shows:
Example 6. Select Intel=C2=AE Video Driver and NVIDIA=C2=AE Video Driver in=
 a File

/usr/local/etc/X11/xorg.conf.d/20-drivers.conf

Section "Device"
        Identifier "Card0"
        Driver     "intel"
        BusID     "pci0:0:2:0"
EndSection

Section "Device"
        Identifier "Card0"
        Driver     "nvidia"
        BusID     "pci0:0:2:1"
EndSection

(which appears to be syntactically incorrect).

In my case, the pciconf output is:g1-70(14.0-S)[1] pciconf -lv | grep -B4 V=
GA
vgapci1@pci0:0:2:0:     class=3D0x030000 rev=3D0x06 hdr=3D0x00 vendor=3D0x8=
086
device=3D0x0416 subvendor=3D0x1028 subdevice=3D0x05cc
    vendor     =3D 'Intel Corporation'
    device     =3D '4th Gen Core Processor Integrated Graphics Controller'
    class      =3D display
    subclass   =3D VGA
--
vgapci0@pci0:1:0:0:     class=3D0x030000 rev=3D0xa1 hdr=3D0x00 vendor=3D0x1=
0de
device=3D0x11fc subvendor=3D0x1028 subdevice=3D0x15cc
    vendor     =3D 'NVIDIA Corporation'
    device     =3D 'GK106GLM [Quadro K2100M]'
    class      =3D display
    subclass   =3D VGA
g1-70(14.0-S)[2]

When I tried bringing up X11 with no configuration files at all, that failed
(as documented in xorg.conf(5), under BusID: "In multi-head configurations,=
 or
when using a secondary graphics card in a single-head configuration, this e=
ntry
is mandatory.").

When I tried using the precise syntax from `pciconf -lv` in the BusID, Xorg
failed to recognize it at all.

The above xorg.conf(5) page documents the syntax for BusID as:
| PCI:bus@domain:device:function (e.g., =E2=80=9CPCI:1@0:0:0=E2=80=9D....

while pciconf(8) documents the displayed "selector" as:
| ... Selectors identify a PCI device by its address
|     in PCI config space and can take one of the following forms:
|
|           =E2=80=A2   pcidomain:bus:device:function
|           =E2=80=A2   pcibus:device:function
|           =E2=80=A2   pcibus:device
|
|     In the case of an abridged form, omitted selector components are assu=
med
|     to be 0.

So: while pciconf may well append a numeral to the literal "pci", that's no=
t a
valid syntax for Xorg.  And there appears to be a potential for a bit
"shuffling" of the selector component IDs.

What brought me here is that, now that I have switched from only using
x11/nvidia-driver-390 (running stable/12) to also using i915kms (running
stable/14), Xorg itself "works," but I no longer have GLX, so I can't even =
run
nvidia-settings (for example):  This, from Xorg.log:
[ 30222.667] (II) Platform probe for /dev/dri/card0
[ 30222.682] (!!) More than one possible primary device found
[ 30222.682] (--) PCI: (0@0:2:0) 8086:0416:1028:05cc rev 6, Mem @
0xf5400000/4194304, 0xd0000000/268435456, I/O @ 0x0000f000/64, BIOS @
0x????????/65536
[ 30222.682] (--) PCI: (1@0:0:0) 10de:11fc:1028:15cc rev 161, Mem @
0xf4000000/16777216, 0xe0000000/268435456, 0xf0000000/33554432, I/O @
0x0000e000/128, BIOS @ 0x????????/65536
[ 30222.682] (II) LoadModule: "glx"
...
...
[ 30222.868] (II) Initializing extension GLX
[ 30222.868] (EE) Failed to initialize GLX extension (Compatible NVIDIA X
driver not found)
[ 30222.868] (II) modeset(0): Damage tracking initialized
....

and with stable/14, the i915kms is required in order to get suspend/resume =
to
work on the laptop.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-275876-9>