Multihead

Thinkpad R52 with i915 graphics

I have managed to get Multihead/Xinerama working, with a few provisios...

  • The CRT sometimes comes up in 640x480 and sometimes in 1024x768...
  • No Hardware GLX/3D
  • No DRI
  • Xv video scaling only works on one screen at a time. (Drag a screen half-way across the divide and half of the video will disappear until fully moved across to the second display).
  • Fn-F7 (toggle VGA/CRT cloning) screws things up interestingly, but can be partially undone with the use of i810switch

  • GDM uses first screen. GNOME login-banner uses left-most display, GNOME menus use first display, GNOME backdrop doesn't work, GNOME desktop items use left-display, GNOME window-placement defaults to top-left.
  • XRandR doesn't work with Xinerama

I've done the config below so that it doesn't add change anything in the existing Ubuntu Xorg auto-detected configuration, all I've done is to add extra sections at the end of the file. This should help you to isolate what is really happening.

Most of the so-called "working Xinerama setups" I've seen have tonnes of commented out options; in the following I tried to remove/eliminate any option that duplicated something that is auto-detected and so is just acting as fluff. In addition, I've tried to comment gotchas so that you know what you can't change in order to still have a working setup.

## The following are for Multihead/Fancy setup.
################################################

# Select between these layouts by using  X -layout "IDENTIFIER"
# "Single" is a proof-of-concept that only two 'screen' lines should be needed

# The first Pointer and First Keyboard are implicit so
# do not need to be specified, only the /extra/ Synaptics.

Section "ServerLayout"
        Identifier      "Single"
        # Does not work with 'Default Screen1'
        Screen          "Default Screen0"
        InputDevice     "Synaptics Touchpad"
EndSection

Section "ServerLayout"
        Identifier      "Dualhead"
        Screen          0 "Default Screen0" 
        Screen          1 "Default Screen1" 
        InputDevice     "Synaptics Touchpad"
EndSection

Section "ServerLayout"
        Identifier      "Multihead"
        Screen          0 "Default Screen0" 0 0
        Screen          1 "Default Screen1" LeftOf "Default Screen0"
        InputDevice     "Synaptics Touchpad"
EndSection

Section "ServerLayout"
        Identifier      "Xinerama"
        Screen          0 "Default Screen0" 0 0
        Screen          1 "Default Screen1" LeftOf "Default Screen0"
        InputDevice     "Synaptics Touchpad"
        Option          "Xinerama"                      "on"
EndSection

# Monitor lines default so can be left out...
# The screen lines are required since they reference 'Device'

Section "Screen"
        Identifier      "Default Screen0"
        Device          "Intel Corporation Intel Default Card0"
        DefaultDepth    24
        SubSection "Display"
                Depth           24
                Modes           "1024x768"
        EndSubSection
EndSection

Section "Screen"
        Identifier      "Default Screen1"
        Device          "Intel Corporation Intel Default Card1"
        DefaultDepth    24
        SubSection "Display"
                Depth           24
                Modes           "1024x768"
        EndSubSection
EndSection

# Additional Driver entries for the card.  The only differences
# are the 'Screen n' line and 'Option MonitorLayout'

# I wonder if the 'Screen 0/1' option should really
# be called 'Pipe 0/1' or 'Output 0/1'

Section "Device"
        Identifier      "Intel Corporation Intel Default Card0"
        Driver          "i810"
        BusID           "PCI:0:2:0"
        Screen          0

        # NOTE: trying "LFP,CRT" crashes the machine solid!
        # This cannot be moved to the "Screen"/"Layout" sections...
        # Seems to have to be the same Driver as "Screen 0"
        Option          "MonitorLayout"         "CRT,LFP"
EndSection

Section "Device"
        Identifier      "Intel Corporation Intel Default Card1"
        Driver          "i810"
        BusID           "PCI:0:2:0"
        Screen          1
EndSection

For testing, I mainly used a setup such as:

/usr/bin/X -layout "Multihead" ; less -S /var/log/Xorg.0.log

Conclusion: The resolution issue might be fixable by sticking modelines in and using Options such as NoDDC. Enough things are broken that for high-performance use, the result sucks badly. There it will shine though is using presentations and being able to have notes/demos on one screen and slides on the external CRT. If you really lucky, it maybe possible to flick around betwen slides and demos, allowing you to queue up the other one whilst you're waiting. (It should only be a couple of bits to set the routeing of the display pipes...)

To get GDM to run, I did the rather hackish:

--- /etc/gdm/gdm.conf~  2005-09-06 10:16:57.000000000 +0100
+++ /etc/gdm/gdm.conf   2005-09-15 21:59:24.000000000 +0100
@@ -470,7 +470,8 @@
 # Definition of the standard X server.
 [server-Standard]
 name=Standard server
-command=/usr/X11R6/bin/X -br -audit 0
+#command=/usr/X11R6/bin/X -br -audit 0
+command=/usr/X11R6/bin/X -br -audit 0 -layout Xinerama
 flexible=true

 # To use this server type you should add -query host or -indirect host

which then selects the 'layout' called 'Xinerama' when X is started.

SergioZanchetta/Old/ThinkpadR52/Multihead (last edited 2010-02-26 16:51:15 by host226-241-dynamic)