This article describes how to modify the Linux xorg.conf file to enable MOSAIC mode on NVIDIA Quadro + NVS GPUs
MOSAIC allows for multiple displays to be attached to a single X server to create a unified Workspace.
MOSAIC is enabled by different options in the Screen section of the xorg.conf file depending on the system configuration. Note only one Screen needs to be defined with MOSAIC.
§ Single GPU - MOSAIC can be configured on up to 4 displays using the Metamodes option
MetaModes
Option "MetaModes" "1920x1080 +0+0, 1920x1080 +1920+0, 1920x1080 +0+1080, 1920x1080 +1920+1080"
§ 2 to 4 identical GPUs - MOSAIC is enabled using a combination using a combination of the "BaseMOSAIC" and "MetaModes" options.
BaseMOSAIC + MetaModes
Option "BaseMosaic" "TRUE"
Option "MetaModes" "GPU-0.DFP-0: 1920x1080 +0+0, GPU-0.DFP-1: 1920x1080 +1950+0, GPU-1.DFP-0: 1920x1080 +0+1100, GPU-1.DFP-1: 1920x1080 +1950+1100"
§ 2 to 4 GPUs with Quadro Sync - MOSAIC is enabled using a combination of the "SLI" "MOSAIC" and "MetaModes" option. As additional step is also required to enable framelock on the Quadro Sync card.
SLI MOSAIC + MetaModes
Option "SLI" "MOSAIC"
Option "MetaModes" "GPU-0.DFP-0: 1920x1080 +0+0, GPU-0.DFP-1: 1920x1080 +1820+0, GPU-1.DFP-0: 1920x1080 +0+1000, GPU-1.DFP-1: 1920x1080 +1820+1000"
Most Window managers will override the NVIDIA settings - so although MOSAIC is enabled the window manager still detects separate displays attached. To correct this behavior you need to add the following option to the Screen section.
nvidiaXineramaInfo
Option "nvidiaXineramaInfo" "FALSE"
In some cases the "RANDR" extension has to be disabled in order to see a single Desktop.
RANDR
Section "Extensions"
Option "Composite" "Disable"
EndSection
The MetaModes are defined from the top left of the screen - +0+0 will be top left. Each display entry is offset by a horizontal and vertical values.

Screen section snippet from xorg.conf
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "MetaModes" "1920x1080 +0+0, 1920x1080 +1920+0, 1920x1080 +0+1080, 1920x1080 +1920+1080"
Option "nvidiaXineramaInfo" "FALSE"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Overlap
Overlap between displays is only supported on Quadro K4200, K5000, K5200 and K6000 GPUs
Two GPUs using BASE MOSAIC
Bezel correction can be added by increasing the offset values. In example below a 30 pixel horizontal and 20 pixel vertical bezel correction is added.

Screen section snippet from xorg.conf
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "BaseMosaic" "TRUE"
Option "MetaModes" "GPU-0.DFP-0: 1920x1080 +0+0, GPU-0.DFP-1: 1920x1080 +1950+0, GPU-1.DFP-0: 1920x1080 +0+1100, GPU-1.DFP-1: 1920x1080 +1950+1100"
Option "nvidiaXineramaInfo" "FALSE"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Hint: When using multiple GPUs you can specify the GPU and port in the MetaModes i.e. GPU-0.DFP-0:
Hint: It is not possible to specify overlap between channels when using BaseMOSAIC option
Overlap correction can be added by reducing the MetaMode offset such that the one display overlaps with the other.

Screen section snippet from xorg.conf
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "SLI" "MOSAIC"
Option "MetaModes" "GPU-0.DFP-0: 1920x1080 +0+0, GPU-0.DFP-1: 1920x1080 +1820+0, GPU-1.DFP-0: 1920x1080 +0+1000, GPU-1.DFP-1: 1920x1080 +1820+1000"
Option "nvidiaXineramaInfo" "FALSE"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Additional Steps for Quadro Sync + "SLI" "MOSAIC"
After X has been restarted framelock has to be enabled on the Quadro Sync card.
Open nvidiia-settings go to "Frame Lock"
If no devices are present select "Add Devices" and enter the name of the x-server e.g:
mycomputer.domain.com:0
or
localhost:0

Select one display to be the server and the others to be the client - press EnableFrameLock

The displays will now be synchronized.
Note: nvidia-settings are not automatically applied when X is restarted. Refer to the Linux README file (R340 readme) on information on how to script the framelock startup and add the script to ~/.xinitrc file or directory .