[olug] Multiple video cards and X11...
Dan Linder
dan at linder.org
Thu Sep 11 04:13:34 UTC 2008
Well, I got a triple-headed system setup using a newer NVidia 8600 dual-DVI
card, and an older NVidia GeForce2 MX VGA card. Here's the xorg.conf file
with line numbers and some running commentary (e-mail me if you want a copy
w/o numbers).
1 Section "ServerLayout"
2 Identifier "LCD-CRT-LCD"
3 Screen 0 "LCD_A_GF8600_NVIDIA" LeftOf "CRT_GF2MX_NV"
4 Screen 1 "CRT_GF2MX_NV"
5 Screen 2 "LCD_B_GF8600_NVIDIA" RightOf "CRT_GF2MX_NV"
6 InputDevice "Keyboard" "CoreKeyboard"
7 InputDevice "Mouse" "CorePointer"
8 EndSection
For me, the easiest way to think about the xconfig file was to think how I
wanted the monitors to be laid out on my desk. I decided to put the two LCD
panels to either side of my CRT to keep it visually balanced so I wasn't
*always* typing looking off-center. The "LeftOf" and "RightOf" make this
layout easy.
The values ("LCD_A_GF8600_NVIDIA", "CRT_GF2MX_NV", etc) refer to
"Identifier" lines in later sections of this file.
10 Section "Files"
11 EndSection
12
13 Section "Module"
14 Load "dbe"
15 Load "extmod"
16 Load "type1"
17 Load "freetype"
18 EndSection
19
20 Section "ServerFlags"
21 Option "Xinerama" "true"
22 EndSection
This section is key so that the base X11 system knows that all the screens
are part of one larger desktop view. Without the Xinerama=true section,
they would be independant areas that would have their own display manager
and windows would'nt be draggable between monitors.
24 Section "InputDevice"
25 Identifier "Mouse"
26 Driver "mouse"
27 Option "Protocol" "auto"
28 Option "Device" "/dev/psaux"
29 Option "Emulate3Buttons" "no"
30 Option "ZAxisMapping" "4 5"
31 EndSection
32
33 Section "InputDevice"
34 Identifier "Keyboard"
35 Driver "kbd"
36 EndSection
37
38 ##########################################
39 #### Monitor Definitions ####
40 ##########################################
41
42 Section "Monitor"
43 Identifier "LCDMonitor_A"
44 VendorName "Samsung"
45 ModelName "SyncMaster 245BW"
46 HorizSync 30.0 - 110.0
47 VertRefresh 50.0 - 150.0
48 Option "DPMS"
49 EndSection
50
51 Section "Monitor"
52 Identifier "LCDMonitor_B"
53 VendorName "Samsung"
54 ModelName "SyncMaster 245BW"
55 HorizSync 30.0 - 110.0
56 VertRefresh 50.0 - 150.0
57 Option "DPMS"
58 EndSection
These sections defined the basic parameters of my LCD monitors. I probably
didn't need to define it twice, but it helped keep things straight in my
head.
60 Section "Monitor"
61 Identifier "CRTMonitor"
62 VendorName "Hitachi"
63 ModelName "SuperScan Elite 802"
64 HorizSync 31.5 - 107.5
65 VertRefresh 50.0 - 85.0
66 Option "DPMS"
67 ModeLine "1600x1200 at 65" 175.5 1600 1664 1856 2160 1200
1201 1204 1250 +hsync +vsync
68 EndSection
This section defined the CRT and the specific mode I wanted to run it in to
get the 1600x1200 resolution.
70 ##########################################
71 #### Device Definitions ####
72 ##########################################
73
74 Section "Device"
75 # NVidia GeForce 8600 GT (PCIe-8x, dual DMI port)
76 # Port A
77 Identifier "Device_nvidia_A"
78 Driver "nvidia"
79 VendorName "NVIDIA Corporation"
80 BusID "PCI:2:0:0"
81 Screen 0
82 EndSection
83
84 Section "Device"
85 # NVidia GeForce 8600 GT (PCIe-8x, dual DMI port)
86 # Port B
87 Identifier "Device_nvidia_B"
88 Driver "nvidia"
89 VendorName "NVIDIA Corporation"
90 BusID "PCI:2:0:0"
91 Screen 1
92 EndSection
These two "nvidia" sections defined that each port was a different screen.
The "Screen #" here is NOT the same as the "Screen #" lines used on lines
3-5.
94 Section "Device"
95 # Older NVidia GeForce 2 MX/MB400 (PCI based, single VGA port)
96 Identifier "Device_nv"
97 Driver "nv"
98 VendorName "NVIDIA Corporation"
99 BusID "PCI:1:6:0"
100 EndSection
Here's where the second driver ("nv") is used to activate the older GeForce
2 card. If the second card was an ATI or other brand, it could go here
too. Since the "nv" and "nvidia" drivers don't know how to handle the other
card, the "BusID" lines were extraneous, but I left them in just for
documentation purposes.
102 ##########################################
103 #### Screen Definitions ####
104 ##########################################
105
106 Section "Screen"
107 Identifier "LCD_A_GF8600_NVIDIA"
108 Device "Device_nvidia_A"
109 Monitor "LCDMonitor_A"
110 DefaultDepth 24
111 #Option "MetaModes" "nvidia-auto-select"
112 SubSection "Display"
113 Depth 24
114 Modes "1920x1200" "1600x1200" "1280x1024"
"1024x768"
115 EndSubSection
116 EndSection
Here's where I defined what monitors were hooked to which video card ports,
also what resolution and bit-depth to run them at. The "Identifier" line
values are used in the ServerLayout section (lines 1-8) so don't fat-finger
them (as I did for a few test runs)...
118 Section "Screen"
119 Identifier "LCD_B_GF8600_NVIDIA"
120 Device "Device_nvidia_B"
121 Monitor "LCDMonitor_B"
122 DefaultDepth 24
123 #Option "MetaModes" "nvidia-auto-select"
124 SubSection "Display"
125 Depth 24
126 Modes "1920x1200" "1600x1200" "1280x1024"
"1024x768"
127 EndSubSection
128 EndSection
129
130
131 Section "Screen"
132 Identifier "CRT_GF2MX_NV"
133 Device "Device_nv"
134 Monitor "CRTMonitor"
135 DefaultDepth 24
136 Option "MetaModes" "nvidia-auto-select"
137 SubSection "Display"
138 Depth 24
139 Modes "1600x1200 at 65" "1600x1200" "1280x1024"
"1024x768"
140 EndSubSection
141 EndSection
Hope this helps someone else setting up a triple screen display within
X11/xorg.
Dan
--
"Quis custodiet ipsos custodes?" (Who can watch the watchmen?) -- from the
Satires of Juvenal
"I do not fear computers, I fear the lack of them." -- Isaac Asimov (Author)
** *** ***** ******* *********** *************
More information about the OLUG
mailing list