busted mga driver in xfree86-server

When I did apt-get upgrade and went into 4.3.0.dfsg.1-14sarge2
of xserver-xfree86, the next reboot saw dozens of errors like these:

Required symbol MGAValidateMode from module
/usr/X11R6/lib/modules/drivers/mga_drv.o is unresolved!
Required symbol MGASetMode from module
/usr/X11R6/lib/modules/drivers/mga_drv.o is unresolved!
Required symbol MGASetMode from module
{...dozens more...}

It ends with fatal error.

The mga driver was working fine before the sarge2 update.
Prior to that, I had many months of nice dual monitor use.
I've tried reinstall, uninstall with purge and install.
I've tried booting an older kernel. Nothing fixes
this incompatibility with the mga driver.

I've tried forcing downgrade versions to sarge1:
for pack in `COLUMNS=200 dpkg -l | grep x | grep 4.3.0.dfsg.1-14sarge2 | awk
'{print $2}'`; do apt-get -y install --reinstall
$pack=4.3.0.dfsg.1-14sarge1; done

That didn't help - same errors.

I have backups of XFree86Config so it isn't an issue
with losing something there.

If I get rid of the dual monitor config, I can run
it OK with vesa driver. But I want mga and dual screen
desktop space.

I'm loath to switch to xorg and unstable to fix this.
I want my desktop to be a nearly zero maintance box
so I can spend my time maintaining 32 other Redhat,
Solaris, Debian and FreeBSD boxes at work.

I saw a bit about compiling one's own DRI driver modules
from xorg, but I'd rather work with whatever sources
Debian has, whereever they can be found.

Does anyone know?

--Donald

0

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Verify whether mga*drv.o isn't corrupt

Hi there

The md5 checksum of the mga_drv.o and mga_hal_drv.o I have is:


6325eab7cdb621836b6a1d29537637b4 mga_drv.o
f3aa641ab8feebac1bddb7aa4182e511 mga_hal_drv.o

as of version 4.3.0.dfsg.1-14sarge2 of xserver-xfree86.

What is yours?

In addition I tried using 'nm'. It will list you any defined symbols of an object file (e.g mga_drv.o).

Example:

$ nm mga_drv.o | grep MGAValidateMode
U MGAValidateMode

Interestingly enough, 'U' means undefined.
So I checked mga_hal_drv.o:


$ nm mga_hal_drv.o | grep MGAV
00000d66 T MGAValidateMode
00000db6 T MGAValidateVideoParameters

There you go ('T' means text, so that's code that may be executed).

CONCLUSION
The missing symbols are defined in mga_hal_drv.o, but mga_hal_drv.o doesn't seem to be shipped in any Debian package anymore (probably not free?).

Cheers, Georg

Official Matrox driver

Hi there again

Perhaps just unpacking the official Matrox driver (e.g. ftp://ftp.matrox.com/pub/mga/archive/linux/2006/matrox_driver-x86_32-4.4.0.tar.gz) and copying matrox_driver-x86_32-4.4.0/xserver/4.3.0/mga_hal_drv.o over to your X11 drivers directory is enough (i.e. no need to compile stuff).

Try it before you waste your time compiling.

Good luck,
Georg

proprietary drivers worked

Hi,

Thanks for the follow ups. That nm tracing tool is
useful to know about. I was wondering what the
ldd counterpart was for this problem.

I did as you suggested and the Matrox provided
mga binary drivers did the trick and support DRI
in the first monitor, which is great.

Issue resolved.

Prior to this, I built the xserver-xfree86 package
with debian sources, which were a revision behind
at sarge1, and should have given me the old stuff
that worked again. It did not work. Same errors.

At least for older Matrox cards (mine is G450), the
binary support from Matrox is the only way to go.

I wonder how it works in Xorg - I don't see any reference
to Xorg on Matrox's site.

--Donald

Matrox drivers not just binary

Hi Donald

The Matrox drivers for the G4xx cards are actually open source. And this exact same code is included in XFree86 and Xorg (i.e. its the original code from Matrox, not a reengineered driver like with ATI or Nvidia).

I don't know whether this is true for the hal (hardware abstraction layer) stuff though.

But if you feel like, just download the source code for the driver at Matrox's site and see for yourself.

Good that it worked!
Cheers,
Georg

Syndicate content