Max number of monitors supported?

Hello Linux world!

I’ve run into my first problem that I don’t think I can solve on my own. I have 6 monitors hooked up to 3 different graphics cards using displayport (not daisy chained). They are all the same model graphics cards (Nvidia NVS 310 DisplayPort 1.2). I’ve been using Xrandr to configure my screens but the issue I’m having is that only 4 will work at once in secondary monitor/extended screen mode. I have successfully enabled mirrored mode on all 6 monitors at once but when I try to extend my desktop to all 6 my x-server crashes. Right now I can use extended desktop with any four monitors I’d like as long as 2 are shut off.

Anyone else have this issue or know what is limiting me?

Xrandr config below.


Screen 0: minimum 320 x 200, current 5760 x 2160, maximum 8192 x 8192
DP-1 connected primary 1920x1080+1920+1080 (normal left inverted right x axis y axis) 510mm x 278mm
   1920x1080     60.00*+  50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1600x1200     60.00  
   1680x1050     59.95  
   1280x1024     60.02  
   1440x900      59.89  
   1280x960      60.00  
   1280x800      59.81  
   1280x720      60.00    50.00    59.94  
   1024x768      60.00  
   800x600       60.32    56.25  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       60.00    59.94  
DP-2 connected 1920x1080+1920+0 (normal left inverted right x axis y axis) 510mm x 278mm
   1920x1080     60.00*+  50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1600x1200     60.00  
   1680x1050     59.95  
   1280x1024     60.02  
   1440x900      59.89  
   1280x960      60.00  
   1280x800      59.81  
   1280x720      60.00    50.00    59.94  
   1024x768      60.00  
   800x600       60.32    56.25  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       60.00    59.94  
DP-2-5 connected 1920x1080+3840+1080 510mm x 278mm
   1920x1080     60.00*+  50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1600x1200     60.00  
   1680x1050     59.95  
   1280x1024     60.02  
   1440x900      59.89  
   1280x960      60.00  
   1280x800      59.81  
   1280x720      60.00    50.00    59.94  
   1024x768      60.00  
   800x600       60.32    56.25  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       60.00    59.94  
DP-2-6 connected
   1920x1080     60.00 +  50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1600x1200     60.00  
   1680x1050     59.95  
   1280x1024     60.02  
   1440x900      59.89  
   1280x960      60.00  
   1280x800      59.81  
   1280x720      60.00    50.00    59.94  
   1024x768      60.00  
   800x600       60.32    56.25  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       60.00    59.94  
DP-1-3 connected
   1920x1080     60.00 +  50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1600x1200     60.00  
   1680x1050     59.95  
   1280x1024     60.02  
   1440x900      59.89  
   1280x960      60.00  
   1280x800      59.81  
   1280x720      60.00    50.00    59.94  
   1024x768      60.00  
   800x600       60.32    56.25  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       60.00    59.94  
DP-1-4 connected 1920x1080+0+1080 510mm x 278mm
   1920x1080     60.00*+  50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1600x1200     60.00  
   1680x1050     59.95  
   1280x1024     60.02  
   1440x900      59.89  
   1280x960      60.00  
   1280x800      59.81  
   1280x720      60.00    50.00    59.94  
   1024x768      60.00  
   800x600       60.32    56.25  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       60.00    59.94  
  1920x1080 (0x64) 148.500MHz
        h: width  1920 start 2008 end 2052 total 2200 skew    0 clock  67.50KHz
        v: height 1080 start 1084 end 1089 total 1125           clock  60.00Hz
  1920x1080 (0x65) 148.500MHz
        h: width  1920 start 2448 end 2492 total 2640 skew    0 clock  56.25KHz
        v: height 1080 start 1084 end 1089 total 1125           clock  50.00Hz
  1920x1080 (0x66) 148.352MHz
        h: width  1920 start 2008 end 2052 total 2200 skew    0 clock  67.43KHz
        v: height 1080 start 1084 end 1089 total 1125           clock  59.94Hz
  1920x1080i (0x67) 74.250MHz
        h: width  1920 start 2008 end 2052 total 2200 skew    0 clock  33.75KHz
        v: height 1080 start 1084 end 1094 total 1125           clock  60.00Hz
  1920x1080i (0x68) 74.250MHz
        h: width  1920 start 2448 end 2492 total 2640 skew    0 clock  28.12KHz
        v: height 1080 start 1084 end 1094 total 1125           clock  50.00Hz
  1920x1080i (0x69) 74.176MHz
        h: width  1920 start 2008 end 2052 total 2200 skew    0 clock  33.72KHz
        v: height 1080 start 1084 end 1094 total 1125           clock  59.94Hz
  1600x1200 (0x6a) 162.000MHz
        h: width  1600 start 1664 end 1856 total 2160 skew    0 clock  75.00KHz
        v: height 1200 start 1201 end 1204 total 1250           clock  60.00Hz
  1680x1050 (0x6b) 146.250MHz
        h: width  1680 start 1784 end 1960 total 2240 skew    0 clock  65.29KHz
        v: height 1050 start 1053 end 1059 total 1089           clock  59.95Hz
  1280x1024 (0x6c) 108.000MHz
        h: width  1280 start 1328 end 1440 total 1688 skew    0 clock  63.98KHz
        v: height 1024 start 1025 end 1028 total 1066           clock  60.02Hz
  1440x900 (0x6d) 106.500MHz
        h: width  1440 start 1520 end 1672 total 1904 skew    0 clock  55.93KHz
        v: height  900 start  903 end  909 total  934           clock  59.89Hz
  1280x960 (0x6e) 108.000MHz
        h: width  1280 start 1376 end 1488 total 1800 skew    0 clock  60.00KHz
        v: height  960 start  961 end  964 total 1000           clock  60.00Hz
  1280x800 (0x6f) 83.500MHz
        h: width  1280 start 1352 end 1480 total 1680 skew    0 clock  49.70KHz
        v: height  800 start  803 end  809 total  831           clock  59.81Hz
  1280x720 (0x70) 74.250MHz
        h: width  1280 start 1390 end 1430 total 1650 skew    0 clock  45.00KHz
        v: height  720 start  725 end  730 total  750           clock  60.00Hz
  1280x720 (0x71) 74.250MHz
        h: width  1280 start 1720 end 1760 total 1980 skew    0 clock  37.50KHz
        v: height  720 start  725 end  730 total  750           clock  50.00Hz
  1280x720 (0x72) 74.176MHz
        h: width  1280 start 1390 end 1430 total 1650 skew    0 clock  44.96KHz
        v: height  720 start  725 end  730 total  750           clock  59.94Hz
  1024x768 (0x73) 65.000MHz
        h: width  1024 start 1048 end 1184 total 1344 skew    0 clock  48.36KHz
        v: height  768 start  771 end  777 total  806           clock  60.00Hz
  800x600 (0x74) 40.000MHz
        h: width   800 start  840 end  968 total 1056 skew    0 clock  37.88KHz
        v: height  600 start  601 end  605 total  628           clock  60.32Hz
  800x600 (0x75) 36.000MHz
        h: width   800 start  824 end  896 total 1024 skew    0 clock  35.16KHz
        v: height  600 start  601 end  603 total  625           clock  56.25Hz
  720x576 (0x76) 27.000MHz
        h: width   720 start  732 end  796 total  864 skew    0 clock  31.25KHz
        v: height  576 start  581 end  586 total  625           clock  50.00Hz
  720x480 (0x77) 27.027MHz
        h: width   720 start  736 end  798 total  858 skew    0 clock  31.50KHz
        v: height  480 start  489 end  495 total  525           clock  60.00Hz
  720x480 (0x78) 27.000MHz
        h: width   720 start  736 end  798 total  858 skew    0 clock  31.47KHz
        v: height  480 start  489 end  495 total  525           clock  59.94Hz
  640x480 (0x79) 25.200MHz
        h: width   640 start  656 end  752 total  800 skew    0 clock  31.50KHz
        v: height  480 start  490 end  492 total  525           clock  60.00Hz
  640x480 (0x7a) 25.175MHz
        h: width   640 start  656 end  752 total  800 skew    0 clock  31.47KHz
        v: height  480 start  490 end  492 total  525           clock  59.94Hz
  1920x1080 (0x64) 148.500MHz
        h: width  1920 start 2008 end 2052 total 2200 skew    0 clock  67.50KHz
        v: height 1080 start 1084 end 1089 total 1125           clock  60.00Hz
  1920x1080 (0x65) 148.500MHz
        h: width  1920 start 2448 end 2492 total 2640 skew    0 clock  56.25KHz
        v: height 1080 start 1084 end 1089 total 1125           clock  50.00Hz
  1920x1080 (0x66) 148.352MHz
        h: width  1920 start 2008 end 2052 total 2200 skew    0 clock  67.43KHz
        v: height 1080 start 1084 end 1089 total 1125           clock  59.94Hz
  1920x1080i (0x67) 74.250MHz
        h: width  1920 start 2008 end 2052 total 2200 skew    0 clock  33.75KHz
        v: height 1080 start 1084 end 1094 total 1125           clock  60.00Hz
  1920x1080i (0x68) 74.250MHz
        h: width  1920 start 2448 end 2492 total 2640 skew    0 clock  28.12KHz
        v: height 1080 start 1084 end 1094 total 1125           clock  50.00Hz
  1920x1080i (0x69) 74.176MHz
        h: width  1920 start 2008 end 2052 total 2200 skew    0 clock  33.72KHz
        v: height 1080 start 1084 end 1094 total 1125           clock  59.94Hz
  1600x1200 (0x6a) 162.000MHz
        h: width  1600 start 1664 end 1856 total 2160 skew    0 clock  75.00KHz
        v: height 1200 start 1201 end 1204 total 1250           clock  60.00Hz
  1680x1050 (0x6b) 146.250MHz
        h: width  1680 start 1784 end 1960 total 2240 skew    0 clock  65.29KHz
        v: height 1050 start 1053 end 1059 total 1089           clock  59.95Hz
  1280x1024 (0x6c) 108.000MHz
        h: width  1280 start 1328 end 1440 total 1688 skew    0 clock  63.98KHz
        v: height 1024 start 1025 end 1028 total 1066           clock  60.02Hz
  1440x900 (0x6d) 106.500MHz
        h: width  1440 start 1520 end 1672 total 1904 skew    0 clock  55.93KHz
        v: height  900 start  903 end  909 total  934           clock  59.89Hz
  1280x960 (0x6e) 108.000MHz
        h: width  1280 start 1376 end 1488 total 1800 skew    0 clock  60.00KHz
        v: height  960 start  961 end  964 total 1000           clock  60.00Hz
  1280x800 (0x6f) 83.500MHz
        h: width  1280 start 1352 end 1480 total 1680 skew    0 clock  49.70KHz
        v: height  800 start  803 end  809 total  831           clock  59.81Hz
  1280x720 (0x70) 74.250MHz
        h: width  1280 start 1390 end 1430 total 1650 skew    0 clock  45.00KHz
        v: height  720 start  725 end  730 total  750           clock  60.00Hz
  1280x720 (0x71) 74.250MHz
        h: width  1280 start 1720 end 1760 total 1980 skew    0 clock  37.50KHz
        v: height  720 start  725 end  730 total  750           clock  50.00Hz
  1280x720 (0x72) 74.176MHz
        h: width  1280 start 1390 end 1430 total 1650 skew    0 clock  44.96KHz
        v: height  720 start  725 end  730 total  750           clock  59.94Hz
  1024x768 (0x73) 65.000MHz
        h: width  1024 start 1048 end 1184 total 1344 skew    0 clock  48.36KHz
        v: height  768 start  771 end  777 total  806           clock  60.00Hz
  800x600 (0x74) 40.000MHz
        h: width   800 start  840 end  968 total 1056 skew    0 clock  37.88KHz
        v: height  600 start  601 end  605 total  628           clock  60.32Hz
  800x600 (0x75) 36.000MHz
        h: width   800 start  824 end  896 total 1024 skew    0 clock  35.16KHz
        v: height  600 start  601 end  603 total  625           clock  56.25Hz
  720x576 (0x76) 27.000MHz
        h: width   720 start  732 end  796 total  864 skew    0 clock  31.25KHz
        v: height  576 start  581 end  586 total  625           clock  50.00Hz
  720x480 (0x77) 27.027MHz
        h: width   720 start  736 end  798 total  858 skew    0 clock  31.50KHz
        v: height  480 start  489 end  495 total  525           clock  60.00Hz
  720x480 (0x78) 27.000MHz
        h: width   720 start  736 end  798 total  858 skew    0 clock  31.47KHz
        v: height  480 start  489 end  495 total  525           clock  59.94Hz
  640x480 (0x79) 25.200MHz
        h: width   640 start  656 end  752 total  800 skew    0 clock  31.50KHz
        v: height  480 start  490 end  492 total  525           clock  60.00Hz
  640x480 (0x7a) 25.175MHz
        h: width   640 start  656 end  752 total  800 skew    0 clock  31.47KHz
        v: height  480 start  490 end  492 total  525           clock  59.94Hz

You did not say what driver?

Thank you for catching that. I’m using nouveau.

06:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF119 [NVS 310] [10de:107d] (rev a1)
    Subsystem: NVIDIA Corporation Device [10de:094e]
    Kernel driver in use: nouveau


You probably want the NVIDIA driver it may support more monitors

I tried using Nvidia’s drivers and had pretty much the same result. I could mirror all of them but only 4 would go into extended mode at one time.

Did you configure using nvidia-settings program?

By nivida-settings you mean their x-server GUI? Yes, I did try that with no luck. Whenever I tried adding more than 4 monitors the program froze and I had to restart.

??? Don’t know may have to do with the Quadro chips on those cards they have always been somewhat problematic.

With the nvidia-settings you can try to enable the base mosaic.

What steps are you taking to configure your setup (i.e. show me your xrandr homework rotfl!)

Outside of it being a user configuration error, there is a possibility that its window manager related. One user has reported (in the recent past) a similar problem, that he found occurred with a couple of desktops. See the following threads:

I currently run 4 monitors off of 2 adapters (3m on A1 + 1m on A2). I would be curious to test this out, but don’t have the means to do so (i.e. don’t have a 5th display handy to employ) without really going out of my way (which I’m not going to bother doing) … As it is, I look forward to a simplified future, wherein I switch to a large, single 4k (or better) display that is being driver by a sole graphics adapter … along with a second output attached to a smaller monitor, which can be used when display real estate is not required … Such a future scenario will get rid of present day encounters with corner case bugs that developers don’t know about, likely because they didn’t develop the display server related stuff on (and didn’t have the means to test upon) corner case usage setups

Thanks for the links, I’ll check them out now. For the Xrandr, I have posted the script that I run at start up. If I add either the top left or top right monitor (DP-2-6 or DP-1-3) X-server crashes. I have a 1000W power supply. I know that is a lot but could it be a cause since I’m using three cards? I can mirror all screens at once but I suspect that is less of a drain from the cards compared to all screens to have their own desktop.

#!/bin/bash

echo "Starting switch"

sleep 3s
xrandr --output DP-2-6 --off
xrandr --output DP-1-3 --off
sleep 3s
xrandr --output DP-1-4 --off
xrandr --output DP-2 --off
sleep 3s
xrandr --output DP-2-5 --off
sleep 9s

xrandr --output DP-1-4 --auto
sleep 5s
xrandr --output DP-1-4 --left-of DP-1
sleep 5s
xrandr --output DP-2-5 --auto
sleep 5s
xrandr --output DP-2-5 --above DP-1
sleep 5s
xrandr --output DP-2 --auto
sleep 5s
xrandr --output DP-2 --right-of DP-1
sleep 5s



echo "complete"

Not sure why you have all the sleep for x seconds stuff there (as it is not needed), but anyway, what you’ve got there will not do the trick (though, you don’t need me to tell you that, as you’ve already found out directly yourself :P).

If I add either the top left or top right monitor (DP-2-6 or DP-1-3) X-server crashes.
I’m not sure why, but it doesn’t matter, as this approach is wrong/fruitless anyway.

I have a 1000W power supply. I know that is a lot but could it be a cause since I’m using three cards? I can mirror all screens at once but I suspect that is less of a drain from the cards compared to all screens to have their own desktop.
No that’s not the case either … as a side note, I have know idea what the power draw would be either way.

...your script...

Well, I can confirm that, from a base state, your “xrandr --output *outputname *–auto” will indeed turn on the monitiors of the other graphics adapter(s), and it will be a clone mode. I didn’t realise that would work. Regardless, its not the route to a contiguous desktop.

What you want to do is:

xrandr --setprovideroutputsource 1 0
xrandr --setprovideroutputsource 2 0

I’m going to assume that works, though am not certain (as I don’t recall if I’ve tried it with three adapters, and there is some xrandr caveats, but I can’t see how they’d apply here )

See “man xrandr” and “xrandr --help” for more details. Essentially what that does is sets adapter 0 as the the source for the desktop and then adapters 1 and 2 are just dummy/slave devices that output what the source adapter (0) feeds them. Typically you’d use the most powerful adapter as the source and then the lesser adapter as the output slave. As all three of your adapters are the same (IIRC from your initial post) then it won’t matter which is which. But ordinarily, you’d find the id’s by running “xrandr --listproviders”

Anyway, after you set the contingous desktop up, you can then go about arranging the monitors via xrandr.

I do this in a script that I run from the display manager. The points of interest are like this:


#!/bin/sh

xrandr --setprovideroutputsource 1 0

xrandr --output HDMI-0 --primary --mode 1920x1200 --pos 0x1200 --rotate normal \
       --output DisplayPort-0 --mode 1920x1200 --pos 1920x1200 --rotate normal \
       --output DVI-0 --mode 1920x1200 --pos 1920x0 --rotate normal \
       ....blahblahblah....
exit

Thanks for your input! I thought this was going to work but I’m getting an error that I’ve seen several times before. It’s the “xrandr: Configure crtc X failed” X = crtc numbers of monitors. I created a script similar to yours, it’s below if it helps. Also, I’ve noticed more errors when I don’t let the system pause for several seconds, that is why I used the sleep command.

echo "Starting switch"

xrandr --setprovideroutputsource 1 0
xrandr --setprovideroutputsource 2 0

echo "provider sourcec set"

xrandr --output DP-1 --primary --mode 1920x1080 --pos 3840x0 --rotate normal
xrandr --output DP-1-4 --mode 1920x1080 --pos 1920x0 --rotate normal
xrandr --output DP-2 --mode 1920x1080 --pos 5760x0 --rotate normal

echo "Bottom 3 set"

xrandr --output DP-2-6 --mode 1920x1080 --pos 1920x1080 --rotate normal
xrandr --output DP-2-5 --mode 1920x1080 --pos 1920x2160 --rotate normal
xrandr --output DP-2-6 --mode 1920x1080 --pos 1920x3240 --rotate normal

echo "Display Config Complete"

Okay, but at what point are you getting this error? Don’t use a script – do it manually and pin point the step that is failing. You can’t possibly expect any of us to know which of your eight xrandr commands (you’ve got going there) that is borking …Use a script only after you have got it working (manually)

Sorry, I did do them one by a time but I was just lazy and put them all together for the post. Here it is broken down.

xrandr --output DP-1 --primary --mode 1920x1080 --pos 3840x0 --rotate normal
xrandr --output DP-1-4 --mode 1920x1080 --pos 1920x0 --rotate normal
xrandr --output DP-2 --mode 1920x1080 --pos 3840x0 --rotate normal

The above works. For some reason I thought “xrandr --output DP-2 --mode 1920x1080 --pos 5760x0 --rotate normal” was what logically was required but I noticed there was a gap between the monitors. Switching it to 3840x0 made it work as expected. Am I missing something?

Then when I use the following command

xrandr --output DP-2-6 --mode 1920x1080 --pos 1920x1080 --rotate normal

I get error “xrandr: Configure crtc 3 failed”

Then when I issue this command

xrandr --output DP-2-5 --mode 1920x1080 --pos 1920x2160 --rotate normal

I get mixed results. Either a floating point error or crtc error

Then when I issue this command

xrandr --output DP-2-6 --mode 1920x1080 --pos 1920x3240 --rotate normal

the monitors go blank and I have to restart x server using init 3 && init 5.

Well, yes, you didn’t report if there any problems with the setprovider commands – which are the crucial bit of it all! I’ll assume that they worked. As for the positional configuration of the monitors, I’ll only mention that the coordinates 0x0 start at the top left of the array you configure. I leave it to you to check the fine details of your setup.

But here are a few suggestions. After you run the setprovider commands, see if you can set things up via the kscreen gui (System Settings/Configure Desktop > Hardware > Display & Monitor > Display Configuration) … note you may have to expand the window to see all the monitors (as kscreen can be a little wonky and not show them in the observable space when you open up the default window).

If your unable to get it to work via that way or with manual xrandr commands, then try another desktop like suggested in those links I provided earlier in the thread … the success of which would likely point to a problem somewhere between X and the desktop’s window manager.