4.5. Matrox framebuffer (mga_vid)

mga_vid is a combination of a video output driver and a Linux kernel module that utilizes the Matrox G200/G400/G450/G550 video scaler/overlay unit to perform YUV->RGB colorspace conversion and arbitrary video scaling. mga_vid has hardware VSYNC support with triple buffering. It works on both a framebuffer console and under X, but only with Linux 2.4.x.

For a Linux 2.6.x version of this driver check out http://attila.kinali.ch/mga/ or have a look at the external Subversion repository of mga_vid which can be checked out via

svn checkout svn://svn.mplayerhq.hu/mga_vid


  1. To use it, you first have to compile drivers/mga_vid.o:

    make drivers

  2. Then run (as root)

    make install-drivers

    which should install the module and create the device node for you. Load the driver with

    insmod mga_vid.o

  3. You should verify the memory size detection using the dmesg command. If it's bad, use the mga_ram_size option (rmmod mga_vid first), specify card's memory size in MB:

    insmod mga_vid.o mga_ram_size=16

  4. To make it load/unload automatically when needed, first insert the following line at the end of /etc/modules.conf:

    alias char-major-178 mga_vid

  5. Now you have to (re)compile MPlayer, ./configure will detect /dev/mga_vid and build the 'mga' driver. Using it from MPlayer goes by -vo mga if you have matroxfb console, or -vo xmga under XFree86 3.x.x or 4.x.x.

The mga_vid driver cooperates with Xv.

The /dev/mga_vid device file can be read for some info, for example by

cat /dev/mga_vid

and can be written for brightness change:

echo "brightness=120" > /dev/mga_vid

There is a test application called mga_vid_test in the same directory. It should draw 256x256 images on the screen if all is working well.