---
layout: post
status: publish
published: true
title: Enabling a triple-head (3 monitor) setup on Linux Mint 16 ("Petra") with two
  Nvidia cards

wordpress_id: 3078
wordpress_url: https://www.martineve.com/?p=3078
date: !binary |-
  MjAxNC0wNC0xNSAwODoyNjoxMSArMDIwMA==
date_gmt: !binary |-
  MjAxNC0wNC0xNSAwNzoyNjoxMSArMDIwMA==
categories:
- Technology
- Linux
tags:
- Linux
comments: []
---
<p>OK, so this was utterly painful and I needed to share what finally worked for me. I have 2 x Nvidia GTX480 cards. I have 3 x monitors. I wanted to be able to run all three off the same box, using it as a single X Screen (i.e. so I can move windows between screens and it acts correctly). No matter what I tried, it wouldn't let me do so with the proprietary driver. I <a href="http://unix.stackexchange.com/questions/123862/how-can-i-get-xrandr-to-detect-both-nvidia-cards-2-x-gtx480-triple-head">asked on Stack Exchange</a> and got somewhere closer. Here's what worked:</p>
<div style="clear:both"/>
<ul>
<li>Use driver 319.60 or 337.12. 331.20 did <i>not</i> work for me.</li> <b>Update (28th August 2015): </b> I've now had success with driver 346, so this tutorial is still relevant.
<li>Install the SLI bridge (hardware). Even though you are not using SLI, you need to put the bridge in and enable it.</li>
<li>Use SLIMosaic and BaseMosaic options. <i>Ignore the fact the manual implies it won't work for this card. It does.</i></li>
</ul>
<p>My XConfig looks like this:</p>

{% highlight bash %}
Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
EndSection

Section "Monitor"

    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Ancor Communications Inc ASUS VS247"
    HorizSync       24.0 - 83.0
    VertRefresh     50.0 - 75.0
    Option         "DPMS"
EndSection

Section "Monitor"

    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "LG Electronics W2243"
    HorizSync       30.0 - 83.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Monitor"

    # HorizSync source: unknown, VertRefresh source: unknown
    Identifier     "Monitor2"
    VendorName     "Unknown"
    ModelName      "AOC LM720/LM720A"
    HorizSync       30.0 - 83.0
    VertRefresh     55.0 - 75.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 480"
    BusID          "PCI:1:0:0"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 480"
    BusID          "PCI:1:0:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"		
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "MultiGPU" "Off"
    Option         "SLI" "on"
    Option         "SLIMosaic" "True"
    Option         "BaseMosaic" "True"
    Option         "MetaModes" "GPU-1.CRT-0: 1280x1024+0+0, GPU-0.CRT-0: 1920x1080+1280+0, GPU-0.DFP-2: 1920x1080+3200+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

{% endhighlight %}

<p>Totally weirdly, you don't need to have more than one device listed (my second card is at "PCI:1:0:0").</p>
<p>Note also that, despite this then yielding two providers, when it's working xrandr 1.4 (which supports multiple GPUs) only lists 1 provider:</p>

{% highlight bash %}
xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x279 cap: 0x1, Source Output crtcs: 4 outputs: 10 associated providers: 0 name:NVIDIA-0"
{% endhighlight %}

<p>Anyway, it now works!</p>