MultiMonitorSetup

Version 7 (lynxis, 02/10/2012 11:43)

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 7 lynxis
57 7 lynxis
*BUG* You have to set *@Virtual   7128 1200@*, because otherwise your VirtualScreen is to small for your
58 6 lynxis
Resolution!
59 7 lynxis
_Configuration for 3 Screens, each is rotate by 90 degrees(pivot mode)_
60 6 lynxis
<pre>
61 6 lynxis
Section "ServerLayout"
62 6 lynxis
    Identifier "Default Layout"
63 6 lynxis
    Screen      0  "aticonfig-Screen[0]-0" 0 0
64 6 lynxis
EndSection
65 1 lynxis
66 6 lynxis
67 6 lynxis
Section "Module"
68 6 lynxis
	Load	"glx"
69 6 lynxis
EndSection
70 6 lynxis
71 6 lynxis
Section "Device"
72 6 lynxis
    Identifier "Default Device"
73 6 lynxis
    Driver "fglrx"
74 6 lynxis
    BusId "PCI:1:0:0"
75 6 lynxis
    Option "Monitor-DFP13" "TFT-1"
76 6 lynxis
    Option "Monitor-DFP5" "TFT-2"
77 6 lynxis
    Option "Monitor-DFP9" "TFT-3"
78 6 lynxis
EndSection
79 6 lynxis
80 6 lynxis
Section "Monitor"
81 6 lynxis
    Identifier "TFT-1"
82 6 lynxis
    Option "LeftOf" "TFT-2"
83 6 lynxis
    Option "Rotate"  "left"
84 6 lynxis
EndSection
85 6 lynxis
86 6 lynxis
Section "Monitor"
87 6 lynxis
    Identifier "TFT-2"
88 6 lynxis
    Option "Rotate"  "left"
89 6 lynxis
EndSection
90 6 lynxis
91 6 lynxis
Section "Monitor"
92 6 lynxis
    Identifier "TFT-3"
93 6 lynxis
    Option "RightOf" "TFT-2"
94 6 lynxis
    Option "Rotate"  "left"
95 6 lynxis
EndSection
96 6 lynxis
97 6 lynxis
Section "Screen"
98 6 lynxis
    Identifier "aticonfig-Screen[0]-0"
99 6 lynxis
    Device     "aticonfig-Device[0]-0"
100 6 lynxis
    DefaultDepth     24
101 6 lynxis
    SubSection "Display"
102 6 lynxis
        Virtual   7128 1200
103 6 lynxis
        Depth     24
104 6 lynxis
    EndSubSection
105 6 lynxis
EndSection
106 6 lynxis
</pre>
107 6 lynxis
108 1 lynxis
h2. Nvidia
109 1 lynxis
110 5 lynxis
_Tested with GTX 660 Ti using proprietary drivers from nvidia_
111 5 lynxis
You have to use TwinView. (even for more than 2 screens)
112 5 lynxis
To setup a correct metamodes line I used the @/var/log/Xorg.0.log@ to know
113 5 lynxis
which screen is connected to which connector(example: DFP-0).
114 5 lynxis
<pre>
115 5 lynxis
[...]
116 5 lynxis
Missing Example Log files
117 5 lynxis
[...]
118 5 lynxis
</pre>
119 5 lynxis
<pre>
120 5 lynxis
Option          "metamodes" "<CONNECTOR>: <Resolution_Frequency> +<x-pos>+<y-pos> [[, DFP-1: 1920x1200_60 +1366+0], ...]
121 1 lynxis
</pre>
122 1 lynxis
<pre>
123 1 lynxis
Section "Device"
124 1 lynxis
        Identifier      "Device0"
125 1 lynxis
        Driver          "nvidia"
126 1 lynxis
        BusId       "PCI:1:0:0"
127 1 lynxis
EndSection
128 1 lynxis
129 1 lynxis
Section "Screen"
130 1 lynxis
        Identifier      "Screen0"
131 1 lynxis
        Device          "Device0"
132 1 lynxis
        DefaultDepth    24
133 1 lynxis
        Option          "TwinView" "1"
134 1 lynxis
        Option          "TwinViewXineramaInfoOrder" "DFP-0"
135 1 lynxis
#Option          "metamodes" "DFP-0: 1366x768_60 +0+0, DFP-1: 1920x1200_60 +1366+0, DFP-2: 1920x1200_60 +3286+0"
136 1 lynxis
        Option          "metamodes" "DFP-0: 1920x1200_60 +0+0, DFP-1: 1920x1200_60 +1366+0, DFP-2: 1366x768_60 +3286+0"
137 1 lynxis
        SubSection      "Display"
138 1 lynxis
                Depth       24
139 1 lynxis
        EndSubSection
140 1 lynxis
EndSection
141 2 lynxis
142 2 lynxis
</pre>
143 1 lynxis
144 4 lynxis
|_.Heads |_.Name|_.OS | _.Driver/Version |
145 6 lynxis
|   2    | Intel HD4500    | Archlinux | opensrc/kernel 3.5.4/xorg-intel 2.20.8-1 |
146 4 lynxis
|   4    | AMD/ATI HD-6950 | Ubuntu 12.04 | prop/?? | 
147 4 lynxis
|   4    | nvidia gtx 660  | Ubuntu 12.04 | prop/?? |
148 4 lynxis
|   2    | nvidia gtx 560  | Ubuntu 12.04 | prop/?? |
149 4 lynxis
150 2 lynxis
Maybe also interesting for you : http://www.x.org/wiki/XInputCoordinateTransformationMatrixUsage and https://wiki.archlinux.org/index.php/Touchscreen