Linux Tips

Xの画面を複数のディスプレイに分割表示するには

北浦訓行
2006/1/19

 デュアルディスプレイを使うには(NVIDIA GeForce4編)デュアルディスプレイを使うには(Matrox Millennium G400編)では、ビデオカードの機能を利用して、デスクトップを複数のディスプレイにまたがって表示させる方法を説明した。

 X Window Systemには、DMX(Distributed Multi-head X)という仕組みがあり、複数のXサーバを1台のディスプレイとして扱うことができる。イベント会場などで、16台のディスプレイを1台のディスプレイに見立てて映像を流していることがあるが、DMXを使えばそのようなことも簡単に実現できる。ここでは、Fedora Core 4(FC4)をインストールした2台のPC(ホスト名はPC01、PC02)用いて、デュアルディスプレイ環境を構築する方法を説明する。

 最初に、PC01とPC02でXサーバを起動する。FC4がランレベル5で起動している場合は、/etc/inittabの以下の行を変更して再起動する。

id:5:initdefault:
   ↓
id:3:initdefault:

 次に、/etc/X11/xorg.confファイルで色深度を確認する。ScreenセクションのDefaultDepthDisplayサブセクションのDepthを調べ、値が「24」になっている場合は「16」に変更する。

Section "Screen"
        Identifier "Screen0"
        Device     "Videocard0"
        Monitor    "Monitor0"
        DefaultDepth     16 ←24を16に変更
        SubSection "Display"
                Viewport   0 0
                Depth     16 ←24を16に変更
                Modes    "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
EndSection

 この作業は、PC01とPC02の両方で行う必要がある。また、両者の画面解像度が異なっている場合は、同じ解像度に統一した方が画面が見やすいだろう。

 以上でXサーバの設定は完了だ。続いて以下のコマンドを実行し、Xサーバを起動する。このコマンドは、PC01とPC02の両方で実行する。

$ xinit -display :0

 すると、画面左上に白いウィンドウが開き、bashが起動する。

Xサーバが起動した画面

 PC01とPC02がお互いのアクセスを許可するよう、それぞれのPCでxhostコマンドで設定を行う。具体的には、マウスポインタを白いウィンドウ上に移動させてから、以下のコマンドを入力する。

$ xhost +PC02 ←PC01上で実行

$ xhost +PC01 ←PC02上で実行

 次に、Xdmx(Distributed Multi-head X server)を起動する。Xdmxは、Xサーバを起動したPCのどちらかで実行する。もちろん、別のPC(3台目のPC)にFC4をインストールして、そちらで起動することも可能だ。

 Xdmxを起動するには、ほかのPCからsshなどでログインして起動用のコマンドを実行する方法と、PC01またはPC02のコンソールから実行する方法がある。コンソールから実行する場合は、画面の切り替えが煩雑になるし、場合によってはXサーバの表示に問題が出ることがある。そこで、ほかのPCからログインすることをお勧めする。

 コンソール(ここではPC01)からXdmxを実行する場合は、PC01のキーボードで[Alt]+[Ctrl]+[F2]キーを押す。PC01の画面がテキストログイン画面(ランレベル3)に変わるのでログインし、以下のコマンドを実行する。

$ Xdmx :1 -display PC02:0 -display PC01:0 +xinerama &

 正常に起動すると、次のようなメッセージが表示されるはずだ。

(省略)
(II) dmx: ===== Start of Summary =====
(II) dmx: 2 screens configured with Xinerama (2560 1024)
(II) dmx: 2 visuals at depth 16:
(II) dmx:   0x23 TrueColor   16b 8b/rgb  64 0xf800 0x07e0 0x001f
(II) dmx:   0x27 DirectColor 16b 8b/rgb  64 0xf800 0x07e0 0x001f
(II) dmx: 0 visuals at depth 1:
(II) dmx: 0 visuals at depth 4:
(II) dmx: 0 visuals at depth 8:
(II) dmx: 0 visuals at depth 15:
(II) dmx: 0 visuals at depth 24:
(II) dmx: 0 visuals at depth 32:
(II) dmx: 2 devices:
(II) dmx:   Id  Name                 Classes
(II) dmx:    0  Mouse0               val btn fb/ptr     
[i0/athlon2000:0/id1=Mouse0] core
(II) dmx:    1  Keyboard0            key foc fb/kbd     
[i0/athlon2000:0/id0=Keyboard0] core
(II) dmx: ===== End of Summary =====

 ここで[Enter]キーを押すと、bashの入力待ち(コマンドプロンプトが表示された状態)になるので、画面を出力するスクリーンを指定する。

$ export DISPLAY=:1

 これによって、以降に実行したコマンドはXサーバに表示されることになる。試しに、xlogoコマンドを実行してみよう。PC02の画面にX Window Systemのロゴマークが表示されるはずだ。

$ xlogo

 PC01をXサーバの画面に戻すには、[Alt]+[Ctrl]+[F7]キーを押す。

 なお、Xdmxコマンドがインストールされていない場合は、rootで以下のコマンドを実行する。

# yum install xorg-x11-Xdmx

 この状態になれば、ウィンドウマネージャを起動することもできる。例えば、以下のコマンドでGNOMEが起動する(筆者の環境では、一部のアイコンが表示されないなどの問題がある)。

$ gnome-session

 Xdmxコマンドの詳細はmanページに記述されている。また、DMXプロジェクトのWebサイト(http://dmx.sourceforge.net/)にも情報があるので参照するといいだろう。

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間