# Dual monitors with Mach64, Intel driver



## ritterhaus (Jul 10, 2009)

Each adapter works normally if it is the primary adapter, neither works as the secondary. Here's the OS:


```
uname -v
FreeBSD 7.2-RELEASE #0: Fri May  1 08:49:13 UTC 2009     root@walker.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC
```

Video cards as reported by pciconf:


```
pciconf -lv
...
vgapci0@pci0:0:2:0:	class=0x038000 card=0x019d1028 chip=0x25728086 rev=0x02 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82865G Integrated Graphics Device'
    class      = display
...
vgapci1@pci0:1:0:0:	class=0x030000 card=0x80081002 chip=0x47521002 rev=0x27 hdr=0x00
    vendor     = 'ATI Technologies Inc'
    device     = 'Rage XL PCI'
    class      = display
    subclass   = VGA
```

My current setup has the Mach64 as the primary and the integrated Intel chip as the secondary. The xorg.conf file looks like this:


```
Section "ServerLayout"
	Identifier     "X.org Configured"
	Screen      0  "LeftScreen" 0 0
	Screen      1  "RightScreen" RightOf "LeftScreen"
	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  "extmod"
	Load  "record"
	Load  "dbe"
	Load  "glx"
	Load  "dri"
	Load  "dri2"
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"
	#DisplaySize	  300   220	# mm
	Identifier   "CompaqMonitor"
	VendorName   "CPQ"
	ModelName    "COMPAQ 5017"
	HorizSync    30.0 - 61.0
	VertRefresh  56.0 - 75.0
	Option	    "DPMS"
EndSection

Section "Monitor"
	Identifier   "DellMonitor"
	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     "probe_sparse"       	# [<bool>]
        #Option     "accel"              	# [<bool>]
        #Option     "crt_display"        	# [<bool>]
        #Option     "composite_sync"     	# [<bool>]
        #Option     "hw_cursor"          	# [<bool>]
        #Option     "force_pci_mode"     	# [<bool>]
        #Option     "dma_mode"           	# <str>
        #Option     "agp_mode"           	# <i>
        #Option     "agp_size"           	# <i>
        #Option     "local_textures"     	# [<bool>]
        #Option     "buffer_size"        	# <i>
        #Option     "tv_out"             	# [<bool>]
        #Option     "tv_standard"        	# <str>
        #Option     "mmio_cache"         	# [<bool>]
        #Option     "test_mmio_cache"    	# [<bool>]
        #Option     "panel_display"      	# [<bool>]
        #Option     "reference_clock"    	# <freq>
        #Option     "shadow_fb"          	# [<bool>]
        #Option     "sw_cursor"          	# [<bool>]
        #Option     "AccelMethod"        	# <str>
        #Option     "RenderAccel"        	# [<bool>]
	Identifier  "ATICard"
	Driver      "mach64"
	VendorName  "ATI Technologies Inc"
	BoardName   "Rage XL"
	BusID       "PCI:1:0: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     "NoAccel"            	# [<bool>]
        #Option     "SWcursor"           	# [<bool>]
        #Option     "ColorKey"           	# <i>
        #Option     "CacheLines"         	# <i>
        #Option     "Dac6Bit"            	# [<bool>]
        #Option     "DRI"                	# [<bool>]
        #Option     "NoDDC"              	# [<bool>]
        #Option     "ShowCache"          	# [<bool>]
        #Option     "XvMCSurfaces"       	# <i>
        #Option     "PageFlip"           	# [<bool>]
	VideoRam	24576
	Identifier  "IntelCard"
	Driver      "intel"
	VendorName  "Intel Corporation"
	BoardName   "82865G Integrated Graphics Controller"
	BusID       "PCI:0:2:0"
EndSection

Section "Screen"
	Identifier "LeftScreen"
	Device     "ATICard"
	Monitor    "CompaqMonitor"
	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
		#Virtual	2048 768
	EndSubSection
EndSection

Section "Screen"
	Identifier "RightScreen"
	Device     "IntelCard"
	Monitor    "DellMonitor"
	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
```

The error at the end of the Xorg.0.log file:


```
...
(WW) intel(1): VideoRam configuration found, which is no longer recommended.
(II) intel(1): Continuing with default 131072kB VideoRam instead of 24576 kB.
(EE) GARTInit: Unable to open /dev/agpgart (No such file or directory)
(EE) intel(1): /dev/agpgart is either not available, or no memory is available
for allocation.  Please enable agpgart
.(WW) intel(1): VideoRAM reduced to 891 kByte (limited to available sysmem)
(WW) intel(1): VideoRam reduced to 888 KB (page aligned - was 891 KB)
(WW) intel(1): DRI2 requires UXA
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is -1, (No such file or directory)
drmOpenDevice: open result is -1, (No such file or directory)
drmOpenDevice: Open failed
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is -1, (No such file or directory)
drmOpenDevice: open result is -1, (No such file or directory)
drmOpenDevice: Open failed
[drm] failed to load kernel module "i915"
(EE) [drm] drmOpen failed.
(EE) intel(1): [dri] DRIScreenInit failed. Disabling DRI.
(**) intel(1): Framebuffer compression disabled
(**) intel(1): Tiling enabled
(**) intel(1): VideoRam: 888 KB
(II) intel(1): Attempting memory allocation with tiled buffers.
(EE) intel(1): AGP GART support is either not available or cannot be used.
	Make sure your kernel has agpgart support or has
	the agpgart module loaded.
(II) intel(1): Tiled allocation failed.
(II) intel(1): Attempting memory allocation with untiled buffers.
(EE) intel(1): AGP GART support is either not available or cannot be used.
	Make sure your kernel has agpgart support or has
	the agpgart module loaded.
(II) intel(1): Untiled allocation failed.
(EE) intel(1): Couldn't allocate video memory

Fatal server error:
AddScreen/ScreenInit failed for driver 1


Please consult the The X.Org Foundation support 
	 at http://wiki.x.org
 for help. 
Please also check the log file at "/var/log/Xorg.0.log" for additional information.

(II) Screen 0 shares mem & io resources
(II) Screen 1 shares mem & io resources
```

We can safely ignore the videoram errors as they are new (I was trying stuff) but everything else is a pain.

Either adapter will work when it is set as the primary adapter in the BIOS (Dell Dimension 3000) but the secondary adapter always complains about agpgart. This is the generic kernel from a fresh install, so agp SAYS it's loaded (even though the /dev/agpgart device doesn't exist.) I thought that perhaps the Intel driver was trying to load support for the wrong chipset, but the driver works fine when the adapter is the primary.

I've yet to find a definitive answer to the /dev/agpgart issue, and I don't understand why the secondary adapter needs it when the primary doesn't.

Any ideas?

RR


----------

