外部ディスプレイ出力

xrandr

いまどきは xrandr 1.2 を使うようなんですが,

% xrandr -v
Server reports RandR version 1.1
% X -version

X Window System Version 7.1.1

こんな状態なので使えませんでした。(Xorg を 7.2 にすれば良いのですが)

i810switch

で、他の手段としては i810switch があるようなので

# apt-get install i810switch
# i810switch
PCI id of i810 is not recognized.

となりました.
既知のバグらしくパッチもあるようなのでそれを当てるとうまくいきました。

% wget http://www16.plala.or.jp/mano-a-mano/i810switch/i810switch-0.6.5.tar.gz
% wget http://librarian.launchpad.net/6823931/i810switch-0.6.5.i945.diff
% tar zvxf i810switch-0.6.5.tar.gz
% patch -p0 < i810switch-0.6.5.i945.diff
% cd i810switch-0.6.5
% make

http://higepon.blogspot.com/2007/05/external-monitorfn-f7-doesnt-work-on.html

diff の内容は以下*1

 --- i810switch-0.6.5/i810switch.c.original	2005-06-12 06:36:36.000000000 +0200
 +++ i810switch-0.6.5/i810switch.c	2007-02-28 15:05:49.000000000 +0100
 @@ -60,6 +60,7 @@
  #define I855STR			"8086:3582"
  //#define I865STR			"8086:2572"
  #define I915STR			"8086:2592"
 +#define I945STR			"8086:27a2"
  #define MEMSTR			"Memory at"
  #define NONPRSTR		"32-bit, non-prefetchable"
 
 @@ -272,7 +273,8 @@
 			return p;
  		}
 
 -		i = (p = strstr(*buff_ptr, I855STR)) != NULL;
 +		i = (p = strstr(*buff_ptr, I855STR)) != NULL ||
 +		    (p = strstr(*buff_ptr, I945STR)) != NULL;
 		if (i)
 		{
 			*chiptype = I855;

xorg.conf

/etc/X11/xorg.conf の Device 部分を以下のように修正します.*2

Section "Device"
        Identifier      "Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller"
        Driver          "i810"
        BusID           "PCI:0:2:0"
 +      Option          "MonitorLayout" "CRT,LFP"
 +      Option          "Clone" "on"
EndSection

*1:08/02/21追記

*2:'+' は追加部分を示していますので, '+' は入力する必要はありません