• Published on | Jul 21, 2007 | by Chris Osborn

I cut off one head and two grow back in its place

After many years of junk collecting, I have acquired a large number of Matrox Millennium II cards. These cards have a rather unique feature in that you can put more than one of them in a computer and use them at the same time. Those of you that used to run NeXTSTEP/OPENSTEP no doubt recognize this card. In all I have five of the Millennium II cards. I also have an AGP Millennium G200 which also supports the multi-card feature.

In order for this to be a "worthwhile" demonstration, I decided I would try out OPENSTEP, Linux, and Windows XP. I cobbled together a stand of sorts to arrange the six monitors. It's nothing special, I expect this to be a temporary setup so ergonomics weren't much of a factor. I can't look at the monitors on top for long because they are so high that it strains my neck.

The motherboard I chose is an older Tyan S2460 with dual Athlon 1200 processors. The monitors I'm using are three 15" monitors and three 17" monitors. The 17" monitors are all identical, the 15" monitors are two random CRTs and an IBM T55D digital LCD.

The computer with 6 PCI slots and 1 AGP slot

To start off I thought I'd boot KNOPPIX and get the disk partitioned while I wait for the latest Ubuntu distro to download. The kernel on the KNOPPIX 5.1.1 disk did not like so many cards. It would immediately reboot the computer as soon as the kernel was loaded. Without the extra cards KNOPPIX would boot fine. By the time I had given up getting KNOPPIX to boot the Ubuntu had been downloaded and burned.

Ubuntu was able to boot up fine. Interestingly, while the text console came up on the G200/T55D in the AGP slot, X11 decided that my video card was the first PCI card. Switching back and forth between X11 and the text console via the keystrokes would switch back and forth between monitors. When the text console was active the 17" monitor turned off, but when X11 was active, the T55D stayed on but the screen was blanked out.

Ubuntu did not detect the additional cards by itself. I couldn't find any GUI or control panel to let me add the additional cards or arrange them. This meant I had to delve into manually configuring X11, a task which I really loathe. I hate all that modeline and sync rate crap. I did find this guide which does a good job detailing most of the process of getting multi-head going.

I cut & pasted the section relating to the working video card to try to bring a second one up. Both displays came up, but they are mirrors of each other! Uh... That's not what I wanted. Checking over the xorg.conf I noticed I forgot the RightOf option. Corrected the error and tried again and I had two monitors working the way I expected.

After getting two screens to work I copied & pasted to pick up the other three Millennium II cards. It again only brought up two monitors. Thinking maybe it was a limitation that I could only have two (although I've seen photos of at least five on other sites), I tried again with only the center and the left. Only got the center that time. So I tried again with only the left. Xorg complained there were no screens detected and listed out all the cards it found and said there were no Device sections for them. Wait, what's this? They're listed in decimal and I punched in hexadecimal just like I got from lspci. Changed it and now I get all five displays.

I was unable to get X11 to use the sixth display. Lots and lots of searching and fighting with the config file yielded no results. Every single time X11 fired up, it would clear the screen, pause for a second, then shut the T55D display off. The best I can tell is that no-one has ever succeeded in getting the T55D working under Linux. Ever.

Running Ubuntu

The next thing to try was XP. After XP finished the text console part of the install it had no problems switching to the graphic installer. XP was quite happy to display graphics on the T55D without shutting it off. During the hardware detection phase the monitors connected to the PCI cards started snapping on one-by-one, but they did not display anything on them yet. After finishing the install all I had to do was go into the desktop properties and check that I wanted to expand my desktop onto the additional screens and drag them around to match my physical layout. I didn't have to go online and download drivers or anything. I guess that's an advantage to using older hardware, the drivers are stock. I was able to get all six screens working under XP without any hassles.

For the heck of it, I tried playing a video clip and dragging it around between the heads. I could only play it on three of the heads, the AGP and the first 2 PCI slots. On the others it would either stay black and start again when I got it back onto a working head, or else it would stop playing and WMP didn't know it had stopped. Changing the hardware acceleration options in WMP made no difference. This might be a problem with sharing IRQs, I don't know.

Running Windows

To install OPENSTEP I had to remove the G200/T55D. With the G200/T55D installed the graphic text console would shut the T55D off. With the card removed and the console coming up on another display, I discovered that I couldn't install OPENSTEP onto the 13gig drive I had already set aside a partition for.

OPENSTEP is so old it couldn't count high enough and wasn't able to see the partition table of the disk. I dug out a 4gig HD just to install OPENSTEP onto. Still didn't like it. Mostly installed but still had problems calculating the size during the final step. Broke out OPENSTEP on Parallels to make a disk image the same size as the partition I had set aside on the 13gig, and imaged the whole thing over. No go, wouldn't boot.

Found an option in the BIOS to change the disk type from "Other" to "DOS". Made OPENSTEP a lot happier, it realized I had more than a 200meg disk. I was able to fully install, although it still didn't see the original partition table. I let it wipe out the partition table since I expected I could recreate it, and if not I had already tried the other two operating systems anyway. (As a side note, I was able to use gpart to recover the Linux partition. I couldn't recover the XP partition since the OPENSTEP partition now overlapped it.)

Once I installed the 4.10 "beta" MGA driver OPENSTEP was happy to detect all five of the Millennium II cards. Unfortunately there was a bug in the Screen preference and I was not able to rearrange the screens to match my physical layout. I probably could have gone in and manually changed the appropriate settings, but at this point it wasn't really worth it. I was able to see that all the cards were working which was good enough.


While having five or six heads is certainly cool, this was only a temporary setup. I sort of would like to find a way to justify keeping the six headed monster, it might be fun to make a nice stand (maybe out of K'Nex?). Unfortunately none of the operating systems I tried out are ones that I can sit in front of and work with all day. I don't really have any use for Windows, there aren't any programs on it that I use that much. Linux is at least a unix, but the GUI still blows. I manage around 20 Linux computers, but of them, only one is connected full time to a monitor, and that's my MythTV box. OPENSTEP 4.2 is just too dated with no USB support, no DPMS support, no modern software, etc. If I could run MacOS X with six heads, I'd probably do it, I still use a Mac with a G4 450 every day as my main computer simply because I can run it dual headed.

In the end this project was of course a stupid waste of time.


Join The Discussion

+1  Posted by itomato • Aug.24.2007 at 09.11 • Reply

What's your OS of choice, if you didn't test it? I would think Solaris would be able to use the feature, and it's probably (at least xsun has) been put to such use in the past, and has had some of the kinks worked out.

If I were a SCO-head, I'd keep quiet about it, too..

BeOS? That would do it. BeOS Max is a "free"-ish download.


+1  Posted by Chris Osborn • Aug.24.2007 at 09.19 • Reply

OSX of course.

+1  Posted by Adonis • Aug.27.2007 at 19.54 • Reply

Awesome!!! (kudos for the OpenSTEP trial!)

I'd run VMS on it - NOT!!!!!!

OS X, of course! ;)

+1  Posted by Chris Osborn • Aug.28.2007 at 00.14 • Reply

If only I could run OSX on it.

+1  Posted by FISCHBACH • Sep.13.2009 at 22.59 • Reply

Hy Sir, I would like to do the same thing of you. I have a PC with NEXTSTEP 3.3 and I want to install 2 video boards to have 2 screens. I buy some boards Matrox Millenium 2 and I don't if they are really Matrox Millenium 2 video boards, on the chip I can see MGA 2064. On NEXTSTEP I don't know really which driver to install, 2064, 2164, Millenium or Millenium 2 ? Ther's conflict with Millenium driver. Could you help me ? regards.David.

+1  Posted by Chris Osborn • Sep.14.2009 at 04.43 • Reply

You can use either Millennium or Millennium 2 cards. If you have Millennium 2 cards, on the back should be a couple of stickers that say MIL2P, the chip they use is a 2164. When you add the drivers you should see two instances of the card installed, when you add the second driver choose the other card.

+1  Posted by FISCHBACH • Sep.14.2009 at 07.01 • Reply

Hy again and thanks for your help. I think I have Millenium boards, with 2064 writed on the chip not 2164. Can I have a double screen with two 2064, do you confirm it ? is there something special to do to install the drivers ? and wich drivers exactly because the 2064 driver bugs for the moment.Do you take the drivers on the CD Patch 2 of Apple ? Regards. David

+1  Posted by FISCHBACH • Sep.15.2009 at 05.56 • Reply

Hy again and thanks !! it works with two Matrox millenium video boards with chip 2064 ! in PCI format, it's easy to install. thanks Sir. David

+1  Posted by FISCHBACH • Sep.16.2009 at 07.57 • Reply

Hy, can we install a Matrox G200 AGP with a Matrox millenium 2064 PCI ? could it work ? I can see that NEXTSTEP boot on the PCI first. Regards. David

+1  Posted by Chris Osborn • Sep.16.2009 at 07.59 • Reply

Beats me. I've only done dual Millennium and dual Number 9 Imagine 128 cards under NeXTSTEP.