2

After spending a lot of time dicking around with xrandr, I found a solution that "works" for me.

I'm using this forum as a means to provide others the solution to my problem, as well as to ask my own questions about certain things I don't understand.

Setup:

  • 2x Nvidia GT 630 (each with 2x DVI 1x HDMI)
  • 3x Monitors (2x Acer 1680x1050 (DVI) & 1x LG 1680x1050 (DVI))
  • Debian 8.6 default install (GnomeDesktop Manager 3)
  • Nouveau drivers (from default install)

I have 1 Acer and 1 LG attached to Card 1. Default install has them functioning perfectly as a seamless desktop. Last Acer on Card 2 is not detected in GDM and is non-functional. It IS detected deeper in the system, using some BASH magic I grabbed from someone who knows what they're doing:

ls /sys/class/drm/*/status | xargs -I {} -i bash -c "echo -n {}: ; cat {}"

/sys/class/drm/card0-DVI-I-1/status:connected
/sys/class/drm/card0-DVI-I-2/status:connected
/sys/class/drm/card0-HDMI-A-1/status:disconnected
/sys/class/drm/card1-DVI-I-3/status:connected
/sys/class/drm/card1-DVI-I-4/status:disconnected
/sys/class/drm/card1-HDMI-A-2/status:disconnected

I start by typing

xrandr --listproviders

and get

Providers: number : 2
Provider 0: id: 0x64 cap: 0x7, Source Output, Sink Output, Source Offload crtcs: 2 outputs: 3 associated providers: 1 name:nouveau
Provider 1: id: 0x36a cap: 0x2, Sink Output crtcs: 2 outputs: 3 associated providers: 1 name:modesetting

Right away you can see that Provider 0 has it's "name" entry set to "nouveau" and Provider 1 "name" entry set to "modesetting"

I'm quite sure each provider is its own discrete graphics card. Why is one set to "use" nouveau and the other modesetting (presumably KernelModesetting)? Nouveau is supposed to run above KMS...

Dmesg shows me that both cards are running with nouveau...

Typing

xrandr --setprovideroutputsource nouveau nouveau

appears to force both "name" entries on both providers to "nouveau". X immediately reboots (or crashes) and I'm brought back to the login screen.

After logging in, in an X terminal I type:

xrandr --listproviders

and get confirmation:

Providers: number : 2
Provider 0: id: 0xbf cap: 0x7, Source Output, Sink Output, Source Offload crtcs: 2 outputs: 3 associated providers: 0 name:nouveau
Provider 1: id: 0x64 cap: 0x7, Source Output, Sink Output, Source Offload crtcs: 2 outputs: 3 associated providers: 0 name:nouveau

Both cap entries are the same. Why is this? What does cap mean?

From here I can actually enable xrandr to talk to the second card (Provider 1):

xrandr --setprovideroutputsource 1 0

Now the extra DVI and HDMI ports will show up when I type:

xrandr

From here I enable the 3rd monitor with:

xrandr --output DVI-I-1-3 –auto

(Because my 3rd monitor resides on DVI-I-1-3)

I can instead choose to do enable the monitor via the GDM GUI app under settings.

From here some more xrandr output positioning commands or GUI manipulation will get my monitor where it should be relative to the others, and everything works. Now I have to wrap all these commands up in a script because xrandr does not save settings on reboot. I'll discuss the script in a later post when I get it working.

Some problems currently are poor graphical performance when moving windows around and sometimes the mouse freezes for a couple seconds at a time. The proprietary Nvidia drivers might fix this, but other solutions are most welcome.

I can't help but think that I've gone about this wrong and that there's a “better” way to achieve what I've just done while still using xrandr (I've also tried a custom xorg.conf using ZaphodHeads without results). Why did I have to type:

xrandr --setprovideroutputsource nouveau nouveau

To setup the rest of the commands in the first place?

Xrandr –help

Shows:

--setprovideroutputsource  <prov-xid> <source-xid>

Where can I find a list of source-xid's?

Why are the DVI ports labeled differently between xrandr and /sys/class/drm/ ?

  • 1
    (1) This may be splitting hairs, but Stack Exchange is not a “forum”; we’re a question & answer site.  …  (2) …  therefore, we’re happy that you want to ask and answer questions here. That’s what the site is for. (3) Please take the site tour.  It mentions that you shouldn’t ask about questions that would require an extremely long answer. Similarly, we discourage extremely long questions. Please focus on one question at a time. (edit your question to narrow its scope.) – Scott Jan 16 '17 at 5:18
  • My main question would be how to get xrandr to view both graphics cards as running under nouveau; Debian 8.6 doesn't seem to do this out of the box. This is hell for a newbie trying to create a script as the X server has to be rebooted mid-script for all of the above to work! – ademca Jan 16 '17 at 23:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.