MultiMonitorSetup

Version 6 (lynxis, 02/10/2012 11:42)

1 1 lynxis
h1. MultiMonitorSetup
2 1 lynxis
3 1 lynxis
You can use libavg in a multimonitor Setup as long libavg can create *one* OpenGL context over all screens.
4 1 lynxis
This works with Intel, ATI and Nvidia.
5 1 lynxis
Most graphiccards only allows 2 screen(also named heads) at a time. There are some cards which supports more 
6 1 lynxis
than these.
7 1 lynxis
8 1 lynxis
h2. Intel
9 1 lynxis
10 1 lynxis
_Tested under Linux with Intel HD4500ironlake using opensource drivers_
11 1 lynxis
Use xrandr or gnome-settings to add your screen
12 3 lynxis
<pre>
13 1 lynxis
xrandr --output VGA1 --left-of LVDS1 --auto
14 3 lynxis
</pre>
15 1 lynxis
You can also use xorg.conf to manual configure the same settings you changed over xrandr
16 1 lynxis
17 1 lynxis
TODO: check ViewPort/VirtualScreenSize - it's missing + testing this!
18 1 lynxis
<pre>
19 1 lynxis
Section "ServerLayout"
20 1 lynxis
        Identifier     "X.org Configured"
21 1 lynxis
        Screen      0  "aticonfig-Screen[0]-0" 0 0
22 1 lynxis
EndSection
23 1 lynxis
24 1 lynxis
Section "Device"
25 1 lynxis
        Identifier  "aticonfig-Device[0]-0"
26 1 lynxis
        Driver      "fglrx"
27 1 lynxis
        BusID       "PCI:4:0:0"
28 1 lynxis
    Option      "Monitor-DFP2" "Unten Monitor"
29 1 lynxis
    Option      "Monitor-CRT2" "Oben Monitor"
30 1 lynxis
EndSection
31 1 lynxis
32 1 lynxis
Section "Monitor"
33 1 lynxis
        Identifier      "Unten Monitor"
34 1 lynxis
EndSection
35 1 lynxis
36 1 lynxis
Section "Monitor"
37 1 lynxis
        Identifier      "Oben Monitor"
38 1 lynxis
        Option          "Above" "Unten Monitor"
39 1 lynxis
EndSection
40 1 lynxis
41 1 lynxis
Section "Screen"
42 1 lynxis
        Identifier "aticonfig-Screen[0]-0"
43 1 lynxis
        Device     "aticonfig-Device[0]-0"
44 1 lynxis
        DefaultDepth     24
45 1 lynxis
        SubSection "Display"
46 1 lynxis
                Viewport   0 0
47 1 lynxis
                Depth     24
48 1 lynxis
        EndSubSection
49 1 lynxis
EndSection
50 1 lynxis
</pre>
51 1 lynxis
52 1 lynxis
h2. AMD/ATI
53 1 lynxis
54 1 lynxis
_Tested with ATI HD 6950 using proprietary drivers from amd_
55 6 lynxis
Same way like Intel. Use xrandr-cmdline or use system graphic or you can configure it over xorg.conf.
56 6 lynxis
*BUG* You have to set @Virtual   7128 1200@, because otherwise your VirtualScreen is to small for your
57 6 lynxis
Resolution!
58 6 lynxis
*Configuration for 3 Screens, each is rotate by 90 degrees(pivot mode)*
59 6 lynxis
<pre>
60 6 lynxis
Section "ServerLayout"
61 6 lynxis
    Identifier "Default Layout"
62 6 lynxis
    Screen      0  "aticonfig-Screen[0]-0" 0 0
63 6 lynxis
EndSection
64 1 lynxis
65 6 lynxis
66 6 lynxis
Section "Module"
67 6 lynxis
	Load	"glx"
68 6 lynxis
EndSection
69 6 lynxis
70 6 lynxis
Section "Device"
71 6 lynxis
    Identifier "Default Device"
72 6 lynxis
    Driver "fglrx"
73 6 lynxis
    BusId "PCI:1:0:0"
74 6 lynxis
    Option "Monitor-DFP13" "TFT-1"
75 6 lynxis
    Option "Monitor-DFP5" "TFT-2"
76 6 lynxis
    Option "Monitor-DFP9" "TFT-3"
77 6 lynxis
EndSection
78 6 lynxis
79 6 lynxis
Section "Monitor"
80 6 lynxis
    Identifier "TFT-1"
81 6 lynxis
    Option "LeftOf" "TFT-2"
82 6 lynxis
    Option "Rotate"  "left"
83 6 lynxis
EndSection
84 6 lynxis
85 6 lynxis
Section "Monitor"
86 6 lynxis
    Identifier "TFT-2"
87 6 lynxis
    Option "Rotate"  "left"
88 6 lynxis
EndSection
89 6 lynxis
90 6 lynxis
Section "Monitor"
91 6 lynxis
    Identifier "TFT-3"
92 6 lynxis
    Option "RightOf" "TFT-2"
93 6 lynxis
    Option "Rotate"  "left"
94 6 lynxis
EndSection
95 6 lynxis
96 6 lynxis
Section "Screen"
97 6 lynxis
    Identifier "aticonfig-Screen[0]-0"
98 6 lynxis
    Device     "aticonfig-Device[0]-0"
99 6 lynxis
    DefaultDepth     24
100 6 lynxis
    SubSection "Display"
101 6 lynxis
        Virtual   7128 1200
102 6 lynxis
        Depth     24
103 6 lynxis
    EndSubSection
104 6 lynxis
EndSection
105 6 lynxis
</pre>
106 6 lynxis
107 1 lynxis
h2. Nvidia
108 1 lynxis
109 5 lynxis
_Tested with GTX 660 Ti using proprietary drivers from nvidia_
110 5 lynxis
You have to use TwinView. (even for more than 2 screens)
111 5 lynxis
To setup a correct metamodes line I used the @/var/log/Xorg.0.log@ to know
112 5 lynxis
which screen is connected to which connector(example: DFP-0).
113 5 lynxis
<pre>
114 5 lynxis
[...]
115 5 lynxis
Missing Example Log files
116 5 lynxis
[...]
117 5 lynxis
</pre>
118 5 lynxis
<pre>
119 5 lynxis
Option          "metamodes" "<CONNECTOR>: <Resolution_Frequency> +<x-pos>+<y-pos> [[, DFP-1: 1920x1200_60 +1366+0], ...]
120 1 lynxis
</pre>
121 1 lynxis
<pre>
122 1 lynxis
Section "Device"
123 1 lynxis
        Identifier      "Device0"
124 1 lynxis
        Driver          "nvidia"
125 1 lynxis
        BusId       "PCI:1:0:0"
126 1 lynxis
EndSection
127 1 lynxis
128 1 lynxis
Section "Screen"
129 1 lynxis
        Identifier      "Screen0"
130 1 lynxis
        Device          "Device0"
131 1 lynxis
        DefaultDepth    24
132 1 lynxis
        Option          "TwinView" "1"
133 1 lynxis
        Option          "TwinViewXineramaInfoOrder" "DFP-0"
134 1 lynxis
#Option          "metamodes" "DFP-0: 1366x768_60 +0+0, DFP-1: 1920x1200_60 +1366+0, DFP-2: 1920x1200_60 +3286+0"
135 1 lynxis
        Option          "metamodes" "DFP-0: 1920x1200_60 +0+0, DFP-1: 1920x1200_60 +1366+0, DFP-2: 1366x768_60 +3286+0"
136 1 lynxis
        SubSection      "Display"
137 1 lynxis
                Depth       24
138 1 lynxis
        EndSubSection
139 1 lynxis
EndSection
140 2 lynxis
141 2 lynxis
</pre>
142 1 lynxis
143 4 lynxis
|_.Heads |_.Name|_.OS | _.Driver/Version |
144 6 lynxis
|   2    | Intel HD4500    | Archlinux | opensrc/kernel 3.5.4/xorg-intel 2.20.8-1 |
145 4 lynxis
|   4    | AMD/ATI HD-6950 | Ubuntu 12.04 | prop/?? | 
146 4 lynxis
|   4    | nvidia gtx 660  | Ubuntu 12.04 | prop/?? |
147 4 lynxis
|   2    | nvidia gtx 560  | Ubuntu 12.04 | prop/?? |
148 4 lynxis
149 2 lynxis
Maybe also interesting for you : http://www.x.org/wiki/XInputCoordinateTransformationMatrixUsage and https://wiki.archlinux.org/index.php/Touchscreen