Matrox Meteor FrameGrabber Driver for Linux v1.5.4

Matrox Meteor FrameGrabber Driver for Linux v1.5.4


Available from: ftp.rwii.com in /pub/linux/system/Meteor


Contents

Preamble
Recent Modification History
Copyright Information
General Historical Background
Older History
Which Model Of Meteor Board Do I Need For Which Processor/Chipset?
Installing
Which bigphysarea patch do I use?
A few words about an alternate driver.

Preamble

This driver represents a collective effort of many developers. Hopefully, most of them are credited within this document.

This driver is under active development. While many are using it with success in fairly rigorous environments, it should be considered beta quality. Adjust your expectations accordingly.

The current maintainer is Mark Sutton mark.sutton@laitram.com.

Contact information is as follows:


Recent Modification History:

6 April 1999 Release of 1.5.4:

22 January 1999 Release of 1.5.3:

23 September 1998 Release of 1.5.2: 31 August 1998: 28 July 1998 27 July 1998

Copyright Information

The driver contains code covered by the following copyrights. These may not be all inclusive, check the source for other copyrights:

Copyright (C) 1998, 1999 Mark Sutton .

Copyright (C) 1998 Ian Reid

The original Linux port was done by Jim Bray:

Copyright (C) 1996 Jim Bray (http://as220.org/jb).

As noted below the original FreeBSD version of the driver was written and copyrighted by Jim Lowe and Mark Tinguely.


General Historical Background

This work was supported by RWI (Real World Interface) Inc., and the AI Lab at Brown University.

This is a port and partial rewrite of the FreeBSD Matrox Meteor FrameGrabber Driver, written by Jim Lowe and Mark Tinguely. Matt Welsh's bigphysarea mechanism is used to substitute for the BSD vm_page_alloc_contig().

It requires at least a 1.3-series kernel, but it hasn't been tested on such an ancient kernel in ages, you should really upgrade to something newer then this for a number of reasons! It also works with v2.x.x series kernels. The bigphysarea patch is not included in the v2.x.x kernel so you still need to make the patch. See the section "Which bigphysarea patch do I use?" below for information on which patch to use for your kernel.

Older and possibly newer versions can be found on ftp.rwii.com in /pub/linux/system/Meteor, which is the driver's home site.


Older History:

Version 1.0: 5/1/96 Version 1.1: 5/6/96 Version 1.2: 14/May/96 Ian Reid (ian@robots.ox.ac.uk) Version 1.3 22/May/96 Ian Reid (ian@robots.ox.ac.uk) Version 1.4 17/July/96 ian@robots.ox.ac.uk & anuj@fwi.uva.nl Version 1.4a 23/7/96 Version 1.4b 5/11/96 Version 1.4c 20/2/97

Which Model Of Meteor Board Do I Need For Which Processor/Chipset?

(Read This Section!!!!!! It Is Important!!)

There has been tremendous confusion in the meteor user's mailing list lately regarding which meteor to use with which processor and/or chipset.

I make an attempt here to clear up the muddiness somewhat.

Point # 1:
This Linux driver supports the Meteor, Meteor/RGB, Meteor/PPB, and Meteor/RGB/PPB boards. IT DOES NOT CURRENTLY SUPPORT the Meteor-II. All discussion below refers to the first four boards mentioned above, NOT the Meteor-II.

All the above mentioned products are currently in production and, according to Matrox, will be for several more years.

Point # 2:
Matrox makes four (4) variations of the original Meteor. The Meteor, Meteor/RGB, Meteor/PPB, and Meteor/RGB/PPB.

The "RGB" boards have the ability to grab images from an RGB type camera.

Now comes the interesting part:

The "PPB" boards were introduced to address compatibility problems with early Pentium PRO motherboards.

This is a hardware issue, not a driver issue. Some, and I stress SOME, Pentium Pro, and Pentium-II mother board implementations require a PPB board to work correctly, others REQUIRE one of the non-PPB designated boards, e.g. a Meteor, or Meteor/RGB (without the PPB designation).

This is a HARDWARE issue. What I am about to say here holds true for DOS, Windows/95/98/NT, as well as for Linux (and BSD, etc.)

Unfortunately, there have been exceptions reported to almost all of the combinations outlined, but basically:

   486 PCI implementations                 Forget it, won't work.

   "Orion" chipset.                        Forget it, won't work.

   Pentium 430** chipsets (Triton Series)  Meteor (non-PPB)

   PPro/P-II 440FX                         Meteor/PPB

             440LX                         Problematic,
                                           Some require Meteor/PPB,
                                           some require Meteor,
                                           some work with both,
                                           some work with neither.
                                           (no bull)
                                           (BTW, we have an LX
                                           ABIT brand motherboard
                                           that works perfectly in all
                                           modes - yes including
                                           YUV_PLANER - with our
                                           non-PPB meteors, but my
                                           mail files have been innundated
                                           with horror stories about
                                           this chipset and meteors.
                                           AVOID!)

           440EX                           Meteor (non-PPB)

           440BX                           Meteor (non-PPB)

Non-Intel Pentium chipsets:                YMMV.  I have seen positive 
                                           success reports with SiS
                                           chipsets.
Bottom Line:

With the Triton series and a non-PPB, you're golden.

With the 440FX and the PPB, you're ok.

440EX or 440BX with non-PPB is good.

AVOID THE 440LX!!!!!

I need some reports regarding chipsets newer than 440BX.

If you have a 440LX based system that you just must use a Meteor with, see if your distributor will sell you one of each and let you return the one that doesn't work. (Or return both if neither do...).

Finally:

Most Matrox distributors are telling people: "Use a non-PPB with a Pentium, and a PPB with a PPro or P-II". THIS IS BAD INFORMATION!!!!! GO BY THE TABLE ABOVE!

This is true for Windows/95/98/NT as well as Linux!

(Rant mode off... I apologize!)

BTW: The file "http://www.matrox.com/imgweb/products/meteor/meteor.pdf" contains a compatibility table by PC model, that tells you which Meteor version you need for specific PC's. The good news is that it helps sort out, to some extent, which 440LX systems use the PPB, and which use the non-PPB. The bad news is that the list is far from all-inclusive of all available computers! (The list jibes with the table above, to the extent of the computer models it covers...)


Installing:

  1. If you are running SMP, you must uncomment the two SMP lines near the top of the Makefile.
  2. Change the SYSTEM variable near the top of the Makefile to whatever you want your default system to be.
  3. Make sure you have kernel 1.3.72 or newer. Preferably, 2.0.32 or newer. This driver will absolutely not work on anything older than 1.3.72 and the current maintainer does not have ready access to kernels earlier than the 2.0.X series so nothing earlier than 2.0.X is officially supported anymore (although they might work).
  4. If you don't already have bigphysarea in your kernel, do patch -p1 <bigphysarea-patch in the kernel root directory, usually /usr/src/linux. See the next section to help you determine which bigphysarea patch is the one you need. Run "make config", "make menuconfig", or (my favorite) "make xconfig" in the kernel root directory. Select the Reserve Big Physical Memory item in the General Setup Menu. Remake your kernel.

    Note: the newest bigphysarea patch for the 2.2.5 kernel (which works on several other 2.2.x series kernels, see below) does not add this selection to the "make *config" process. With this patch, bigphysarea reservation will be turned on all the times in a kernel patched with this patch.

  5. You will need to add stuff like this to your /etc/lilo.conf:
    image=/vmlinuz
    	label=linux-big
    	append="bigphysarea=XXX" 
    	root=/dev/hda2
    	read-only
    
    XXX = number of 4k-pages. For example, to grab one image 640x480x32bpp use 301. If you get ENOMEMs, increase the XXX value.
  6. If you want to use kerneld, add this to /etc/conf.modules:
    alias char-major-40 meteor
    
    If you are not using kerneld, (the neat autoloading thing), it probably isn't necessary.
  7. Do mknod {0,1} c 40 {0,1} to produce
    crw-r--r--   1 root     root      40,   0 Mar 14 22:19 /dev/mmetfgrab0
    crw-r--r--   1 root     root      40,   0 Mar 14 22:19 /dev/meteor0
    
    crw-r--r--   1 root     root      40,   1 Mar 14 22:19 /dev/mmetfgrab1
    crw-r--r--   1 root     root      40,   1 Mar 14 22:19 /dev/meteor1
    
    or whatever you prefer. The test programs will look for the mmetfgrab names.
  8. If you have just upgraded your kernel, you need to delete the file "kernelversioninfo.h" in the "meteor-1.5.4" directory and then re-make the driver. This will cause the makefile to reconfigure for your new kernel version.
  9. Do make and make install in the source directory. You need to SU for the make install. The make install will do depmod -a for you. Just cut this line out if you will be using insmod/rmmod. Do this make while running the kernel image you intend to use the driver with.

    The RedHat module directories are not compatible with this makefiles' "make install" so enough lines have been commented out in this pre-release that "make install" will probably not do anything useful. We just put meteor.o somewhere convenient and use insmod/rmmod. (Mark Sutton - mark.sutton@laitram.com). Fixing the makefile is probably not very hard though, maybe in the next pre-release...

    Your meteors can all use the same IRQ, and are set up for IRQ sharing with other devices. Note that the other devices are more than likely not, but if you can load the module, it means everything should be OK regarding IRQ allocation/sharing.

  10. You will need to be running kerneld or manually insmod the module.
  11. If you have problems, uncomment the DEBUG_METEOR and SHOW_CAPT_ERRORS lines in meteor.h and remake, etc to see a lot of chatter about what is going on.

Which bigphysarea patch do I use?:

Patches for a number of 2.0.XX series stable kernels are available from: http://www.uni-paderborn.de/fachbereich/AG/heiss/linux/bigphysarea.html. Simply pick the one for your kernel. Most, if not all, of these patches can also be found at ftp://rwii.com/pub/linux/system/Meteor

At the above two sites, you will find a patch for kernel 2.2.5 also. I have found this patch to work for 2.2.2 - 2.2.5 inclusive.

The above patch may work for 2.2.0 and 2.2.1 also. If not, you can try "2.2.0-pre8.bigphys.patch" at the ftp.rwii.com site. Note that this "pre8" patch has a bug that disables SMP functions in SMP machines, yikes! Best to stick with the stable "2.2.5" patch and update your kernel if you have to.


A few words about an alternate driver:

I have posted a highly re-written version of the driver, submitted by Mark Wolski on the ftp.rwii.com site as meteor-1.5.4a-alternate.tar.gz. Here is a download link.

This driver uses features that absolutely require a 2.2.x series kernel. It will not work at all on 2.0.x kernels. (It probably works on some of the very last 2.1.x kernels.)

Features of this driver include:

Caveats regarding this driver.

This driver is exactly what Mark Wolski sent to me.

I plan to fold the improvements of this driver into the main driver, probably in the next release. A config script would allow the user to pick what features to enable (E. g. himemfb vs. bigphysarea) and maintain backward compatibility.