Dual-head support -- thinkpad T61, Intel GM965/GL960

Hi,

I’m trying to follow these instructions to set up dual head support:
Multiple Screens Using XRandR - openSUSE

And whenever I try to configure the screens dynamically, e.g.

xrandr --auto --output VGA-0 --mode 1680x1050 --right-of LVDS

Nothing happens. I am trying to use a Dell 2005FPW, 1680 x 1050 monitor. When plugged in, it goes into clone mode automatically (though the ratios are off for the external monitor).

I added

 Virtual    2960 1050

to each “Display” susection in xorg.conf, and

 xrandr -q
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 2960 x 1050
VGA connected 1024x768+0+0 (normal left inverted right x axis y axis) 434mm x 270mm
   1280x800       60.0 +   58.9  
   1024x768       60.0  
   800x600        60.3  
   640x480        60.0  
   1024x768_60    60.0* 
LVDS connected 1280x800+0+0 (normal left inverted right x axis y axis) 304mm x 190mm
   1280x800       60.0 +   60.0*    58.9     50.0  
   1152x768       54.8  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
TMDS-1 disconnected (normal left inverted right x axis y axis)

Here’s part of xorg.conf:

Section "Monitor"
  DisplaySize  304 190
  HorizSync    30-62
  Identifier   "Monitor[0]"
  ModelName    "LENOVO LCD MONITOR"
  Option       "DPMS"
  Option       "PreferredMode" "1280x800"
  VendorName   "LEN"
  VertRefresh  43-60
  UseModes     "Modes[0]"
EndSection


Section "Modes"
  Identifier   "Modes[0]"
  Modeline      "1280x800" 83.46 1280 1344 1480 1680 800 801 804 828
  Modeline      "1280x800" 69.75 1280 1328 1360 1440 800 803 809 823 +HSync -Vsync
EndSection


Section "Screen"
  DefaultDepth 24
  SubSection "Display"
    Depth      15
    Modes      "1280x800"Virtual    2960 1050
  EndSubSection
  SubSection "Display"
    Depth      16
    Modes      "1280x800"
    Virtual    2960 1050
  EndSubSection
  SubSection "Display"
    Depth      24
    Modes      "1280x800"
    Virtual    2960 1050
  EndSubSection
  SubSection "Display"
    Depth      8
    Modes      "1280x800"
    Virtual    2960 1050
  EndSubSection
  Device       "Device[0]"
  Identifier   "Screen[0]"
  Monitor      "Monitor[0]"
EndSection


Section "Device"
  BoardName    "965 GM"
  BusID        "0:2:0"
  Driver       "intel"
  Identifier   "Device[0]"
  Option       "monitor-LVDS" "Monitor[0]"
  Option       "SaXDualHSync" "31-48"
  Option       "SaXDualHead" ""
  Option       "SaXDualMode" "Clone"
  Option       "SaXDualMonitorModel" "1024X768@60HZ"
  Option       "SaXDualMonitorVendor" "--> VESA"
  Option       "SaXDualOrientation" "LeftOf"
  Option       "SaXDualResolution" "1024x768"
  Option       "SaXDualVSync" "50-60"
  Option       "SaXExternal" "Identifier&EXT+VertRefresh&50-60+HorizSync&31-48+PreferredMode&1024x768+VendorName&--> VESA+ModelName&1024X768@60HZ"
  VendorName   "Intel"
EndSection

Section "Monitor"
  HorizSync    31-48
  Identifier   "EXT"
  ModelName    "1024X768@60HZ"
  Option       "PreferredMode" "1024x768"
  VendorName   "--> VESA"
  VertRefresh  50-60
EndSectionSection "ServerLayout"
  Identifier   "Layout[all]"
  InputDevice  "Keyboard[0]" "CoreKeyboard"
  InputDevice  "Mouse[1]" "CorePointer"
  InputDevice  "Mouse[3]" "SendCoreEvents"
  Option       "Clone" "off"
  Option       "Xinerama" "off"
  Screen       "Screen[0]"
EndSection


Section "DRI"
    Group      "video"
    Mode       0660
EndSection

Section "Extensions"
  Option       "Composite" "on"
EndSection

I looked at the following as well: Intel Linux Graphics: Dual Head Setup How To
Sheep Guarding Llama » Blog Archive » Dual Head OpenSUSE 11 on the HP dx5150

But whenever I editted my xorg.conf, it couldn’t detect my monitors, so I thought I would at least figure out how to do it dynamically first.

Anyone have any thoughts why this is? Thanks.

I’m looking for a solution to this as well. I also have a T61 with the Intel GM965.

Currently I use an external monitor with the same resolution as the laptop screen, 1680x1050, so being stuck with clone mode is not all bad but I want to be able to use the screens separately.

When I attempt to do this dynamically, as OP did using xrandr, the external screen goes blank for a second and some open windows rearrange themselves a bit, but then it goes back to clone mode. Not sure what’s going wrong here.

Unfortunately I’m assuming it’s something to do with the Intel drivers. I’ve been continuously disappointed with this video card and the drivers - shoulda sprung for one of the better options.

Just checking in.
I still haven’t gotten this to work. Has anyone been able to enable spanning with this video card? (Intel GM965/GL960)

I got it working!

I looked here Xorg RandR 1.2 - ThinkWiki for some clues. You can’t follow that step-by-step as it’s for ubuntu, but the thing I followed was:

If you upgrading from an earlier version you may find your existing xorg.conf works against the effective deployment of xrandr. So it is best to start with a new Xorg configuration. An updated Xorg.conf should:

    * omit dual Device/Screen/Monitor sections
    * omit MonitorLayout option and Screen lines from the remaining Device section
    * omit dual Screen lines from the ServerLayout section
    * omit RightOf/LeftOf indication to the remaining Screen line in ServerLayout section
    * add a "Virtual 2048 2048" line in SubSection "Display" to create a large virtual screen 

So I commented out all those “omit” sections, restarted X, and tried RandR, and it worked well.

The only annoying aspect is that the toolbar is always place on the external monitor instead of my laptop screen, and opening documents in one window pop-up in the other. I still have some fiddling to do.

It’s a known bug.
When you connect external monitor,
it becomes number [0], and internal number [1].

I don’t know how to prevent windows
from popping up on external monitor,
but toolbars can stick to the screen
you want at least in KDE 3.5.10.

Here is how to do it in KDE 3.5.10
Right click on the panel - > Configure panel ->
-> Arrangement - Xinerama screen - 2.

However, desktop icon’s still travel
from internal to external monitor
and I don’t know how to fix it…