# FreeBSD with Triple Head Setup?



## MasterOne (Jan 8, 2012)

I am curious, is anyone here running a triple head setup on FreeBSD? I am fantasizing about a new machine running FreeBSD 9 with three pieces of 27" LCDs on 1920x1080 connected. That would make a very interesting base for using a tiling windows manager. Which graphics hardware is capable of doing accelerated triple/multihead on FreeBSD?


----------



## SirDice (Jan 9, 2012)

The binary Nvidia driver (x11/nvidia-driver) works really well with dual head. I'm guessing triple head shouldn't be a problem either but I never tried it.


----------



## wblock@ (Jan 9, 2012)

Last time I tried it, multiple cards were not supported by FreeBSD with the new xorg.  I need to test it again.


----------



## pboehmer (Jan 10, 2012)

Keep in mind that the configuration below is using fairly dated hardware, so those of you with PCIe system will probably be better off getting a higher end nVidia card with multiple video outs.  Also, the configuration below is not 100% solid.  I have video lockups every now and then (once every couple of weeks).

I have just recently been able to upgrade my outdated 6.4 machine (using an older Xorg version, prior to the 6.9/xrandr) to 8.2 (same hardware) and still keep my multihead with multiple cards working, but it did take a bit of work.  I am currently using an AGP ATI Rage IIc card with 2 Matrox 2064W Millennium cards.  The ATI card is being used as the center display with the 2 Matrox cards flanking on both sides.  I only have 17" AL1706 displays.  I have access to bunch of older PCI video cards, mainly S3/Trident and the such, but the ATI/Matrox combo is the only one that seems to work consistently.

The first step was to patch Xorg's xf86pciBus.c using a patch I found on one of the many Ubuntu forums called "default_primary_to_first_busid.patch".  The default xf86pciBus.c file would keep specifying one the Matrox cards as the primary card, resulting in full system lockup (not exactly sure why).  Since the AGP card has the first busID, the patch will make it the primary video device.  I also disabled both hal and dbus.

Nothing special in the xorg.conf.  I have xinerama and clone disabled, as well as AutoAddDevices and AllowEmptyInput.  Other than that, I specified each device, screen and in the ServerLayout section, the layout.

I also think the other key is the Window Manager.  I am using E16, which in my config, actually launches an E16 session for each screen.  This layout has pros (isolated sessions) and cons (can't drag windows between screens, but copy/past works), but since I use this configuration for multiple terminal sessions, this is an ideal setup for me

I can provide more information if needed, but the bottom line is that it's a PITA to get it to work.


----------



## MasterOne (Jan 10, 2012)

Honestly, that does not look all that compelling.

My alternative plan would be to use three computers for the three screens and have sysutils/synergy running on each machine, which is a setup I actually have in use with two computers on two screens (one running an older version of Ubuntu, the other with Debian Lenny).


----------



## wblock@ (Jan 10, 2012)

pboehmer said:
			
		

> The first step was to patch Xorg's xf86pciBus.c using a patch I found on one of the many Ubuntu forums called "default_primary_to_first_busid.patch".



Could you post a link to the patch?



> Nothing special in the xorg.conf.  I have xinerama and clone disabled, as well as AutoAddDevices and AllowEmptyInput.



AEI should be left at the default.



> I also think the other key is the Window Manager.  I am using E16, which in my config, actually launches an E16 session for each screen.  This layout has pros (isolated sessions) and cons (can't drag windows between screens, but copy/past works), but since I use this configuration for multiple terminal sessions, this is an ideal setup for me



Offhand, seems like it would also work with a multi-screen session.  I'm certainly interested in testing that.


----------



## pboehmer (Jan 11, 2012)

wblock@ said:
			
		

> Could you post a link to the patch?



I have two patches below that are pretty self explanatory.  *I did not create these patches*. I wish I could remember where I got them and give the appropriate credit to the author.  

default_primary_to_first_busid.patch

default_primary_to_last_busid.patch




			
				wblock@ said:
			
		

> AEI should be left at the default.



Since AEI doesn't like the music that I like *AND* apparently hates puppies, I'll re-enable it 



			
				wblock@ said:
			
		

> Offhand, seems like it would also work with a multi-screen session.  I'm certainly interested in testing that.



I would assume that if xinerama is enabled, E16 will only launch a single session.



			
				MasterOne said:
			
		

> Honestly, that does not look all that compelling.
> 
> My alternative plan would be to use three computers for the three screens and have sysutils/synergy running on each machine, which is a setup I actually have in use with two computers on two screens (one running an older version of Ubuntu, the other with Debian Lenny).



I would agree 100%, it was a royal PITA to get things to finally work.  But also consider that I have been using this setup since at least REL4.x and had an established workflow, its hard to use anything else.

Again, if its a new enough machine, you can always get a newer nVidia card.  My coworker next to me has a quad screen setup running on FreeBSD using a Quadro NVS 450 card.  I am hoping my next workstation will have a similar card.


----------

