Red Hat Bugzilla – Bug 30858
MGA G450 troubles with dual screen
Last modified: 2007-04-18 12:32:01 EDT
An attempt to use two displays on Matrox G400 or G450 card with
XFree86-4.0.2-11.4.0 results in following in logs:
(==) ServerLayout "XFree86 Configured"
(**) |-->Screen "Screen0" (0)
(**) | |-->Monitor "Q95-2"
(**) | |-->Device "G400_1"
(**) |-->Screen "Screen1" (1)
(**) | |-->Monitor "Q95-2"
(**) | |-->Device "G400_2"
and otherwise things looks more or less ok with this exception that
they do not work. In depth 24 a screen flashes funny colours and
then goes blank. In depth 16 a blue background shows up on a screen
with a very low resolution and a display is seriously garbled (a
cursor is a number of separate vertical lines moving together).
In depth 8 server fails with SIGSEGV.
Using with the same configuration file mga_drv.o module from Matrox
(ftp://ftp.matrox.com/pub/mga/archive/linux/, version beta_1_00_05),
which relies on a binary only mga_hal_drv.o (bummer!) makes a dual
display screen work. Attached is diff from log files in a non-working
and working situations.
Log diffs are from x86 machine with G450. Restults are similar on
Alpha with G450 with this exception that I do not have there Matrox
supplied modules to get a working configuration.
Created attachment 11943 [details]
diffs log files with a working and non working double screen
The matrox mga driver is currently not functioning with dualhead on G400 and G450.
I am currently working with Matrox on getting G450 to work dualhead,
but we consider it an "added bonus" kind of thing rather than a
supported thing. Even so, I'm still working at getting this going.
I'm not able to get G450 singlehead to work so I'm relying on external patches
as I have no docs to work with.
The G400 though I do have docs for and am using singlehead as I type, so
I can try to get dualhead going sometime unless someone beats me to it.
G450 single and dualhead is not functional in XFree86 4.0.3-3
Ok.. slamming my head on the keyboard.. The above should have read:
G450 single and dualhead is now functional in XFree86 4.0.3-3
Really dumb typo. Perhaps I was just used to saying it.. ;o)
Works now though.
new version of X is definitely a great improvement over its
predecessors. Truly thanks! Among higlights - it does not lock up
anymore on Alpha with Matrox G450 because a "wrong" mode starts
"Modes" line in XF86Config-4; I did not manage to lock the whole
machine by going to a text console and back - slowly (it was a
guaranteed bad move on Alpha); and both Intel and Alpha either refuse
to run some Mesa demos or run them mostly ok instead of some weirdness
from time to time.
But it is not there yet. Here are trouble spots.
On x86 with G400 a dual screen support (both two screens and xinerama)
appear to work. I have all right stuff in my log files and I can open
various clients on display :0.1 or I have a screen reported by
xdpyinfo and shown in pager to be of a double width. The only small
problem remains that I do not have a signal on the second connector
and hooking up a monitor there leaves it blank. I do have a picture
on this output if I will use Matrox, binary-only, driver module so
there is nothing wrong with a hardware. Even with this, in a xinerama
mode, a toolbar obviously stretches out to the second screen but it is
not displayed there. Sigh! With two screens and a Matrox module
there are some grey strips at the bottom and the top of my second
screen but otherwise it works correctly.
On Alpha (G450) things pretend start doing doing a dual mode but
neither two screens nor xinerama show up in any form. A hardware
acceleration also fails. Still this becomes useable for "regular
users" even if not all capabilities.
If you would like to see some log files tell me what would be of
interest. I think that marking this as RESOLVED is somewhat
BTW - I positively hate that every update of XFree86 is messing
up my /etc/X11/fs/config file. No biggie, but I have to go there
every time with an editor and correct the damage.
A documentation which comes with recently released by Matrox
"beta_1_3_0" of their drivers clarifies some mysteries of a dual
screen/xinerama support for MGA G400 and G450 cards.
This documentation says that for G400 to support the above a binary
only (only Intel) module mga_hal_drv.o is REQUIRED. Indeed, if only
their mga_drv.o, which is really XFree86 module plus some nasty hacks,
is loaded then a behaviour is exactly like with a regular XFree86
driver. That means that with a proper configuration the second
display appears to exist, as far as software is concerned, but there
is no picture on a monitor screen.
OTOH the same documentation mentions that for G450 and dual screen
this HAL module is not needed. Indeed, I got that working on Alpha
with XFree86-4.0.3-18 (recompiled to work with glibc-2.1 :-) with
the following caveats:
a) For the second screen BusID (PCI) has to be explicitely specified
in a configuration file or it will be not found. Somewhat painful
if different kernels are booted as IDs are not the same with 2.2
and 2.4 Linux kernels. For the main screen this can be ommited
in a configuration and X server will find it on a startup by itself.
b) With a resolution (virtual) higher than 1024x768 a picture on the
second screen sports various artifacts (wobbly, or "shadows", or
"horizontal rain" some distance to the right from a window, or all of
the above). With the same monitor and the same cable there are no
problems on the first screen or when relatively low resolutions are
c) Old bugs in Gnome libraries make using two separate screens, as
opposed to xinerama, quite hacky.