デュアルモニターの設定

nobu_10262007-09-17

DELL Latitude D400上においてデュアルモニターを試してみたかったので、一日中暇だった今日、本腰を入れて取り組んでみた。まず、

$ man xorg.conf

として、manページを読みつつ、 "/etc/X11/xorg.conf" を編集。ちなみに、Latitude D400はi855GMチップセットを採用しているので、

man i810

として、i810ドライバーの設定についても知る必要があった。
本当はWindowsで言うところの「マルチデスクトップ」、すなわち各ディスプレイ毎に別々のデスクトップを表示するデュアルモニター環境、或いは「ビッグデスクトップ」、すなわち2つのディスプレイにまたがったデスクトップを表示するデュアルモニター環境を構築したかったのだが、結局クローン表示することしか出来なかった。以下のxorg.confで言うところの"DualHead" ServerLayoutを使用してOption "Xinerama"をtrueにするとXの起動に失敗するのだ。たまたま、以下のxorg.confで言うところの"SingleHead" ServerLayoutを使用して、"Device"セクションでOption "Clone"をtrueにしたところ上手くクローン表示させることが出来たが、Clone表示させる必要はないので、現在は"SingleHead" ServerLayoutでOption "Clone"をtrueにせずに使用中である。
なお、i810switchとi855crtを設定する途中で試したが、前者は表示位置がずれるばかりかリフレッシュレートの低さから画面がチラつき、後者はリフレッシュレートには問題ないようだが色数が明らかに少なく*1、どちらも実用には程遠い状態であった。
設定の過程で気付いたことなのだが、今日の写真にあるように、Latitude D400ではFn + F8で内部LFP出力と外部CRT出力を切り替えられるようになっている。このショートカットは、実際にGnomeとコンソールどちらでも有効*2であり、外部CRTにのみ出力したい向きには有用かもしれない。
使用環境と編集後のxorg.confは以下の通り。今日はもう疲れてしまったのでこれ以上の追求は止めることにしたが、今度また挑戦してみようと思う。

ノートPC: DELL Latitude D400 (BIOS Revision:A03; 解像度: 1024x768)
液晶ディスプレイ: FUJITSU VL-1530A (アナログ接続; 解像度: 1024x768)
Section "Files"
	FontPath	"unix/:7100"
	FontPath	"built-ins"
	RGBPath		"/usr/share/X11/rgb.txt"
	ModulePath	"/usr/lib/xorg/modules"
EndSection

Section "ServerFlags"
	Option	"DefaultServerLayout" "SingleHead"
#	Option	"DefaultServerLayout" "DualHead"
	Option	"BlankTime" "15"
	Option	"StandbyTime" "20"
	Option	"SuspendTime" "25"
	Option	"OffTime" "30"
EndSection
 
Section "InputDevice"
	Identifier	"Keyboard0"
	Driver		"kbd"
	Option		"CoreKeyboard"
	Option		"XkbModel" "jp106"
	Option		"XkbLayout" "jp"
EndSection

Section "InputDevice"
	Identifier	"Synaptics"
	Driver		"synaptics"
	Option		"CorePointer"
	Option		"Device" "/dev/input/mice"
	Option		"Protocol" "auto-dev"
	Option		"Emulate3Buttons" "yes"
	Option		"LeftEdge" "120"
	Option		"RightEdge" "830"
	Option		"TopEdge" "120"
	Option		"BottomEdge" "650"
	Option		"FingerLow" "14"
	Option		"FingerHigh" "15"
	Option		"MaxTapMove" "110"
	Option		"VertScrollDelta" "20"
	Option		"HorizScrollDelta" "20"
	Option		"MinSpeed" "0.3"
	Option		"MaxSpeed" "0.75"
EndSection

Section "Device"
	Identifier	"Videocard0"
	Driver		"i810"
	VendorName	"Intel Corporation"
	BoardName	"Intel Corporation 82852/855GM Integrated Graphics Device"
	BusID		"PCI:0:2:0"
	Screen		0
	Option		"MonitorLayout" "CRT,LFP"
#	Option		"Clone" "false"
	Option		"Clone" "true"	
	Option		"VBERestore" "true"
EndSection

Section "Device"
	Identifier	"Videocard1"
	Driver		"i810"
	VendorName	"Intel Corporation"
	BoardName	"Intel Corporation 82852/855GM Integrated Graphics Device"
	BusID		"PCI:0:2:0"
	Screen		1
#	Option		"DevicePresence" "true"	
EndSection

Section "Monitor"
	Identifier	"Monitor0"
	VendorName	"Unknown Vendor"
	ModelName	"Unknown"
	HorizSync	43.89 - 48.51
	VertRefresh	60.0 - 75.0
	Option		"DPMS" "true"
EndSection

Section "Monitor"
	Identifier	"Monitor1"
	VendorName	"Fujitsu"
	ModelName	"Fujitsu VL-1530A"
	HorizSync	31.5 - 48.4
	VertRefresh	56.0 - 75.0
	Modeline	"640x480" 31.50  640 656 720 840  480 481 484 500 -HSync -VSync
	Modeline	"640x480" 31.50  640 664 704 832  480 489 491 520 -HSync -VSync
	Modeline	"640x480" 25.20  640 656 752 800  480 490 492 525 -HSync -VSync
	Modeline	"800x600" 40.00  800 840 968 1056  600 601 605 628 +HSync +VSync
	Modeline	"800x600" 36.00  800 824 896 1024  600 601 603 625 +HSync +VSync
	Modeline	"800x600" 49.50  800 816 896 1056  600 601 604 625 +HSync +VSync
	Modeline	"800x600" 50.00  800 856 976 1040  600 637 643 666 +HSync +VSync
	Modeline	"1024x768" 65.00  1024 1048 1184 1344  768 771 777 806 -HSync -VSync
	Option		"DPMS" "true"
EndSection

Section "Screen"
	Identifier	"Screen0"
	Device		"Videocard0"
	Monitor		"Monitor0"
	DefaultDepth	24
	SubSection "Display"
		Viewport	0 0
		Depth		24
		Modes		"1024x768" "800x600" "640x480"
	EndSubSection
EndSection

Section "Screen"
	Identifier	"Screen1"
	Device		"Videocard1"
	Monitor		"Monitor1"
	DefaultDepth	24
	SubSection "Display"
		Viewport	0 0
		Depth		24
		Modes		"1024x768" "800x600" "640x480"
	EndSubSection
EndSection

Section "ServerLayout"
	Identifier	"SingleHead"
	Screen		0 "Screen0"
	InputDevice	"Keyboard0" "CoreKeyboard"
	InputDevice	"Synaptics" "CorePointer"
EndSection

Section "ServerLayout"
	Identifier	"DualHead"
	Screen		0 "Screen0"
	Screen		1 "Screen1" RightOf "Screen0"
	Option		"Xinerama" "true"
	InputDevice	"Keyboard0" "CoreKeyboard"
	InputDevice	"Synaptics" "CorePointer"
EndSection

*1:256色より少ないと思われる。

*2:但し、僕の環境では内部、外部ともに1024x768の解像度を利用しているため、異なる解像度ではどうなるのか全く分からない。