2007/07/24

デュアルディスプレイ for Debian

nVidia GeForce 7800 を使って、Xをデュアルディスプレイで表示します。

Debian Sarge for amd64から,xserver-xorg をインストール.同時に,フォントも
適当にインストール.まずは,標準の環境で 1600x1200@60Hzのシングルモニタとして
起動.

/etc/X11/xorg.conf を編集して,二つ目のディスプレイを設定します.基本的には,
Section "Device"で,Screen 1を定義してあげます.

 Section "Device"
        Identifier      "NVIDIA 2"
        Driver          "nvidia"
        BusID           "PCI:5:0:0"
        Screen          1
 EndSection

 Section "Screen"
        Identifier      "Second Screen"
        Device          "NVIDIA 2"
        Monitor         "Generic Monitor"
        DefaultDepth    24
        SubSection "Display"
                Depth           24
                Modes           "1600x1200"
        EndSubSection
 EndSection

Second ScreenをDefault Screenの右に置いてあげます.

 Section "ServerLayout"
        Identifier      "Default Layout"
        Screen          "Default Screen"
        Screen          "Second Screen" RightOf "Default Screen"
        InputDevice     "Generic Keyboard"
        InputDevice     "Configured Mouse"
 EndSection

テストのために,twmをインストールして,.twmrcを用意してXを起動すると
マウスがちゃんと飛んでいきました!

single screenとして起動する
デュアルディスプレイを何で制御するかによると思いますが,[[Debian/SAGE]]を
使う場合,いまのところ(2005-10-21)DISPLAY=0.0しか扱えません.上記の設定だと
DISPLAY=0.1が出来てしまいます.そこで,

 Section "Device"
        Identifier      "NVIDIA Corporation NVIDIA Default Card"
        Driver          "nvidia"
        BusID           "PCI:5:0:0"
        Screen          0
        Option "Twinview"
         Option "SecondMonitorHorizSync" "31-80"
         Option "SecondMonitorVertRefresh" "60"
         Option "MetaModes" "1600x1200,1600x1200"
         Option "TwinViewOrientation" "RightOf"
         Option "ConnectedMonitor" "DFP,DFP"
 EndSection

という設定に変更すると,DISPLAY=0.0が大きくなったように見えます.

 % DISPLAY=0.0 xdpyinfo |grep dimension
  dimensions:    3200x1200 pixels (813x305 millimeters)

1600x1200が横に二つ並んだXができあがります.

Looking Glass (http://pcweb.mycom.co.jp/articles/2004/11/02/lg3d/ )というのが
楽しいらしい。まぁ、これはシングルディスプレイでもいいですが、せっかくだから
デュアルでやると面白いかも。

lenny (kernel 2.6.21)とnVidiaドライバの組み合わせトラブるが
発生しました。その時のメモ