An attempt to configure 2 graphic cards and 3 monitors under Linux
Hardware
- an
HP Z420workstation with 8GB RAM - an NVidia Quadro 600 card
- an NVidia GeForce7600GS card
ArchLinux- the i3 window manager
Drivers
Following the ArchLinux wiki I have tried to install the NVidia proprietary drivers with yaourt:
nvidia-304xxfor the GeForce cardnvidia-352for the Quadro card
anyway the two drivers can NOT be installed simultaneously. I have then installed the xf86-video-nouveau drivers for both cards.
Xorg configuration
The devices
You need to write a device section PER monitor. Choose a different identifier for each device and enter the same BusId for the monitors connected to the same graphic card. Also enter a different Screen identifier for each device. We will defined them just after.
Note that my Quadro600 card has two monitors plugged in.
Section "Device"
Identifier "Videocard0"
Driver "nouveau"
BoardName "GeForce7600GS"
BusID "PCI:4:0:0"
Screen 2
EndSection
Section "Device"
Identifier "Videocard1"
Driver "nouveau"
BoardName "Quadro600"
BusID "PCI:5:0:0"
Screen 0
EndSection
Section "Device"
Identifier "Videocard1b"
Driver "nouveau"
BoardName "Quadro600"
BusID "PCI:5:0:0"
Screen 1
EndSection
The screens
Then write a screen section PER monitor to specify the resolution and the graphic card attached.
If you do not know the resolution choose a low one (1280x1024). You will change it later.
Note again that my Quadro600 card has two monitors plugged in, Videocard1 and Videocard1b are two identifiers for the same device as defined below.
Section "Screen"
Identifier "Screen0"
Device "Videocard1"
DefaultDepth 24
SubSection "Display"
Depth 16
Modes "1680x1050" #Choose the resolution
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Videocard1b"
DefaultDepth 24
SubSection "Display"
Depth 16
Modes "1280x1024" #Choose the resolution
EndSubSection
EndSection
Section "Screen"
Identifier "Screen2"
Device "Videocard0"
DefaultDepth 24
SubSection "Display"
Depth 16
Modes "1280x1024" #Choose the resolution
EndSubSection
EndSection
The server layout
Add a ServerLayout section at the top of the file.
Here you define the final layout. Set xinerama to on if you prefer to have one big virtual screen.
Else choose the central, left and right screens.
Section "ServerLayout"
Identifier "Multihead layout"
Option "Xinerama" "off"
Screen 0 "Screen0" 1280 0
Screen 1 "Screen1" RightOf "Screen0"
Screen 2 "Screen2" LeftOf "Screen0"
EndSection
Final words
I could not make my 3 screens work properly with i3. A workaround consist on running different i3 instances (actually one per monitor) but this is not satisfactory.