Announcement

Collapse
No announcement yet.

Triple Head - almost working

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Triple Head - almost working

    Hello,

    I recently brought a docking station for my trusty T60 in order to use two external screens(20", 1680x1050), which would give me an incredible screen size of 4800x1050 (internal 14" TFT is 1440x1050). Unfortunately, the onboard chip(intel) is limited to 4096x4096, so I put an old HD 2400 PRO into the docking station and connected the external screens to it. My xorg.conf is as following:
    Code:
    Section "ServerLayout"
            Identifier     "X.org Configured"
            Screen        "Screen0"
            Screen        "Screen1"
    #       Screen          "Screen2"
            InputDevice    "Mouse0" "CorePointer"
            InputDevice    "Keyboard0" "CoreKeyboard"
            Option         "Xinerama" "off"
    #       Option          "Clone" "false"
    EndSection
    
    Section "Files"
            ModulePath   "/usr/lib64/xorg/modules/updates"
            ModulePath   "/usr/lib64/xorg/modules"
            FontPath     "/usr/share/fonts/misc:unscaled"
            FontPath     "/usr/share/fonts/TTF/"
            FontPath     "/usr/share/fonts/OTF/"
            FontPath     "/usr/share/fonts/Type1/"
            FontPath     "/usr/share/fonts/100dpi:unscaled"
            FontPath     "/usr/share/fonts/75dpi:unscaled"
            FontPath     "/usr/share/fonts/URW/"
            FontPath     "/usr/share/fonts/cyrillic:unscaled"
            FontPath     "/usr/share/fonts/misc/sgi:unscaled"
            FontPath     "/usr/share/fonts/truetype/"
    EndSection
    
    Section "Module"
            Load  "record"
            Load  "glx"
            Load  "dbe"
            Load  "dri2"
            Load  "vnc"
            Load  "dri"
            Load  "extmod"
    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   "MonitorIntern"
            Option "DPMS"
    #       Option "Primary"    "True"
    EndSection
    
    Section "Monitor"
            Identifier   "MonitorM"
            Option  "DPMS"
            #Option "LeftOf" "MonitorIntern"
    #       Option  "LeftOf" "MonitorIntern"
    EndSection
    
    Section "Monitor"
            Identifier   "MonitorL"
            Option "DPMS"
            Option "LeftOf" "MonitorM"
    EndSection
    
    #Section "Monitor"
    #       Identifier      "MonitorD"
    #EndSection
    
    Section "Device"
            Identifier  "Card0"
            Driver      "radeon"
            BusID       "PCI:12:0:0"
            Option      "monitor-VGA-1" "MonitorL"
            Option   "monitor-DVI-0" "MonitorM"
            #Option "monitor-DIN" "MonitorD"
            Option "NoMergedXinerama" "true"
            Option "MergedFB" "false"
            Screen  0
    EndSection
    
    #Section "Device"
    #       Identifier  "Card1"
    #       Driver      "radeon"
    #       BusID       "PCI:12:0:0"
    #       #Option     "monitor-VGA-1" "MonitorL"
    #       Option   "monitor-DVI-0" "MonitorM"
    #       #Option "monitor-DIN" "MonitorD"
    #       Option "NoMergedXinerama" "true"
    #       Option "MergedFB" "false"
    #       Screen  1
    #EndSection
    
    Section "Device"
            Identifier  "Card1"
            Driver  "intel"
            BusID   "PCI:0:2:0"
            Option  "monitor-LVDS1" "MonitorIntern"
    #       Option  "monitor-VGA1" "MonitorM"
    #       Screen 2
    EndSection
    
    Section "Screen"
            Identifier "Screen0"
            Device "Card0"
            Monitor "MonitorL"
            SubSection "Display"
                    Modes "1680x1050"
                    Depth 24
            EndSubSection
    EndSection
    
    Section "Screen"
            Identifier "Screen1"
            Device "Card0"
            Monitor "MonitorM"
            SubSection "Display"
                    Modes "1680x1050"
                    Depth 24
            EndSubSection
    EndSection
    
    #Section "Screen"
    #       Identifier "Screen1"
    #       Device "Card0"
    #       Monitor "MonitorM"
    #       SubSection "Display"
    #               Depth 24
    #       EndSubSection
    #EndSection
    
    Section "Screen"
            Identifier "Screen2"
            Device  "Card1"
    #       Monitor "MonitorM"
            Monitor "MonitorIntern"
            SubSection "Display"
                    Depth 24
            EndSubSection
    EndSection
    It works fine when I only use the external screens, but when I uncomment Screen2 in the server section, funny things happen:
    First of all, during the logon process, only the external displays are usable, but the image spans both screens(like Xinerama). The internal display gets somewhat usable when KDE is started, i.e. you can add a panel to it and start applications, but you aren't able to drag windows from/to one of the other screens. All three displays have DRI working fine. I could live with the "separation" of the third display, but
    my question is: how can I force X to treat the external displays as separate screens and not spanning the image over both?

  • #2
    Just curious, why not order the displays so that the Intel one works?

    For example:

    Comment


    • #3
      Well, the Intel card isn't very fast anyways. Even if I only use my internal screen, desktop effects(KWin) sometimes lag... When I disable effects completely and using only one external screen(for example a beamer, 1024x768) scrolling in Firefox gets already painfully slow.

      Comment


      • #4
        Originally posted by maxf View Post
        All three displays have DRI working fine. I could live with the "separation" of the third display, but
        my question is: how can I force X to treat the external displays as separate screens and not spanning the image over both?
        To do that, you need to add separate screen/device sections for each each head on the discrete card.

        Comment


        • #5
          Tried it, doesn't work. xorg.conf in this case is as following:
          Code:
          Section "ServerLayout"
                  Identifier     "X.org Configured"
                  Screen        "Screen0"
                  Screen        "Screen1" RightOf "Screen0"
                  Screen        "Screen2" RightOf "Screen1"
                  InputDevice    "Mouse0" "CorePointer"
                  InputDevice    "Keyboard0" "CoreKeyboard"
                  Option         "Xinerama" "off"
          EndSection
          
          Section "Files"
                  ModulePath   "/usr/lib64/xorg/modules/updates"
                  ModulePath   "/usr/lib64/xorg/modules"
                  FontPath     "/usr/share/fonts/misc:unscaled"
                  FontPath     "/usr/share/fonts/TTF/"
                  FontPath     "/usr/share/fonts/OTF/"
                  FontPath     "/usr/share/fonts/Type1/"
                  FontPath     "/usr/share/fonts/100dpi:unscaled"
                  FontPath     "/usr/share/fonts/75dpi:unscaled"
                  FontPath     "/usr/share/fonts/URW/"
                  FontPath     "/usr/share/fonts/cyrillic:unscaled"
                  FontPath     "/usr/share/fonts/misc/sgi:unscaled"
                  FontPath     "/usr/share/fonts/truetype/"
          EndSection
          
          Section "Module"
                  Load  "record"
                  Load  "glx"
                  Load  "dbe"
                  Load  "dri2"
                  Load  "vnc"
                  Load  "dri"
                  Load  "extmod"
          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   "MonitorIntern"
                  Option "DPMS"
          EndSection
          
          Section "Monitor"
                  Identifier   "MonitorM"
                  Option  "DPMS"
          EndSection
          
          Section "Monitor"
                  Identifier   "MonitorL"
                  Option "DPMS"
          EndSection
          
          Section "Device"
                  Identifier  "Card0"
                  Driver      "radeon"
                  BusID       "PCI:12:0:0"
                  Screen  0
          EndSection
          
          Section "Device"
                  Identifier  "Card1"
                  Driver      "radeon"
                  BusID       "PCI:12:0:0"
                  Screen  1
          EndSection
          
          Section "Device"
                  Identifier  "Card2"
                  Driver  "intel"
                  BusID   "PCI:0:2:0"
                  Option  "monitor-LVDS1" "MonitorIntern"
          #       Screen 2
          EndSection
          
          Section "Screen"
                  Identifier "Screen0"
                  Device "Card0"
                  Monitor "MonitorL"
                  SubSection "Display"
                          Modes "1680x1050"
                          Depth 24
                  EndSubSection
          EndSection
          
          Section "Screen"
                  Identifier "Screen1"
                  Device "Card1"
                  Monitor "MonitorM"
                  SubSection "Display"
                          Modes "1680x1050"
                          Depth 24
                  EndSubSection
          EndSection
          
          Section "Screen"
                  Identifier "Screen2"
                  Device  "Card2"
                  Monitor "MonitorIntern"
                  SubSection "Display"
                          Depth 24
                  EndSubSection
          EndSection
          When starting KDM, things get even more entertaining: I get three black (not blank, black) screens and after a moment I can move the typical X cursor around. The two external screens seem to show the same picture, while the internal screen shows a different one. If I switch to console and start, like xterm (display manually set to :0), it seems to run well, except that I can't see anything...

          Xorg.0.log is at http://pastebin.com/nqpBxecd in case somebody is interested

          Comment


          • #6
            Example config for 3 heads with 2 radeons:

            http://paste.pocoo.org/show/273176/

            should be pretty forward to adjust this to your situation. (to get 3d acceleration + seperated screen set Xinerama to false)

            Comment


            • #7
              Same results as in #5, screens just get blank
              BTW: Tried the proprietary driver. In this case the XServer just segfaults when I enable the internal screen...

              Comment


              • #8
                Originally posted by maxf View Post
                Same results as in #5, screens just get blank
                BTW: Tried the proprietary driver. In this case the XServer just segfaults when I enable the internal screen...
                Make sure you specify the "ZaphodHeads" option properly in each device section to assign a connector to each instance of the driver. Note that the connectors are global with KMS so if you have two cards with HDMI ports, they will be HDMI-0 and HDMI-1 rather than both being HDMI-0.

                Comment


                • #9
                  WORKS! Thank you!
                  In case somebody's having the same problem: The ZaphodHeads option did it!
                  Code:
                  Section "ServerLayout"
                  	Identifier     "X.org Configured"
                  	Screen        "Screen0"
                  	Screen        "Screen1" RightOf "Screen0"
                  	Screen        "Screen2" RightOf "Screen1"
                  	InputDevice    "Mouse0" "CorePointer"
                  	InputDevice    "Keyboard0" "CoreKeyboard"
                  	#Option         "Xinerama" "true"
                  EndSection
                  
                  Section "Files"
                  	ModulePath   "/usr/lib64/xorg/modules/updates"
                  	ModulePath   "/usr/lib64/xorg/modules"
                  	FontPath     "/usr/share/fonts/misc:unscaled"
                  	FontPath     "/usr/share/fonts/TTF/"
                  	FontPath     "/usr/share/fonts/OTF/"
                  	FontPath     "/usr/share/fonts/Type1/"
                  	FontPath     "/usr/share/fonts/100dpi:unscaled"
                  	FontPath     "/usr/share/fonts/75dpi:unscaled"
                  	FontPath     "/usr/share/fonts/URW/"
                  	FontPath     "/usr/share/fonts/cyrillic:unscaled"
                  	FontPath     "/usr/share/fonts/misc/sgi:unscaled"
                  	FontPath     "/usr/share/fonts/truetype/"
                  EndSection
                  
                  Section "Module"
                  	Load  "record"
                  	Load  "glx"
                  	Load  "dbe"
                  	Load  "dri2"
                  	Load  "vnc"
                  	Load  "dri"
                  	Load  "extmod"
                  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   "MonitorIntern"
                  	Option "DPMS"
                  EndSection
                  
                  Section "Monitor"
                  	Identifier   "MonitorM"
                  	Option	"DPMS"
                  EndSection
                  
                  Section "Monitor"
                  	Identifier   "MonitorL"
                  	Option "DPMS"
                  EndSection
                  
                  Section "Device"
                  	Identifier  "Card0"
                  	Driver      "radeon"
                  	BusID       "PCI:12:0:0"
                  	Option "ZaphodHeads" "VGA-1"
                  EndSection
                  
                  Section "Device"
                  	Identifier  "Card1"
                  	Driver      "radeon"
                  	BusID       "PCI:12:0:0"
                  	Option "ZaphodHeads" "DVI-0"
                  	Screen	1
                  EndSection
                  
                  Section "Device"
                  	Identifier  "Card2"
                  	Driver	"intel"
                  	BusID	"PCI:0:2:0"
                  EndSection
                  
                  Section "Screen"
                  	Identifier "Screen0"
                  	Device "Card0"
                  	Monitor "MonitorL"
                  	SubSection "Display"
                  		Modes "1680x1050"
                  		Depth 24
                  	EndSubSection
                  EndSection
                  
                  Section "Screen"
                  	Identifier "Screen1"
                  	Device "Card1"
                  	Monitor	"MonitorM"
                  	SubSection "Display"
                  		Modes "1680x1050"
                  		Depth 24
                  	EndSubSection
                  EndSection
                  
                  Section "Screen"
                  	Identifier "Screen2"
                  	Device	"Card2"
                  	Monitor "MonitorIntern"
                  	SubSection "Display"
                  		Depth 24
                  	EndSubSection
                  EndSection

                  Comment


                  • #10
                    Originally posted by maxf View Post
                    WORKS! Thank you!
                    In case somebody's having the same problem: The ZaphodHeads option did it!
                    so next time take a closer look at the proposed solutions. the example config contains the ZaphodHead option

                    Comment

                    Working...
                    X