« Previous - Version 6/7 (diff) - Next » - Current version
lynxis, 02/10/2012 11:42


MultiMonitorSetup

You can use libavg in a multimonitor Setup as long libavg can create one OpenGL context over all screens.
This works with Intel, ATI and Nvidia.
Most graphiccards only allows 2 screen(also named heads) at a time. There are some cards which supports more
than these.

Intel

Tested under Linux with Intel HD4500ironlake using opensource drivers
Use xrandr or gnome-settings to add your screen

xrandr --output VGA1 --left-of LVDS1 --auto

You can also use xorg.conf to manual configure the same settings you changed over xrandr

TODO: check ViewPort/VirtualScreenSize - it's missing + testing this!

Section "ServerLayout" 
        Identifier     "X.org Configured" 
        Screen      0  "aticonfig-Screen[0]-0" 0 0
EndSection

Section "Device" 
        Identifier  "aticonfig-Device[0]-0" 
        Driver      "fglrx" 
        BusID       "PCI:4:0:0" 
    Option      "Monitor-DFP2" "Unten Monitor" 
    Option      "Monitor-CRT2" "Oben Monitor" 
EndSection

Section "Monitor" 
        Identifier      "Unten Monitor" 
EndSection

Section "Monitor" 
        Identifier      "Oben Monitor" 
        Option          "Above" "Unten Monitor" 
EndSection

Section "Screen" 
        Identifier "aticonfig-Screen[0]-0" 
        Device     "aticonfig-Device[0]-0" 
        DefaultDepth     24
        SubSection "Display" 
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection

AMD/ATI

Tested with ATI HD 6950 using proprietary drivers from amd
Same way like Intel. Use xrandr-cmdline or use system graphic or you can configure it over xorg.conf.
BUG You have to set Virtual 7128 1200, because otherwise your VirtualScreen is to small for your
Resolution!
Configuration for 3 Screens, each is rotate by 90 degrees(pivot mode)

Section "ServerLayout" 
    Identifier "Default Layout" 
    Screen      0  "aticonfig-Screen[0]-0" 0 0
EndSection

Section "Module" 
    Load    "glx" 
EndSection

Section "Device" 
    Identifier "Default Device" 
    Driver "fglrx" 
    BusId "PCI:1:0:0" 
    Option "Monitor-DFP13" "TFT-1" 
    Option "Monitor-DFP5" "TFT-2" 
    Option "Monitor-DFP9" "TFT-3" 
EndSection

Section "Monitor" 
    Identifier "TFT-1" 
    Option "LeftOf" "TFT-2" 
    Option "Rotate"  "left" 
EndSection

Section "Monitor" 
    Identifier "TFT-2" 
    Option "Rotate"  "left" 
EndSection

Section "Monitor" 
    Identifier "TFT-3" 
    Option "RightOf" "TFT-2" 
    Option "Rotate"  "left" 
EndSection

Section "Screen" 
    Identifier "aticonfig-Screen[0]-0" 
    Device     "aticonfig-Device[0]-0" 
    DefaultDepth     24
    SubSection "Display" 
        Virtual   7128 1200
        Depth     24
    EndSubSection
EndSection

Nvidia

Tested with GTX 660 Ti using proprietary drivers from nvidia
You have to use TwinView. (even for more than 2 screens)
To setup a correct metamodes line I used the /var/log/Xorg.0.log to know
which screen is connected to which connector(example: DFP-0).

[...]
Missing Example Log files
[...]

Option          "metamodes" "<CONNECTOR>: <Resolution_Frequency> +<x-pos>+<y-pos> [[, DFP-1: 1920x1200_60 +1366+0], ...]

Section "Device" 
        Identifier      "Device0" 
        Driver          "nvidia" 
        BusId       "PCI:1:0:0" 
EndSection

Section "Screen" 
        Identifier      "Screen0" 
        Device          "Device0" 
        DefaultDepth    24
        Option          "TwinView" "1" 
        Option          "TwinViewXineramaInfoOrder" "DFP-0" 
#Option          "metamodes" "DFP-0: 1366x768_60 +0+0, DFP-1: 1920x1200_60 +1366+0, DFP-2: 1920x1200_60 +3286+0" 
        Option          "metamodes" "DFP-0: 1920x1200_60 +0+0, DFP-1: 1920x1200_60 +1366+0, DFP-2: 1366x768_60 +3286+0" 
        SubSection      "Display" 
                Depth       24
        EndSubSection
EndSection

Heads Name OS _.Driver/Version
2 Intel HD4500 Archlinux opensrc/kernel 3.5.4/xorg-intel 2.20.8-1
4 AMD/ATI HD-6950 Ubuntu 12.04 prop/??
4 nvidia gtx 660 Ubuntu 12.04 prop/??
2 nvidia gtx 560 Ubuntu 12.04 prop/??

Maybe also interesting for you : http://www.x.org/wiki/XInputCoordinateTransformationMatrixUsage and https://wiki.archlinux.org/index.php/Touchscreen