Noob trying to configure three-monitor setup.

Hello forum experts. I'm seeking some help in setting up a proper configuration for three monitors. I've done quite a bit if troubleshooting up to this point. I've got two BSD compatible video cards in the system. I've already attached the xorg.conf and the xorg.0.log necessary to see what's going on with the system.

Signal Interface


At first glance I know I need to configure some options on the SiS card to tell it how much memory to use. The Radeon is a dual head PCI card. Finally I'll include monitor specs.


Code:
(3) Hewlett Packard LA1951g's
Signal Interface

Horizontal Frequency
24 to 83 kHz
Vertical Frequency
50 to 77 Hz
Native Resolution
1280 x 1024 @ 60 Hz (analog)
Native Resolution
1280 x 1024 @ 60 Hz (digital)

Max Resolution
(Analog)
1280 x 1024 @ 75 Hz

Max Resolution
(Digital)
1280 x 1024 @ 75 Hz

Preset VESA Modes
(non-interlaced)
640 x 480 @ 60 Hz, 72 Hz, 75 Hz
720 x 400 @ 70 Hz
800 x 600 @ 60 Hz, 72 Hz, 75 Hz
1024 x 768 @ 60 Hz, 70 Hz, 75 Hz
1280 x 1024 @ 60 Hz, 75 Hz

Thanks for anyone willing to give me some pointers.
 

Attachments

Code:
Section "ServerLayout"
	Identifier     "X.org Configured"
	Screen      0  "Screen0" 0 0
	Screen      1  "Screen1" RightOf "Screen0"
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
	ModulePath   "/usr/local/lib/xorg/modules"
	FontPath     "/usr/local/lib/X11/fonts/misc/"
	FontPath     "/usr/local/lib/X11/fonts/TTF/"
	FontPath     "/usr/local/lib/X11/fonts/OTF"
	FontPath     "/usr/local/lib/X11/fonts/Type1/"
	FontPath     "/usr/local/lib/X11/fonts/100dpi/"
	FontPath     "/usr/local/lib/X11/fonts/75dpi/"
EndSection

Section "Module"
	Load  "dbe"
	Load  "dri"
	Load  "dri2"
	Load  "extmod"
	Load  "record"
	Load  "glx"
EndSection

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "kbd"
EndSection

Section "InputDevice"
	Identifier  "Mouse0"
	Driver      "mouse"
	Option	    "Protocol" "auto"
	Option	    "Device" "/dev/sysmouse"
	Option	    "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
	Identifier   "Monitor0"
	VendorName   "Monitor Vendor"
	ModelName    "Monitor Model"
EndSection

Section "Monitor"
	Identifier   "Monitor1"
	VendorName   "Monitor Vendor"
	ModelName    "Monitor Model"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
        ### [arg]: arg optional
        #Option     "NoAccel"            	# [<bool>]
        #Option     "SWcursor"           	# [<bool>]
        #Option     "Dac6Bit"            	# [<bool>]
        #Option     "Dac8Bit"            	# [<bool>]
        #Option     "BusType"            	# [<str>]
        #Option     "CPPIOMode"          	# [<bool>]
        #Option     "CPusecTimeout"      	# <i>
        #Option     "AGPMode"            	# <i>
        #Option     "AGPFastWrite"       	# [<bool>]
        #Option     "AGPSize"            	# <i>
        #Option     "GARTSize"           	# <i>
        #Option     "RingSize"           	# <i>
        #Option     "BufferSize"         	# <i>
        #Option     "EnableDepthMoves"   	# [<bool>]
        #Option     "EnablePageFlip"     	# [<bool>]
        #Option     "NoBackBuffer"       	# [<bool>]
        #Option     "DMAForXv"           	# [<bool>]
        #Option     "FBTexPercent"       	# <i>
        #Option     "DepthBits"          	# <i>
        #Option     "PCIAPERSize"        	# <i>
        #Option     "AccelDFS"           	# [<bool>]
        #Option     "IgnoreEDID"         	# [<bool>]
        #Option     "CustomEDID"         	# [<str>]
        #Option     "DisplayPriority"    	# [<str>]
        #Option     "PanelSize"          	# [<str>]
        #Option     "ForceMinDotClock"   	# <freq>
        #Option     "ColorTiling"        	# [<bool>]
        #Option     "VideoKey"           	# <i>
        #Option     "RageTheatreCrystal" 	# <i>
        #Option     "RageTheatreTunerPort" 	# <i>
        #Option     "RageTheatreCompositePort" 	# <i>
        #Option     "RageTheatreSVideoPort" 	# <i>
        #Option     "TunerType"          	# <i>
        #Option     "RageTheatreMicrocPath" 	# <str>
        #Option     "RageTheatreMicrocType" 	# <str>
        #Option     "ScalerWidth"        	# <i>
        #Option     "RenderAccel"        	# [<bool>]
        #Option     "SubPixelOrder"      	# [<str>]
        #Option     "ClockGating"        	# [<bool>]
        #Option     "VGAAccess"          	# [<bool>]
        #Option     "ReverseDDC"         	# [<bool>]
        #Option     "LVDSProbePLL"       	# [<bool>]
        #Option     "AccelMethod"        	# <str>
        #Option     "DRI"                	# [<bool>]
        #Option     "ConnectorTable"     	# <str>
        #Option     "DefaultConnectorTable" 	# [<bool>]
        #Option     "DefaultTMDSPLL"     	# [<bool>]
        #Option     "TVDACLoadDetect"    	# [<bool>]
        #Option     "ForceTVOut"         	# [<bool>]
        #Option     "TVStandard"         	# <str>
        #Option     "IgnoreLidStatus"    	# [<bool>]
        #Option     "DefaultTVDACAdj"    	# [<bool>]
        #Option     "Int10"              	# [<bool>]
        #Option     "EXAVSync"           	# [<bool>]
        #Option     "ATOMTVOut"          	# [<bool>]
        #Option     "R4xxATOM"           	# [<bool>]
        #Option     "ForceLowPowerMode"  	# [<bool>]
        #Option     "DynamicPM"          	# [<bool>]
        #Option     "NewPLL"             	# [<bool>]
        #Option     "ZaphodHeads"        	# <str>
	Identifier  "Card0"
	Driver      "radeon"
	VendorName  "Advanced Micro Devices, Inc. [AMD/ATI]"
	BoardName   "RV280 [Radeon 9200 PRO]"
	BusID       "PCI:19:3:0"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
        ### [arg]: arg optional
        #Option     "Accel"              	# [<bool>]
        #Option     "AccelMethod"        	# <str>
        #Option     "TurboQueue"         	# [<bool>]
        #Option     "FastVram"           	# [<bool>]
        #Option     "HostBus"            	# [<bool>]
        #Option     "RenderAcceleration" 	# [<bool>]
        #Option     "ForceCRT1Type"      	# <str>
        #Option     "ForceCRT2Type"      	# <str>
        #Option     "ShadowFB"           	# [<bool>]
        #Option     "DRI"                	# [<bool>]
        #Option     "AGPSize"            	# <i>
        #Option     "GARTSize"           	# <i>
        #Option     "Vesa"               	# [<bool>]
        #Option     "MaxXFBMem"          	# <i>
        #Option     "EnableSiSCtrl"      	# [<bool>]
        #Option     "SWCursor"           	# [<bool>]
        #Option     "HWCursor"           	# [<bool>]
        #Option     "UseColorHWCursor"   	# [<bool>]
        #Option     "Rotate"             	# <str>
        #Option     "Reflect"            	# <str>
        #Option     "Xvideo"             	# [<bool>]
        #Option     "InternalModes"      	# [<bool>]
        #Option     "OverruleFrequencyRanges" 	# [<bool>]
        #Option     "RestoreBySetMode"   	# [<bool>]
        #Option     "ForceCRT1"          	# [<bool>]
        #Option     "XvOnCRT2"           	# [<bool>]
        #Option     "PanelDelayCompensation" 	# <i>
        #Option     "PDC"                	# <i>
        #Option     "PanelDelayCompensation2" 	# <i>
        #Option     "PDC2"               	# <i>
        #Option     "PanelDelayCompensation1" 	# <i>
        #Option     "PDC1"               	# <i>
        #Option     "EMI"                	# <i>
        #Option     "LVDSHL"             	# <i>
        #Option     "ForcePanelRGB"      	# <i>
        #Option     "SpecialTiming"      	# <str>
        #Option     "TVStandard"         	# <str>
        #Option     "UseROMData"         	# [<bool>]
        #Option     "UseOEMData"         	# [<bool>]
        #Option     "YV12"               	# [<bool>]
        #Option     "CHTVType"           	# [<bool>]
        #Option     "CHTVOverscan"       	# [<bool>]
        #Option     "CHTVSuperOverscan"  	# [<bool>]
        #Option     "CHTVLumaBandwidthCVBS" 	# <i>
        #Option     "CHTVLumaBandwidthSVIDEO" 	# <i>
        #Option     "CHTVLumaFlickerFilter" 	# <i>
        #Option     "CHTVChromaBandwidth" 	# <i>
        #Option     "CHTVChromaFlickerFilter" 	# <i>
        #Option     "CHTVCVBSColor"      	# [<bool>]
        #Option     "CHTVTextEnhance"    	# <i>
        #Option     "CHTVContrast"       	# <i>
        #Option     "SISTVEdgeEnhance"   	# <i>
        #Option     "SISTVAntiFlicker"   	# <str>
        #Option     "SISTVSaturation"    	# <i>
        #Option     "SISTVCFilter"       	# [<bool>]
        #Option     "SISTVYFilter"       	# <i>
        #Option     "SISTVColorCalibFine" 	# <i>
        #Option     "SISTVColorCalibCoarse" 	# <i>
        #Option     "SISTVXScale"        	# <i>
        #Option     "SISTVYScale"        	# <i>
        #Option     "TVXPosOffset"       	# <i>
        #Option     "TVYPosOffset"       	# <i>
        #Option     "SIS6326TVAntiFlicker" 	# <str>
        #Option     "SIS6326TVEnableYFilter" 	# [<bool>]
        #Option     "SIS6326TVYFilterStrong" 	# [<bool>]
        #Option     "SIS6326TVForcePlug" 	# <str>
        #Option     "SIS6326FSCAdjust"   	# <i>
        #Option     "YPbPrAspectRatio"   	# <str>
        #Option     "TVBlueWorkAround"   	# [<bool>]
        #Option     "ColorHWCursorBlending" 	# [<bool>]
        #Option     "ColorHWCursorBlendThreshold" 	# <i>
        #Option     "CRT2Detection"      	# [<bool>]
        #Option     "ForceCRT2ReDetection" 	# [<bool>]
        #Option     "SenseYPbPr"         	# [<bool>]
        #Option     "CRT1Gamma"          	# [<bool>]
        #Option     "CRT2Gamma"          	# [<str>]
        #Option     "GammaBrightness"    	# <str>
        #Option     "GammaBrightnessCRT2" 	# <str>
        #Option     "CRT2GammaBrightness" 	# <str>
        #Option     "Brightness"         	# <str>
        #Option     "NewGammaBrightness" 	# <str>
        #Option     "CRT2Brightness"     	# <str>
        #Option     "CRT2NewGammaBrightness" 	# <str>
        #Option     "Contrast"           	# <str>
        #Option     "NewGammaContrast"   	# <str>
        #Option     "CRT2Contrast"       	# <str>
        #Option     "CRT2NewGammaContrast" 	# <str>
        #Option     "CRT1Saturation"     	# <i>
        #Option     "XvGamma"            	# [<str>]
        #Option     "XvDefaultContrast"  	# <i>
        #Option     "XvDefaultBrightness" 	# <i>
        #Option     "XvDefaultHue"       	# <i>
        #Option     "XvDefaultSaturation" 	# <i>
        #Option     "XvDefaultDisableGfx" 	# [<bool>]
        #Option     "XvDefaultDisableGfxLR" 	# [<bool>]
        #Option     "XvChromaMin"        	# <i>
        #Option     "XvChromaMax"        	# <i>
        #Option     "XvUseChromaKey"     	# [<bool>]
        #Option     "XvInsideChromaKey"  	# [<bool>]
        #Option     "XvYUVChromaKey"     	# [<bool>]
        #Option     "XvDisableColorKey"  	# [<bool>]
        #Option     "XvUseMemcpy"        	# [<bool>]
        #Option     "BenchmarkMemcpy"    	# [<bool>]
        #Option     "UseSSE"             	# [<bool>]
        #Option     "XvDefaultAdaptor"   	# <str>
        #Option     "ScaleLCD"           	# [<bool>]
        #Option     "CenterLCD"          	# [<bool>]
        #Option     "EnableHotkey"       	# [<bool>]
        #Option     "ForceCRT1VGAAspect" 	# <str>
        #Option     "ForceCRT2VGAAspect" 	# <str>
        #Option     "MergedFB"           	# [<str>]
        #Option     "TwinView"           	# [<str>]
        #Option     "MergedFBAuto"       	# [<bool>]
        #Option     "CRT2HSync"          	# <str>
        #Option     "SecondMonitorHorizSync" 	# <str>
        #Option     "CRT2VRefresh"       	# <str>
        #Option     "SecondMonitorVertRefresh" 	# <str>
        #Option     "CRT2Position"       	# <str>
        #Option     "TwinViewOrientation" 	# <str>
        #Option     "MetaModes"          	# <str>
        #Option     "MergedDPI"          	# <str>
        #Option     "MergedXinerama"     	# [<bool>]
        #Option     "TwinviewXineramaInfo" 	# [<bool>]
        #Option     "MergedXineramaCRT2IsScreen0" 	# [<bool>]
        #Option     "MergedNonRectangular" 	# [<bool>]
        #Option     "MergedMouseRestriction" 	# [<bool>]
	Identifier  "Card1"
	Driver      "sis"
	VendorName  "Silicon Integrated Systems [SiS]"
	BoardName   "300/305 PCI/AGP VGA Display Adapter"
	BusID       "PCI:9:0:0"
EndSection

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	Monitor    "Monitor0"
	SubSection "Display"
		Viewport   0 0
		Depth     1
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     4
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     8
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     15
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     16
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     24
	EndSubSection
EndSection

Section "Screen"
	Identifier "Screen1"
	Device     "Card1"
	Monitor    "Monitor1"
	SubSection "Display"
		Viewport   0 0
		Depth     1
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     4
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     8
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     15
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     16
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     24
	EndSubSection
EndSection
 
In general, xrandr can be used to set the location of monitors on a large shared bitmap. The size of that bitmap depends on the layout of the monitors. For example, three monitors side by side would need a bitmap that is the sum of their widths and the height of the tallest single one. Set that in xorg.conf in the Screen section with the Virtual keyword:
Code:
Section "Screen"
        Identifier "Screen0"
        SubSection "Display"
                Virtual 3200 1200
        EndSubSection
EndSection

I have not tried multiple cards with X for quite a while, and support for xrandr(1) may be limited to Radeon, Intel, and (maybe) Nvidia. Older cards are increasingly less supported by X.Org.
 
One last quick reply on this. I had to switch to a Linux kernel because I wasn't making any headway through FreeBSD. I did however make this work. A Radeon 9250 Dual Head and and an NVIDIA Quadro4 700 XGL dual head with only one head in use. First I installed the NVIDIA driver for the Quadro4. I had to do some configuration massaging on it just so it would display 1024x768 resolution. My monitor's horizontal and vertical refreshes are customized because they never seemed to be detected correctly. Finally I set up the rest of the Xorg file. Here's my example. I sure hope I'm helping somebody out there with this. See my code for xorg.conf below.

I'm just posting in hopes it might serve as a useful example to somebody trying the same. Possibly with different cards. I'll be trying FreeBSD on an old Toshiba laptop that was one of the first generation dual cores and an Intel video chipset next.

Code:
    Section "ServerLayout"
            Identifier     "Xinerama Screen"
            Screen         0  "Screen0" 0 0
            Screen         1  "Screen1" LeftOf "Screen0"
            Screen         2  "Screen2" LeftOf "Screen1"
            InputDevice    "Keyboard0" "CoreKeyboard"
            InputDevice    "Mouse0" "CorePointer"
    EndSection

    Section "Files"
    EndSection

    Section "ServerFlags"
        Option         "Xinerama" "1"
    EndSection

    Section "InputDevice"

        # generated from default
        Identifier     "Mouse0"
        Driver         "mouse"
        Option         "Protocol" "auto"
        Option         "Device" "/dev/psaux"
        Option         "Emulate3Buttons" "no"
        Option         "ZAxisMapping" "4 5"
    EndSection

    Section "InputDevice"
        Identifier     "Keyboard0"
        Driver         "kbd"
    EndSection

    Section "Monitor"
        Identifier     "Monitor0"
        VendorName     "Unknown"
        ModelName      "CRT-0"
        HorizSync       24.0 - 83.0
        VertRefresh     50.0 - 77.0
        Option         "DPMS"
    EndSection

    Section "Monitor"
            Identifier   "Monitor1"
            VendorName   "Monitor Vendor"
            ModelName    "Monitor Model"
            HorizSync       24.0 - 83.0
            VertRefresh     50.0 - 77.0
            Option         "DPMS"
    EndSection

    Section "Monitor"
            Identifier   "Monitor2"
            VendorName   "Monitor Vendor"
            ModelName    "Monitor Model"
            HorizSync       24.0 - 83.0
            VertRefresh     50.0 - 77.0
            Option         "DPMS"
    EndSection

    Section "Device"
        Identifier     "Device0"
        Driver         "nvidia"
        VendorName     "NVIDIA Corporation"
    EndSection

    Section "Device"
        Identifier     "Videocard0"
        Driver         "nvidia"
        VendorName     "NVIDIA Corporation"
        BoardName      "Quadro4 700 XGL"
        Screen  0
    EndSection

    Section "Device"
        Identifier "Card1"
        Driver "ati"
        VendorName "Advanced Micro Devices, Inc. [AMD/ATI]"
        BoardName "ATI Radeon HD 4870 and earlier"
        BusID "PCI:3:1:0"
        Option      "Monitor-VGA-0" "Monitor1"
        Screen 0
    EndSection

    Section "Device"
        Identifier "Card2"
        Driver "ati"
        VendorName "Advanced Micro Devices, Inc. [AMD/ATI]"
        BoardName "ATI Radeon HD 4870 and earlier"
        BusID "PCI:3:1:0"
        Option      "Monitor-DVI-0" "Monitor2"
        Screen 1
    EndSection

    Section "Screen"
        Identifier     "Screen0"
        Device         "Videocard0"
        Monitor        "Monitor0"
        DefaultDepth    24
        Option         "TwinView" "0"
        Option         "metamodes" "1024x768_60 +0+0"
        SubSection     "Display"
            Depth       24
        EndSubSection
    EndSection

    Section "Screen"
        Identifier     "Screen1"
        Device         "Card1"
        Monitor        "Monitor1"
        DefaultDepth    24
        SubSection     "Display"
            Depth       24
        EndSubSection
    EndSection

    Section "Screen"
        Identifier     "Screen2"
        Device         "Card2"
        Monitor        "Monitor2"
        DefaultDepth    24
        SubSection     "Display"
            Depth       24
        EndSubSection
    EndSection
 
Back
Top