Matrox G200 (SE) in SR2600 server fails to start X server on CentOS 5

On CentOS 5 (and possibly the corresponding RHEL), the Matrox G200 driver fails when using an embedded G200SE on a SR2600 server.  If you run the X server under gdb or look at the last lines of the Xorg.0.log output, you can see that the X server stopped loading due to the mga_drv.so driver module producing a segmentation fault.  The segmentation fault is due to incorrect probing of the available memory size.

Unfortunately, this problem is due to a Red Hat patch in the xorg-x11-drv-mga-1.4.13-5.el5 package.  The offending patch is mga-1.4.13-revision-reg.patch.  It causes 16384KB of video RAM to be probed when a G200SE is present, but only 16320KB is available on the SR2600.

Rebuild CentOS 5 RPM from Source RPM

To fix this problem, one could rebuild the xorg-x11-drv-mga RPM from source.  Since subsequent patches depend on the faulty patch, you will have to create a patch to back out the changes in the faulty patch and edit the .spec file to apply the backout patch after the other patches are applied.  This is a little convoluted but is really the easiest solution.

Rebuild from Xorg sources

Another approach would be to build the xf86-video-mga driver from Xorg git sources.  This will require building a more current xorg/util/macros, which in turn requires Autoconf 2.6 at a minimum.  The autoconf26x package for CentOS 5 can be installed from the IUS repository.  To force autogen.sh to use the Autoconf 2.6 tools instead of the system version, prepend the appropriate environment variables:

AUTOM4TE=autom4te2.6x AUTOCONF=autoconf2.6x AUTOHEADER=autoheader2.6x sh autogen.sh && make

Then move the xorg-macros.m4 and xorgversion.m4 to your /usr/share/aclocal, backing up the previous versions.  Once these are in place, go back to your xf86-video-mga and delete the aclocal.m4 and autom4te.cache and then run autogen.sh.  It should build a src/.libs/mga_drv.so module which you can then move into place at /usr/lib/xorg/modules/drivers/mga_drv.so.  This would be whatever is in the “latest and greatest” Matrox driver which might include even more bugs, so be cautious.

Leave a Reply