I'll just go ahead and post it - any corrections/clarification/additions is appreciated:
-----------------------------------------------------------------------------------------------------
Dual head monitor setup.
The same principle applies to either XFree86 or X.org. I am using my xorg.conf
as an example, although the exact same file worked when running XFree86.
General Notes: We will be editing and working with the file /etc/X11/xorg.conf
I have omitted everything else, except for the portions that pertain to setting
up dual monitors. General setup of the xorg.conf file can be found in a different
FAQ.
-----------------------------------------------------------------------
Code:
# **********************************************************************
# Server flags section.
# **********************************************************************
Section "ServerFlags"
Option "Xinerama" "true"
EndSection
NOTES: Under the ServerFlags section, I used the 'Xinerama' option. This makes
screen 2 an extension of screen 1, meaning I have 1 BIG desktop. Exclude this
if you want the second monitor to be a 'mirror' of the primary monitor. There
may be other options found in the Server Flags section, but this is the only one
required for a dual monitor setup.
-----------------------------------------------------------------------
Code:
# **********************************************************************
# Monitor section
# **********************************************************************
# Any number of monitor sections may be present
Section "Monitor"
Identifier "My Monitor"
HorizSync 31.5-50
VertRefresh 40-90
vendorname "[My Monitor]"
modelname "[My Monitor]"
EndSection
NOTES: Here, I define my monitor(s). Since both of my monitors have the same
capabilities, I simplified things, and only created one 'monitor'. If your
monitors are different, you will need to create appropriate settings for each
monitor. Make sure the settings you define here are correct.
Also, notice the Identifier. If you do setup 2 different monitors in this
section, you must give them different names. The identifier is used below
in setting up your screen settings to distinguish one monitor from another.
-----------------------------------------------------------------------
Code:
# **********************************************************************
# Graphics device section
# **********************************************************************
# Any number of graphics device sections may be present
Section "Device"
Identifier "Card0"
Driver "mga"
VendorName "Matrox Graphics, Inc."
BoardName "MGA G400 AGP"
BusID "PCI:1:0:0"
Screen 0
EndSection
Section "Device"
Identifier "Card1"
Driver "mga"
VendorName "Matrox Graphics, Inc."
BoardName "MGA G400 AGP"
BusID "PCI:1:0:0"
Screen 1
EndSection
NOTES: Here is where you define each video head on the card.
Identifier - Notice they are different. This is an arbitrary name given
to each head of the video card. They must be different
Driver - The driver that X will use. Here is a partial list of supported cards:
ati, chips, cirrus, i740 & i810 (Intel), mga (matrox), s3 & s3virge, sis,
trident, vesa & vga (both generic drivers).
VenderName - Obvious, although I don't think this is necessary for X to work.
BoardName - Model of the video card
BusID - Notice mine is "PCI:1:0:0", yours may be different. To find out
what you need, SU (if needed) and type "lspci" (even if it is an AGP
video card). Find the number next to your video card, and put it in
the BusID field.
example:
su
(root password)
lspci
(output of lspci for my video card)
01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G400 AGP (rev 82)
Screen - This gives a specific number to the screen, they are listed in numerical
order starting with zero.
-----------------------------------------------------------------------
Code:
# **********************************************************************
# Screen sections
# **********************************************************************
Section "Screen"
Identifier "Screen 1"
Device "Card0"
Monitor "My Monitor"
DefaultDepth 24
Subsection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480"
Virtual 0 0
EndSubsection
Subsection "Display"
Depth 24
Modes "1024x768" "800x600" "640x480"
Virtual 0 0
EndSubsection
Subsection "Display"
Depth 32
Modes "1024x768" "800x600" "640x480"
Virtual 0 0
EndSubsection
EndSection
Section "Screen"
Identifier "Screen 2"
Device "Card1"
Monitor "My Monitor"
DefaultDepth 24
Subsection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480"
Virtual 0 0
EndSubsection
Subsection "Display"
Depth 24
Modes "1024x768" "800x600" "640x480"
Virtual 0 0
EndSubsection
Subsection "Display"
Depth 32
Modes "1024x768" "800x600" "640x480"
Virtual 0 0
EndSubsection
EndSection
NOTES: There must be a screen section for each head. Each 'Screen' should
be adjusted to your individual monitor settings (resolution and number of colors).
Notice the 'Identifier' - it is an arbitrary name so X can distinguish the 2. These
Identifiers are used again in the 'Sever Layout section'.
The 'Device' assigns a particular head on the video card to a
particular screen. Notice in the example, the Device's are the same name
as the Identifier in the "Graphics device section" above.
In the "Monitor" field, in the example, I used "My Monitor"
(see above under the "Monitor section". These much match, and if you are
using two different monitors, make sure they are connected correctly
according to your settings.
-----------------------------------------------------------------------
Code:
**********************************************************************
# ServerLayout sections.
# **********************************************************************
Section "ServerLayout"
# The Identifier line must be present
Identifier "Simple Layout"
Screen "Screen 1" LeftOf "Screen 2"
Screen "Screen 2"
Option "Xinerama" "true"
EndSection
NOTES: Notice on the line "Screen "Screen 1" LeftOf "Screen 2"", that I used
the Identifier for the monitors found in the "Screen sections" - they must match.
In the example, Screen 1 is to the "LeftOf" Screen 2. Other options, instead of
"LeftOf" are "RightOf" "Above", and "Below".
Restart X, and you should have dual-moitors working.