debian (wheezy) を Dual Display にする
まる一日ハマったので
重要ポイント
- TwinViewなんてなかったんやー
- /etc/X11/xorg.conf でデュアルディスプレイとかしないんだわさ
- ~/.config/monitors.xml に気をつけろ、闇だ
やりかた
ディスプレイの認識確認
まずは xrandr
でディスプレイが認識されているか確認します。
認識されている場合はいかのようになると思います
% xrandr
Screen 0: minimum 8 x 8, current 3600 x 1080, maximum 8192 x 8192
DVI-I-0 disconnected (normal left inverted right x axis y axis)
VGA-0 disconnected (normal left inverted right x axis y axis)
DVI-I-1 connected 1680x1050+0+30 (normal left inverted right x axis y axis) 473mm x 296mm
1680x1050 60.0*+ 60.0
1600x1200 60.0
1440x900 75.0 59.9
1280x1024 75.0 60.0
1152x864 75.0
1024x768 75.0 70.1 60.0
800x600 75.0 72.2 60.3 56.2
640x480 75.0 72.8 59.9
HDMI-0 connected 1920x1080+1680+0 (normal left inverted right x axis y axis) 510mm x 290mm
1920x1080 59.9*+ 60.0 60.0 59.9 50.0 30.0 30.0 25.0
1680x1050 60.0
1280x1024 75.0 60.0
1280x720 60.0 59.9 50.0
1152x864 75.0
1024x768 75.0 60.0
800x600 75.0 60.3 56.2
720x576 50.0
720x480 59.9
640x480 75.0 59.9 59.9
このように接続されているディスプレイがすべて認識されていれば問題ないのですが…僕の場合はここが大問題でした。HDMI側が全く認識されない。
xorg.conf をいじってディスプレイを認識させる
なので強制的にディスプレイを認識させます。僕の場合一枚のビデオカードに DVI と HDMI をさした形だったので以下のように /etc/X11/xorg.conf
を編集しました。なおドライバーのインストールに関しては http://wiki.debian.org/NvidiaGraphicsDrivers にしたがって行なっています
/etc/X11/xorg.conf
は必ずバックアップをとってから編集してください。失敗した場合初心者だと復旧が絶望的になります
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
Option "Xinerama" "0"
EndSection
Section "Module"
Load "glx"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 210"
# nvidia に自動で設定させる
Option "MetaModes" "nvidia-auto-select"
# このへんから味噌、このデバイスに二個目のモニター
# がついてることを強制的に認識させている
Option "SecondMonitorHorizSync" "UseEdidFreqs"
Option "SecondMonitorVertRefresh" "UseEdidFreqs"
Option "ConnectedMonitor" "DFP-0,DFP-1"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
# ここに TwinView を書くと普通はデュアルディスプレイ
# の設定ができるんだけどね…Gnome3では書いちゃダメです
SubSection "Display"
Depth 24
Modes "nvidia-auto-select"
EndSubSection
EndSection
再起動後 xrandr
にてディスプレイがただしく認識されていればOK
Gnome3の設定からデュアルディスプレイを設定する
これが味噌でした。 xrandr
で認識されていれば Gnome3 の設定からデュアルディスプレイの設定を行うことができます。これを行わず xorg.conf
にて TwinView などを使用した場合、初回起動時は ~/.config/monitors.xml
の設定が優先されるのか知りませんが、デュアルディスプレイのサブディスプレイに背景が表示されないなどの不都合が発生します(ただ、これは service gdm3 restart
で直る、なぜか)
以上。xorg.conf
をいじらないとディスプレイを認識しなかったので永遠と xorg.conf
でデュアルディスプレイにしようとしていました。本当にハマった……
おまけ:Xが起動しない
もしも /etc/X11/xorg.conf
の編集をミスして X が起動しなくなった場合はシングルユーザーモード(起動時に レスキュー とか書いてあるやつ)を選んで入ると root では入れます。その後
# cp /etc/X11/xorg.conf.backup /etc/X11/xorg.conf
とすれば多分復帰可能。もしも xorg.conf
のバックアップを取り忘れてしまったヤンチャな方は以下のどちらかの方法でデフォルトのものを作成可能、ですがそれで直るかは……ま、試す価値はあります
Xorg
を使用した方法 (GUI起動時不可)
# Xorg -configure
# cp ~/xorg.conf.new /etc/X11/xorg.conf
nvidia-xconfig
を使用した方法
# aptitude install nvidia-xconfig
# nvidia-xconfig