2 NVidia cards & 3 or more displays without NVidia's proprietary drivers
by mrmazda from LinuxQuestions.org on (#5SJWR)
In trying to help someone solve his problem with 4 displays across 2 NVidia cards, I thought I'd try to reproduce with 3 displays across 2 NVidia cards, but with FOSS only. Normally I make do with either the IGP or one card when I need 3 displays, so this is not a configuration I'm at all familiar with.
On openSUSE Leap 15.3 I got a pair of old NVidia cards to produce a nice extended desktop across three displays using only default X settings, purely automagically:Code:# inxi -Sy
System:
Host: ga970 Kernel: 5.3.18-59.34-default x86_64 bits: 64
Desktop: Trinity R14.0.11 Distro: openSUSE Leap 15.3
# inxi -Gayz
Graphics:
Device-1: NVIDIA GF108 [GeForce GT 630] vendor: Gigabyte driver: nouveau
v: kernel bus-ID: 01:00.0 chip-ID: 10de:0f00 class-ID: 0300
Device-2: NVIDIA G84 [GeForce 8600 GT] vendor: XFX Pine driver: nouveau
v: kernel bus-ID: 05:00.0 chip-ID: 10de:0402 class-ID: 0300
Display: x11 server: X.Org 1.20.3 driver: loaded: modesetting
unloaded: fbdev,vesa alternate: nouveau,nv,nvidia display-ID: :0 screens: 1
Screen-1: 0 s-res: 6400x1200 s-dpi: 120 s-size: 1354x254mm (53.3x10.0")
s-diag: 1378mm (54.2")
Monitor-1: DVI-I-2 res: 1920x1200 hz: 60 dpi: 94
size: 519x324mm (20.4x12.8") diag: 612mm (24.1")
Monitor-2: DVI-I-3 res: 2560x1080 hz: 60 dpi: 97
size: 673x284mm (26.5x11.2") diag: 730mm (28.8")
Monitor-3: HDMI-1-1 res: 1920x1080 hz: 60 dpi: 70
size: 700x390mm (27.6x15.4") diag: 801mm (31.5")
OpenGL: renderer: NV84 v: 3.3 Mesa 20.2.4 direct render: Yes
# xrandr | egrep 'onnect|creen|\*' | grep -v disconn | sort -r
Screen 0: minimum 320 x 200, current 6400 x 1200, maximum 8192 x 8192
HDMI-1-1 connected 1920x1080+4480+0 (normal left inverted right x axis y axis) 700mm x 390mm
DVI-I-3 connected 2560x1080+1920+0 (normal left inverted right x axis y axis) 673mm x 284mm
DVI-I-2 connected primary 1920x1200+0+0 (normal left inverted right x axis y axis) 519mm x 324mm
2560x1080 60.00*+
1920x1200 59.95*+
1920x1080 60.00*+ 60.00 50.00 59.94 59.93
#I didn't actually have to do anything to make this work. All I had to do was plug the cards in the right slots, and not have any optional display drivers installed. This is the resulting Xorg.0.log.
It's not so simple in TW on same PC using otherwise same settings (e.g.: only defaults). So far I have yet to determine how to get the #2 GPU to both show up as a usable provider and have both GPUs lighting the three displays all at once in TW:Code:## TW 20211128
# xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x42; cap: 0x2 (Sink Output); crtcs: 2; outputs: 2; associated providers: 0; name: modesetting
output DVI-I-2
output DVI-I-3
Provider 1: id: 0xdb; cap: 0x2 (Sink Output); crtcs: 2; outputs: 3; associated providers: 0; name: modesetting
output 0xd8
output 0xd9
output 0xda
## 15.3
# xrandr --listproviders
Providers: number : 2
Provider 0: id: 0xec; cap: 0xf (Source Output, Sink Output, Source Offload, Sink Offload); crtcs: 2; outputs: 2; associated providers: 1; name: modesetting
output DVI-I-2
output DVI-I-3
Provider 1: id: 0x44; cap: 0xf (Source Output, Sink Output, Source Offload, Sink Offload); crtcs: 2; outputs: 3; associated providers: 1; name: modesetting
output DVI-I-1-1
output HDMI-1-1
output VGA-1-1I tried setting up using /etc/X11/xorg.conf.d/ in TW. This improved output recognition:Code:# xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x43; cap: 0xf (Source Output, Sink Output, Source Offload, Sink Offload); crtcs: 2; outputs: 3; associated providers: 1; name: modesetting
output DVI-I-1
output HDMI-1
output VGA-1
Provider 1: id: 0xea; cap: 0xf (Source Output, Sink Output, Source Offload, Sink Offload); crtcs: 2; outputs: 2; associated providers: 1; name: modesetting
output DVI-I-1-2
output DVI-I-1-3However, instead of the two DVI connections working as expected with the HDMI blank (no input signal), the HDMI port's display lights up, and the other two go ("no signal") black, producing this Xorg.0.log. Similar attempts with Debian Bullseye, Fedora 35 and Mageia have been similarly fruitless.
TW does initially light up all three displays to login prompts on the vttys, just not X. Once the greeter appears on vtty7, a return to any of the other vttys only lights up the same two displays as X.
My most recent iteration of /etc/xorg.conf can be found here.
If anyone is familiar with successful configuration via /etc/X11/xorg.con* for dual GPUs using only FOSS, I'd much appreciate seeing the config file(s) used.
On openSUSE Leap 15.3 I got a pair of old NVidia cards to produce a nice extended desktop across three displays using only default X settings, purely automagically:Code:# inxi -Sy
System:
Host: ga970 Kernel: 5.3.18-59.34-default x86_64 bits: 64
Desktop: Trinity R14.0.11 Distro: openSUSE Leap 15.3
# inxi -Gayz
Graphics:
Device-1: NVIDIA GF108 [GeForce GT 630] vendor: Gigabyte driver: nouveau
v: kernel bus-ID: 01:00.0 chip-ID: 10de:0f00 class-ID: 0300
Device-2: NVIDIA G84 [GeForce 8600 GT] vendor: XFX Pine driver: nouveau
v: kernel bus-ID: 05:00.0 chip-ID: 10de:0402 class-ID: 0300
Display: x11 server: X.Org 1.20.3 driver: loaded: modesetting
unloaded: fbdev,vesa alternate: nouveau,nv,nvidia display-ID: :0 screens: 1
Screen-1: 0 s-res: 6400x1200 s-dpi: 120 s-size: 1354x254mm (53.3x10.0")
s-diag: 1378mm (54.2")
Monitor-1: DVI-I-2 res: 1920x1200 hz: 60 dpi: 94
size: 519x324mm (20.4x12.8") diag: 612mm (24.1")
Monitor-2: DVI-I-3 res: 2560x1080 hz: 60 dpi: 97
size: 673x284mm (26.5x11.2") diag: 730mm (28.8")
Monitor-3: HDMI-1-1 res: 1920x1080 hz: 60 dpi: 70
size: 700x390mm (27.6x15.4") diag: 801mm (31.5")
OpenGL: renderer: NV84 v: 3.3 Mesa 20.2.4 direct render: Yes
# xrandr | egrep 'onnect|creen|\*' | grep -v disconn | sort -r
Screen 0: minimum 320 x 200, current 6400 x 1200, maximum 8192 x 8192
HDMI-1-1 connected 1920x1080+4480+0 (normal left inverted right x axis y axis) 700mm x 390mm
DVI-I-3 connected 2560x1080+1920+0 (normal left inverted right x axis y axis) 673mm x 284mm
DVI-I-2 connected primary 1920x1200+0+0 (normal left inverted right x axis y axis) 519mm x 324mm
2560x1080 60.00*+
1920x1200 59.95*+
1920x1080 60.00*+ 60.00 50.00 59.94 59.93
#I didn't actually have to do anything to make this work. All I had to do was plug the cards in the right slots, and not have any optional display drivers installed. This is the resulting Xorg.0.log.
It's not so simple in TW on same PC using otherwise same settings (e.g.: only defaults). So far I have yet to determine how to get the #2 GPU to both show up as a usable provider and have both GPUs lighting the three displays all at once in TW:Code:## TW 20211128
# xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x42; cap: 0x2 (Sink Output); crtcs: 2; outputs: 2; associated providers: 0; name: modesetting
output DVI-I-2
output DVI-I-3
Provider 1: id: 0xdb; cap: 0x2 (Sink Output); crtcs: 2; outputs: 3; associated providers: 0; name: modesetting
output 0xd8
output 0xd9
output 0xda
## 15.3
# xrandr --listproviders
Providers: number : 2
Provider 0: id: 0xec; cap: 0xf (Source Output, Sink Output, Source Offload, Sink Offload); crtcs: 2; outputs: 2; associated providers: 1; name: modesetting
output DVI-I-2
output DVI-I-3
Provider 1: id: 0x44; cap: 0xf (Source Output, Sink Output, Source Offload, Sink Offload); crtcs: 2; outputs: 3; associated providers: 1; name: modesetting
output DVI-I-1-1
output HDMI-1-1
output VGA-1-1I tried setting up using /etc/X11/xorg.conf.d/ in TW. This improved output recognition:Code:# xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x43; cap: 0xf (Source Output, Sink Output, Source Offload, Sink Offload); crtcs: 2; outputs: 3; associated providers: 1; name: modesetting
output DVI-I-1
output HDMI-1
output VGA-1
Provider 1: id: 0xea; cap: 0xf (Source Output, Sink Output, Source Offload, Sink Offload); crtcs: 2; outputs: 2; associated providers: 1; name: modesetting
output DVI-I-1-2
output DVI-I-1-3However, instead of the two DVI connections working as expected with the HDMI blank (no input signal), the HDMI port's display lights up, and the other two go ("no signal") black, producing this Xorg.0.log. Similar attempts with Debian Bullseye, Fedora 35 and Mageia have been similarly fruitless.
TW does initially light up all three displays to login prompts on the vttys, just not X. Once the greeter appears on vtty7, a return to any of the other vttys only lights up the same two displays as X.
My most recent iteration of /etc/xorg.conf can be found here.
If anyone is familiar with successful configuration via /etc/X11/xorg.con* for dual GPUs using only FOSS, I'd much appreciate seeing the config file(s) used.