Ubuntu 12.04 and Quad Monitors?

I am very interested in getting a quad monitor setup using Ubuntu 12.04. Is this possible with Unity? Will Nvidia X Server automatically detect and configure all 4 monitors making things easy?

I have dug up some bits and pieces of information here and there but don't know what to make of everything.


Solution 1:

Quad monitors are certainly possible, here's my setup driven by 2 NVidia cards (using the proprietary NVidia driver):

enter image description here

although, in my particular setup, I wasn't able to make 3D acceleration work, but, as I remember, this was more a requirement of having two of the monitors rotated than having 4 monitors.

Also, I'm not using Unity, the window manager is XMonad, which I would recommend very much for such a setup unless you want to spend hours dragging windows from monitor to monitor and arranging them manually.

I'm using a custom xorg.conf file because, as I remember, I had to specify individual PCI bus IDs for each card to be able to use them - you may be luckier, but generally setting up a multi-monitor machine is an exercise from the "advanced" chapter of the book, do not expect full plug-and-play* (see update below). Again, in my case, rotated monitors complicated the matter a bit.

Here's my xorg.conf:

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" RightOf "Screen3"
    Screen      1  "Screen1" 0 0
    Screen      2  "Screen2" RightOf "Screen1"
    Screen      3  "Screen3" RightOf "Screen2"

    Option         "Xinerama" "1"
EndSection

Section "Files"
EndSection


Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor3"
    VendorName     "Unknown"
    ModelName      "SamsungSyncMaster"
    HorizSync       30.0 - 84.0
    VertRefresh     56.0 - 76.0
    Option         "DPMS"
    Option         "Rotate" "Left"
EndSection


Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor2"
    VendorName     "Unknown"
    ModelName      "Dell 2007 WFP"
    HorizSync       30.0 - 84.0
    VertRefresh     56.0 - 76.0
    Option         "DPMS"
    Option         "Rotate" "Left"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "BENQ"
    HorizSync       30.0 - 81.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "BenQ FP222W"
    HorizSync       30.0 - 84.0
    VertRefresh     56.0 - 76.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device3"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 210"
    BusID          "PCI:3:0:0"
    Screen     1
EndSection

Section "Device"
    Identifier     "Device2"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 8400 GS"
    BusID          "PCI:2:0:0"
    Screen          1
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 210"
    BusID          "PCI:3:0:0"
    Screen         0
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 8400 GS"
    BusID          "PCI:2:0:0"
    Screen          0
EndSection


Section "Screen"
    Identifier     "Screen3"
    Device         "Device3"
    Monitor        "Monitor3"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "DFP: nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection


Section "Screen"
    Identifier     "Screen2"
    Device         "Device2"
    Monitor        "Monitor2"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "DFP: nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "TwinViewXineramaInfoOrder" "CRT-0"
    Option         "metamodes" "nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "CRT: nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Now I'm pretty confident it is possible to plug another video card and extend this to a 6-monitor setup, but I feel the limited flexibility of my neck would not allow me to make a good use of 6 monitors :)

* Mid-2015 UPDATE: Recently I had to boot this machine from a USB stick with Kubuntu 15.04. I have to report that, to my amazement, it recognized and was able to use all 4 monitors without any manual setup (in portrait orientation). Rotating the monitors didn't quite work, but still the progress is impressive - I'm quite sure it only used one or two monitors previously. So I suspect that if you don't want portrait monitors, Kubuntu might work for you out of the box without any tweaks.