# sudo sh m9xdriver-x86_32-1.4.2.run [ENTER]

Notes and known issues:
1. To install the driver type as the root user: sh ./ m9xdriver-x86_64-1.4.2-69111-20131128-build_88.run
2. If downloading from a non-Linux operating system right click on the link and choose to "save as"
3. README
4. Limited Technical Support will be provided. Corporate level support is available to qualified clients. Please contact Matrox sales for more information.

[English]

README.TXT MATROX GRAPHICS INC. 2013.12.16

Matrox M-Series/Extio F2x08 Series

Linux Display Driver v1

Preface

======

The terms "X Server config file" and "xorg.conf" are used

interchangeably. The file is located in the "/etc/X11" directory.

The terms "X log file" and "Xorg.0.log" are used interchangeably.

The file is located in the "/var/log" directory.

In the command sequence examples, the pound ('#') sign represents

the command prompt and shouldn't be typed. Note that [ENTER] means

pressing the 'Enter' key on your keyboard.

The command sequence examples in this Readme file refer to the

32-bit package named "m9xdriver-x86_32-1.4.2.run". If you're using

the 64-bit package, use "m9xdriver-x86_64-1.4.2.run".

Note: On some systems you may need to enter "su - root" instead of

"su root" when changing to the root user account. Some systems

prevent this operation. The alternative is to use the "sudo"

command at the beginning of every command that must be run as

root. For more information on root user, see Appendix C.

Note: Some steps of the driver installation require that you

manually edit files. If you're not familiar with text editing

under Linux, see Appendix C.

Contents

======

Section 01 - Description of this release

Section 02 - Installation requirements

Section 03 - Driver installation and configuration

Section 04 - Multi-display configuration

1 - DualHead independent

2 - DualHead merged

3 - TripleHead independent

4 - TripleHead merged

5 - QuadHead independent

6 - QuadHead merged

7 - Pivot

8 - Multiple GPU configurations

Section 05 - Dynamic configuration

Section 06 - Xinerama

Section 07 - Troubleshooting

Section 08 - Frequently asked questions

Appendix A - Installer options

Appendix B - Installed files

Appendix C - Important preliminary information for new Linux users

Section 01 - Description of this release

======

This release supports the following:

- X Server (6.9.0 to 1.13)

- Linux kernel (2.6 to 3.10)

This release was tested with the following distributions of the

i386 and x86-64 architectures:

- RHEL 5.7 (X 7.1.1, kernel 2.6.18), 5.8, 5.9, 6.0, 6.1, 6.2,

6.3, 6.4 (X 1.13, kernel 2.6.32)

- CentOS 6.3, 6.4 (X 1.13, kernel 2.6.32)

- Fedora Core 16 (X 1.11, kernel 3.2.10), 17 and 18 (X 1.13,

kernel 3.6.10)

- SLE 10.4 (X 6.9, kernel 2.6.16), 11, 11.1, 11.2, 11.3

(X 1.6.5, kernel 3.0.76)

- OpenSuSE 12.2 (X 1.12, kernel 3.4.6), 12.3 (X 1.13,

kernel 3.7.10)

- Ubuntu 10.04 (X 1.7.6, kernel 2.6.32), 12.04, 12.10, 13.04

(X 1.13, kernel 3.8.0)

Graphics cards:

- M9120 PCIe x16

- M9120 Plus LP PCIe x16

- M9120 Plus LP PCIe x1

- M9125 PCIe x16

- M9128 LP PCIe x16

- M9138 LP PCIe x16

- M9140 LP PCIe x16

- M9148 LP PCIe x16

- M9188 ATX PCIe x16

- Extio F2208, F2408, F2408E Expander

Display configurations:

- Up to 4 displays per GPU, depending on the graphics card

(some graphics cards are limited to 2 displays).

- Joined desktop with Xinerama to provide a larger virtual

desktop with multiple GPUs. For limitations with Xinerama,

see Section 06.

- Single, Clone, Merged, and Independent modes.

- Pivot support can be controlled for each display.

Display resolutions:

- Analog: up to 2048x1536 (up to 1920x1200 with a quad analog

upgrade cable or with the M9140 LP PCIe x16).

- Digital: up to 1920x1200 (as well as 2560x1600 for

DisplayPort products, and in dual-link mode for

M9125 PCIe x16).

Note: The driver included in this package may be compatible with

additional Linux distributions, provided that the installation

requirements outlined in Section 02 are met.

Section 02 - Installation requirements

======

- X Server (6.9.0 to 1.13).

To improve performance and for OpenGL support, a kernel module

must be compiled specifically for the targeted kernel. To compile

your kernel module, the following packages must be installed on

your system:

- Linux kernel 2.6 to 3.10 with the corresponding header files

or kernel source code. * All distributions support up to kernel version 2.6.32.

- GCC compiler version 3.2 or later.

- Glibc 2.3.2 or later.

- Binutils 2.13 or later.

- Make 3.77 or later.

Section 03 - Driver installation and configuration

======

The following steps will help you install the driver and start

your X Server in cloned display mode:

1) Install the Matrox display driver.

# su root [ENTER]cat /etc/x11/xorg.conf

# sh m9xdriver-x86_32-1.4.2.run [ENTER]

or, depending on your system (like Ubuntu)

# sudo sh m9xdriver-x86_32-1.4.2.run [ENTER]

2) Make sure an X Server configuration file exists:

# cat /etc/X11/xorg.conf [ENTER]

If you get an error message (such as "No such file or

directory"), you'll need to create a new default X Server

configuration file. To do this, type:

# cd /root

# X -configure

# mv /root/xorg.conf.new /etc/X11/xorg.conf

(This can be done only while no X server is running.)

On recent versions of X, the command "X -configure" will render

a config file containing every possible video device for the

GPU currently on the system. If a system has only a Matrox GPU,

you may find a "m9x" device section, as well as sections with

"fbdev" and "vesa" drivers. A config file produced by

"X -configure" running on a system with an integrated GPU in

addition to a Matrox GPU, will contain even more devices.

With X version 1.9, we recommend using the output of

"X -configure" as a reference only, not as a config file.

The following basic xorg.conf has been tested and works with X

version 1.7 and later. The only thing to edit is the PCIBus ID.

Section "ServerLayout"

Identifier "Layout0"

Screen 0 "Screen0" 0 0

InputDevice "Keyboard0" "CoreKeyboard"

InputDevice "Mouse0" "CorePointer"

EndSection

Section "Files"

EndSection

Section "ServerFlags"

EndSection

Section "InputDevice"

Identifier "Mouse0"

Driver "mouse"

Option "Protocol" "auto"

# Option "Device" "/dev/psaux"

Option "Device" "/dev/input/mice"

Option "Emulate3Buttons" "no"

Option "ZAxisMapping" "4 5"

EndSection

Section "InputDevice"

Identifier "Keyboard0"

Driver "kbd"

EndSection

Section "Monitor"

Identifier "Monitor1"

EndSection

Section "Device"

Identifier "Videocard0"

Driver "m9x"

BusID "PCI:1:0:0"

EndSection

Section "Screen"

Identifier "Screen1"

Device "Videocard0"

Monitor "Monitor1"

DefaultDepth 24

EndSection

3) Open the X Server configuration file for editing.

# vi /etc/X11/xorg.conf [ENTER]

For more information on how to use the 'vi' text editor, see

Appendix C.

4) Select the Matrox M-Series driver.

In the "Device section", replace the string 'Driver

"somedriver"' with 'Driver "m9x"' (Normally, this shouldn't

be necessary since running X -configure after installing the

driver installation creates a valid configuration with the

proper driver.)

For example:

Replace:

Driver "vesa"

with:

Driver "m9x"

5) Select the appropriate graphics card address.

In the "Device" section, enter the proper BusID value for your

card.

For example, if your Bus ID is 1:0.0, add the following line

or edit the existing line to read:

BusID "PCI:1:0.0"

To obtain the BusID value for your card, use the command:

# lspci -d 102b:* [Enter]

You'll see the following output:

0000:01:00.0 VGA compatible controller: Matrox Graphics,

Inc. Unknown device 0540 (rev 01)

Ignore the first string of numbers (i.e. "0000"). In this

example, the BusID would be PCI:1:0.0.lspci -

Note: The output of lspci is in hexadecimal, and X Server

config requires it in decimal. You need to convert the

numbers if they get higher than 9.

6) Specify your default display pixel depth.

In the "Screen" section, replace the string "DefaultDepth"

with the desired bits-per-pixel value (8/16/24).

For example:

Section "Screen"

Identifier "screen1"

Device "device1"

Option "monitor-mon0" "monitor1"

DefaultDepth 24

EndSection

7) Restart the system.

# reboot [ENTER]

After the system restarts, the X Server should start

automatically using the M-Series driver. If the system

restarts in a text console, log in and type:

# startx [ENTER]

to manually start the X Server.

For more information on the "Xorg config" file format, type

'man xorg.conf' in a shell terminal to view all options available

in an X Server config file. For more information, see the Web

sites http://xorg.freedesktop.org/wiki/ and

http://www.x.org for X.org.

Section 04 - Multi-display configuration

======

The following explains how to manually modify your X Server

configuration file to configure your driver in one of the

multi-display configurations supported by your Matrox driver. The

configurations are based on the RandR 1.2 specification. For more

information, see its documentation found on the Web or in

"man xorg.conf".

In RandR, each display must have a name. For the m9x driver, the

names are respectively "mon0", "mon1", "mon2", and "mon3". These

names must be used in the "Screen" section of the xorg.conf to

describe the configuration.

For independent configurations without Xinerama, each "Device"

section must specify the Option "Independent".

You can copy and paste any of the statements below that apply to

the configuration you want to enable.

Note on positioning: X server supports keywords "Below", "RightOf",

"LeftOf", and "Above". However, in multi-display configurations, we

recommend using only "Below" and "RightOf". Since X server counts

screens from the upper left corner, screens positioned "LeftOf"

and "Above" get negative coordinates and may be misplaced. If you

must use "LeftOf" and "Above" to position your screens, it's best

to use numeric values.

1 - DualHead independent

------

While using DualHead independent mode, each display can have

different refresh rates and resolutions. Each display uses a

different frame buffer.

The following is a partial sample of an X Server config section:

Section "Monitor"

Identifier "monitor1"

EndSection

Section "Monitor"

Identifier "monitor2"

EndSection

Section "Device"

Identifier "device1"

Driver "m9x"

BusID "PCI:1:0:0"

Screen 0

Option "Independent"

EndSection

Section "Device"

Identifier "device2"

Driver "m9x"

BusID "PCI:1:0:0"

Screen 1

Option "Independent"

EndSection

Section "Screen"

Identifier "screen1"

Device "device1"

Option "monitor-mon0" "monitor1"

DefaultDepth 24

EndSection

Section "Screen"

Identifier "screen2"

Device "device2"

Option "monitor-mon1" "monitor2"

DefaultDepth 24

EndSection

Section "ServerLayout"

Identifier "X.org Configured"

Screen "screen1"

Screen "screen2" RightOf "screen1"

EndSection

2 - DualHead merged

------

While using DualHead merged mode, all displays use the same frame

buffer.

The following is a partial sample of an X Server config section:

Section "Monitor"

Identifier "monitor1"

EndSection

Section "Monitor"

Identifier "monitor2"

Option "RightOf" "monitor1"

EndSection

Section "Device"

Identifier "device1"

Driver "m9x"

BusID "PCI:1:0:0"

Screen 0

EndSection

Section "Screen"

Identifier "screen1"

Device "device1"

Option "monitor-mon0" "monitor1"

Option "monitor-mon1" "monitor2"

DefaultDepth 24

EndSection

3 - TripleHead independent

------

TripleHead independent mode is similar to DualHead independent

mode. It needs additional "Monitor", "Device", and "Screen"

sections. The new "Screen" section is added to the server layout

section with the desired relative position.

The following is a partial sample of an X Server config section:

Section "Monitor"

Identifier "monitor1"

EndSection

Section "Monitor"

Identifier "monitor2"

EndSection

Section "Monitor"

Identifier "monitor3"

EndSection

Section "Device"

Identifier "device1"

Driver "m9x"

BusID "PCI:1:0:0"

Screen 0

Option "Independent"

EndSection

Section "Device"

Identifier "device2"

Driver "m9x"

BusID "PCI:1:0:0"

Screen 1

Option "Independent"

EndSection

Section "Device"

Identifier "device3"

Driver "m9x"

BusID "PCI:1:0:0"

Screen 2

Option "Independent"

EndSection

Section "Screen"

Identifier "screen1"

Device "device1"

Option "monitor-mon0" "monitor1"

DefaultDepth 24

EndSection

Section "Screen"

Identifier "screen2"

Device "device2"

Option "monitor-mon1" "monitor2"

DefaultDepth 24

EndSection

Section "Screen"

Identifier "screen3"

Device "device3"

Option "monitor-mon2" "monitor3"

DefaultDepth 24

EndSection

Section "ServerLayout"

Identifier "X.org Configured"

Screen "screen1"

Screen "screen2" RightOf "screen1"

Screen "screen3" RightOf "screen2"

EndSection

4 - TripleHead merged

------

TripleHead merged mode is similar to DualHead merged mode. It

needs a third "Monitor" section with the desired relative

position. This new "Monitor" section must be declared in the

"Screen" section and bound to the next available output.

The following is a partial sample of an X Server config section:

Section "Monitor"

Identifier "monitor1"

EndSection

Section "Monitor"

Identifier "monitor2"

Option "RightOf" "monitor1"

EndSection

Section "Monitor"

Identifier "monitor3"

Option "RightOf" "monitor2"

EndSection

Section "Device"

Identifier "device1"

Driver "m9x"

BusID "PCI:1:0:0"

Screen 0

EndSection

Section "Screen"

Identifier "screen1"

Device "device1"

Option "monitor-mon0" "monitor1"

Option "monitor-mon1" "monitor2"

Option "monitor-mon2" "monitor3"

DefaultDepth 24

EndSection

5 - QuadHead independent

------

QuadHead independent mode is similar to DualHead independent mode.

It needs two additional "Monitor", "Device", and "Screen"

sections. The two new "Screen" sections are added to the server

layout section with the desired relative position.

The following is a partial sample of an X Server config section:

Section "Monitor"

Identifier "monitor1"

EndSection

Section "Monitor"

Identifier "monitor2"

EndSection

Section "Monitor"

Identifier "monitor3"

EndSection

Section "Monitor"

Identifier "monitor4"

EndSection

Section "Device"

Identifier "device1"

Driver "m9x"

BusID "PCI:1:0:0"

Screen 0

Option "Independent"

EndSection

Section "Device"

Identifier "device2"

Driver "m9x"

BusID "PCI:1:0:0"

Screen 1

Option "Independent"

EndSection

Section "Device"

Identifier "device3"

Driver "m9x"

BusID "PCI:1:0:0"

Screen 2

Option "Independent"

EndSection

Section "Device"

Identifier "device4"

Driver "m9x"

BusID "PCI:1:0:0"

Screen 3

Option "Independent"

EndSection

Section "Screen"

Identifier "screen1"

Device "device1"

Option "monitor-mon0" "monitor1"

DefaultDepth 24

EndSection

Section "Screen"

Identifier "screen2"

Device "device2"

Option "monitor-mon1" "monitor2"

DefaultDepth 24

EndSection

Section "Screen"

Identifier "screen3"

Device "device3"

Option "monitor-mon2" "monitor3"

DefaultDepth 24

EndSection

Section "Screen"

Identifier "screen4"

Device "device4"

Option "monitor-mon3" "monitor4"

DefaultDepth 24

EndSection

Section "ServerLayout"

Identifier "X.org Configured"

Screen "screen1"

Screen "screen2" RightOf "screen1"

Screen "screen3" RightOf "screen2"

Screen "screen4" RightOf "screen3"

EndSection

6 - QuadHead merged

------

QuadHead merged mode is similar to DualHead merged mode. It

needs two new "Monitor" sections with the desired position. These