success with matrox g400/XF86 Dualhead 2 monitor display in Debian
EDIT: Apologies - got posted half way through in error - this is now the full post
I have posted dozens of requests for help and almost always got some help. This is my first attempt to pay someone back. I am only a newbie and this is a newbie-level attempt. If anyone has improvements, or observations, then chip in.
Lots of people (me included) have had trouble setting up dual displays with dualhead cards. I have finally figured out how to do it with a Matrox g400 dualhead card. Since the drivers are the same for the 450 and 550 it might work for them.
The main steps are:
1. Download the latest mga drivers from the matrox site. The ones I got were contained in the file mgadriver-4.1.tar.gz. DO NOT USE MATROX'S OWN INSTALLER - it trashed my xf86config file.
2. Copy the driver file to a directory somewhere and untar the file. This should give you several directories and an install script. There is an install readme file in the docs directory.
3. Open a terminal as root, change to the driver's directory and type sh install.sh . This should install the mga and hal drivers - just follow the instructions. Make sure that the drivers go in the right directory when the script asks you for the path.
4. Restart X or reboot.
5. Open a text editor as root and open XF86Config-4 - usually in /etc/X11
6. Make a backup copy (!) as something like XF86Config-4onescreencopy. Reopen the original XF86Config-4 file.
7. Edit the file as follows:
a) Replace your serverlayout section with this:
Identifier "Dual Layout"
Screen "Screen 0" LeftOf "Screen 1"
Screen "Screen 1" 0 0
InputDevice "Configured Mouse" "CorePointer"
InputDevice "Generic Keyboard" "CoreKeyboard"
# Option "Xinerama"
Change the content of for the mouse and keyboard to what is in your original xf86config-4 file. Note I have commented out the xinerama option because I want two SEPERATE screens not one extended one. If you want one big screen, enable xinerama. Note that if you opt for two separate ones like I have, you cannot drag open windows from one to the other. But you CAN have different resolutions etc for each screen. Up to you.
b) Replace your monitor, screen and other input devices with these sections:
Option "DPMS" "true"
HorizSync 31.0 - 83.0
VertRefresh 56.0 - 76.0
HorizSync 31.5 - 48
VertRefresh 56.0 - 76
Option "HWcursor" "off"
Option "HWcursor" "off"
Identifier "Screen 0"
Identifier "Screen 1"
Modes "1024x768" "800x600"
Make the relevant changes to these settings - namely: monitor names (they can be anything), refresh rates (must be correct for your monitors or you could fry them) insert the modes you want (again must be supported by the monitors - see that one of mine is ok at 1280, the other won't run above 1024), and a default colour depth figure - 16 should be ok to start with and then up it if you want when everything is working ok.
Make sure that the drivers stay named as mga . Open a terminal as root and do an lspci to find the BUS ID for your matrox card. The relevant line in mine looks like this:
0000:01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G400 AGP (rev 04) . The number you want is at the front - 01:00:0. This is the number that goes in place of the BUS ID in the Device Section above if yours is different.
c) If you want to use xinerama I believe you cannot have dri enabled. You may need to comment out the "load dri" instruction in the Modules section. If you opt for two separate displays like me, leave "load dri" enabled and put this section in at the end of the XF86Config-4 file (if it is not already there):
OK. Save a copy of the file as something like XF86Config-4dual. Save it again as XFConfig-4 and reboot.
It should all work ok. If you still only get one screen, post here for further advice, including your XF86Config-4 file. If everything goes blank, and you are dumped at a prompt, then x has failed to load. DON'T PANIC! Log in as root. Change to the /etc/X11 directory and rename the XF86Config-4onescreencopy backup file you made as the new XFConfig-4 file and type startx or reboot. That will put you back to square one.
Hopes this helps someone.
Last edited by arjay; 08-16-2005 at 05:07 AM.