Linuxでデュアルモニタ(ノートPC)
こんにちは、yokkunsです。
今日家に帰ったら、メインで使っているノートPCが止まっててびっくりしました。
とりあえず、再起動したら直ったので一安心です。
原因は分かりませんが、多分、OSに対してマシンの性能が追いついていないのに、24時間フル稼働という暴挙をし続けたためだと思います。
これから、ちょこちょこ電源を切るようにしたいと思います。
さて、今回のこの停止騒動で、久しぶりにノートPC本体を開いたんですが、改めて画面の大きさにびっくりしました。
ノートPCなのに、1280x800というサイズがあり、これを使わないのはもったいない気がします。
そこで、デュアルモニタにしてみることにしました。
Fedora7のGnomeには、GUIで、ディスプレイ設定が出きるので簡単に出来そうです。
2台目のモニターという所に、手動でモニターのモデルを選択し、デスクトップのレイアウトを拡張に変更します。
・・・・が、何故かうまくいきません。
Xの再起動をしろと言われるので、ログアウトしたら、Xが立ち上がらない始末。。。
Xが立ち上がらないとどうしようもないので、別のマシンから、/etc/X11/xorg.confを元に戻してから再起動しました。
このままでは、「やっぱりLinuxはダメだなw」などとバカにされてしまうので、原因と解決方法を調べた所、id:over80さんが、すごく丁寧に解説してくれてました。
- ノートPCでデュアルヘッド出力……失敗 - 玉虫色に染まれ!!
- ノートPCでデュアルヘッド出力(とりあえず解決編) - 玉虫色に染まれ!!
- デュアルヘッドに挑戦(xorg.confメモ) - 玉虫色に染まれ!!
どうやら、xrandr というコマンドを使うと、Xの再起動などせずとも、動的に画面設定をいじれるようです。
xrandr [-help] [-display display] [-q] [-v] [--verbose] [--screen snum] RandR version 1.2 options [--prop] [--fb <width>x<height>] [--fbmm <width>x<height>] [--dpi <dpi>] Per-output options [--output <output>] [--auto] [--mode <mode>] [--preferred] [--pos <x>x<y>] [--rate <rate>] [--reflect reflection] [--rotate orientation] [--left-of <output>] [--right-of <output>] [--above <output>] [--below <output>] [--off] [--crtc <crtc>] RandR version 1.0 and version 1.1 options [-o orientation] [-s size] [-x] [-y]
引数なしで、実行すると、その時点で接続されているモニターの情報が出力されるので、ちゃんと外部モニターが認識されているかをチェックする。
$ xrandr Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 2560 x 1024 VGA connected 1280x1024+0+0 (normal left inverted right) 338mm x 270mm 1280x1024 60.0*+ 75.0 59.9 1152x864 75.0 74.8 1024x768 75.1 70.1 60.0 832x624 74.6 800x600 72.2 75.0 60.3 56.2 640x480 75.0 72.8 66.7 60.0 720x400 70.1 LVDS connected 1280x800+0+0 (normal left inverted right) 331mm x 207mm 1280x800 60.0*+ 60.0 1280x768 60.0 1280x720 60.0 1024x768 60.0 800x600 60.3 640x480 59.9 TV disconnected (normal left inverted right)
結果を見れば分かりますが、二つのモニタが、同じ部分を表示しています。
こいつを、xrandrコマンドで、別の箇所を表示するように変更すれば、デュアルモニタが実現出来そうです。
ただし、
複数のモニタを並べて配置する場合の合計のスクリーンサイズが、前述の情報表示で出た Screen の maximum を越えることは許されません。この最大値は X 起動時に確保したメモリサイズで決まるので、Xorg.conf の Screen セクション内の Display サプセクション内に、以下のように Virtual エントリを追加することで指定出来ます。(横幅は16の倍数を指定しておいたほうが無難です)
とのことなので、まず、/etc/X11/xorg.confの変更とXの再起動を先に行います。
Section "Screen" Identifier "Screen0" Device "Videocard0" DefaultDepth 24 SubSection "Display" Virtual 2560 1024 # <------ これを追加 Viewport 0 0 Depth 24 Modes "1280x1024" "1280x960" "1280x800" "1280x720" "1152x864" "1024x768" "800x600" "640x480" EndSubSection EndSection
変更したら、一旦ログアウトして、再度ログイン。
では、早速、xrandrコマンドを使って、デュアルモニタを実現してみます。
僕の場合、左に外部モニタ、右にノートPCなので、LVDSをVGAの右にセットします。
$ xrandr --output LVDS --right-of VGA
すると、ノートPCの画面が、拡張画面になって、望んでいたデュアルモニタが実現出来ました。
以上で、一応望んでいた動きはしているのですが、引用元でも述べられてる通り、Gnomeのツールバーの表示問題と、小さい方の画面で下の方が表示出来ない問題があります。
今のところ、たまにしか電源を切る気がないので、問題ないですが、時間を見つけてXorgを勉強してみようと思います。