Support for 4-monitor desktop system (Linux problems)

Previously I talked how I wanted to have third monitor, and even bought a second graphics card for that, but it didn’t work out because the system, graphically, became extremely slow. Probably due to the fact that the graphics card was extremely low-end and the driver couldn’t somehow handle them both.

Both of those cards were NVIDIA, but despite that, the driver didn’t work properly, and it wasn’t worth using.

Yesterday I was browsing local eBay alternative, probably for servers, and found this baby:

Matrox M9148 LP PCIe x16

M9148LP_PCIeX16

The Matrox M9148 LP PCIe x16 quad graphics card renders pristine image quality on up to four DisplayPort™ monitors at resolutions up to 2560 x 1600 per output for an exceptional multi-monitor user experience. With 1 GB of memory and advanced desktop management features, the M9148 LP PCIe x16 card supports both independent or stretched desktop modes and drives business, industrial, and government applications with extraordinary performance. Its low-profile form factor makes it easy to integrate into a wide variety of systems. It offers multiple operating system support, and can be paired with another M9148 graphics card to support up to eight DisplayPort monitors from a single system.

Now this supports four displays, and has DisplayPort, and along with the sale comes three DisplayPort › DVI cables, so I can hook my old monitors to it hopefully.

At the local electronics supermarket these go for 650 € but I managed to score one for just 58 €. Even on eBay they have been sold for over 200 € and even at higher prices. Couple have gone for pennies via auctions but generally this card seems to be quite professional and high ranked.

They advertise Linux support even on their site so I am quite hopeful that Fedora 22 will understand and work with the card. Didn’t check it out so fingers crossed that nothing surprising comes along.

Two monitors work just fine but with electronics design I have noticed that it isn’t quite enough. Ideally two monitors would be occupied one by schematic and one by PCB, and then on third monitor there could be documentation and even fourth monitor could become handy because Digikey or some other parts catalog could be there all the time.

And then fifth for personal stuff.

But same goes for system administrators. Two monitors for work and third for documentation and fourth and fifth could be occupied some static content such as monitoring the systems.

Then something like this would be quite optimal:

2_291200-552x432

But lets start with three.

According to Matrox, their M-series has supported Fedora since version 10, so it should be expected that there will be no problems.

Matrox_Linux_support

http://www.matrox.com/graphics/en/products/graphics_cards/m_series/linux_distributions.html

Linux problems

The driver does not support Xorg versions newer than 1.15, which is the last supported version. So if you intend to use M9148 in Linux, make sure you are running no newer than 1.15 version of Xorg.

I have kindly asked Matrox Technical support to make the drivers support 1.17 but who knows if they still support this device. It is only 2 years old so in my opinion they should. And there are some indications that when the problem existed previously for 1.15, they made the changes.

But for now there is no support for Xorg 1.16, 1.17 or anything newer.

Solving the problem

Since 60 € was already spent on this graphics card I am going to spend 80 € more to get Samsung 850 EVO 120GB and try to make a switch from Fedora 22 to Debian 7, which is still new and supported distribution but it has older version of Xorg, and should therefore support the card.

So it’s not a Linux problem per se but the card simply won’t function in Fedora 22 because that is a distribution which is riding the cutting edge of software development, whereas Debian is more of stability and compatibility oriented. Debian 7 also has GNOME and it is version 3 so not too many things should change hopefully.

Because waiting for Matrox to release new version of drivers might take forever and it still might not happen.

Three hours later

Well that was money well wasted.

The device works perfectly well in Windows 7 but at no time did I get any signal to second display using Debian 7. In Windows the driver even has nice professional looking control panel, but in Linux you are on your own.

One display works perfectly fine. So perhaps there is some chance that with enough dedication and time and will you can make it work but it will probably require some insight into X server and there is one user whom got it to work by using xrandr.

Here’s a thread: http://ubuntuforums.org/showthread.php?t=2158868

And his Xorg configuration:

Section "ServerLayout"
    Identifier     "X.org Configured"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" RightOf "Screen0"
    Screen      2  "Screen2" RightOf "Screen3"
    Screen      3  "Screen3" Below "Screen0"
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
    ModulePath   "/usr/lib/xorg/modules"
    FontPath     "/usr/share/fonts/X11/misc"
    FontPath     "/usr/share/fonts/X11/cyrillic"
    FontPath     "/usr/share/fonts/X11/100dpi/:unscaled"
    FontPath     "/usr/share/fonts/X11/75dpi/:unscaled"
    FontPath     "/usr/share/fonts/X11/Type1"
    FontPath     "/usr/share/fonts/X11/100dpi"
    FontPath     "/usr/share/fonts/X11/75dpi"
    FontPath     "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
    FontPath     "built-ins"
EndSection

Section "Module"
    Load  "glx"
EndSection

Section "InputDevice"
    Identifier  "Keyboard0"
    Driver      "kbd"
EndSection

Section "InputDevice"
    Identifier  "Mouse0"
    Driver      "mouse"
    Option      "Protocol" "auto"
    Option      "Device" "/dev/input/mice"
    Option      "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
    Identifier   "Monitor0"
    VendorName   "Monitor Vendor"
    ModelName    "Monitor Model"
EndSection

Section "Monitor"
    Identifier   "Monitor1"
    VendorName   "Monitor Vendor"
    ModelName    "Monitor Model"
EndSection

Section "Monitor"
    Identifier   "Monitor2"
    VendorName   "Monitor Vendor"
    ModelName    "Monitor Model"
EndSection

Section "Monitor"
    Identifier   "Monitor3"
    VendorName   "Monitor Vendor"
    ModelName    "Monitor Model"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option     "NoAccel"               # [<bool>]
        #Option     "SWcursor"              # [<bool>]
        #Option     "Independent"           # [<bool>]
        #Option     "UseKernelModule"       # [<bool>]
        #Option     "mon0_forcedvi"         # [<bool>]
        #Option     "mon1_forcedvi"         # [<bool>]
        #Option     "mon2_forcedvi"         # [<bool>]
        #Option     "mon3_forcedvi"         # [<bool>]
        #Option     "ICDOP1"                # [<bool>]
        #Option     "ICDOP2"                # [<bool>]
    Identifier  "Card0"
    Driver      "m9x"
    BusID       "PCI:1:0:0"
        Screen      0
        Option      "Independent"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option     "SWcursor"              # [<bool>]
        #Option     "kmsdev"                # <str>
        #Option     "ShadowFB"              # [<bool>]
    Identifier  "Card1"
    Driver      "m9x"
    BusID       "PCI:1:0:0"
        Screen      1
        Option      "Independent"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option     "ShadowFB"              # [<bool>]
        #Option     "Rotate"                # <str>
        #Option     "fbdev"                 # <str>
        #Option     "debug"                 # [<bool>]
    Identifier  "Card2"
    Driver      "m9x"
    BusID       "PCI:1:0:0"
        Screen      2
        Option      "Independent"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option     "ShadowFB"              # [<bool>]
        #Option     "DefaultRefresh"        # [<bool>]
        #Option     "ModeSetClearScreen"    # [<bool>]
    Identifier  "Card3"
    Driver      "m9x"
    BusID       "PCI:1:0:0"
        Screen      3
        Option      "Independent"
EndSection

Section "Screen"
    Identifier "Screen0"
    Device     "Card0"
    Monitor    "Monitor0"
EndSection

Section "Screen"
    Identifier "Screen1"
    Device     "Card1"
    Monitor    "Monitor1"
EndSection

Section "Screen"
    Identifier "Screen2"
    Device     "Card2"
    Monitor    "Monitor2"
EndSection

Section "Screen"
    Identifier "Screen3"
    Device     "Card3"
    Monitor    "Monitor3"
EndSection

In this article an ordinary NVIDIA card was used so that should work.

What next?

I will probably try NVIDIA GeForce 670 GTX:

s-l1600

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *