XFree86でマルチディスプレイを簡単に設定する


XFree86 4.0になってからマルチディスプレイが可能になりました。しかし、webで情報を得ようとgoogleで検索してもMatroxのG400DH(Dual Head)に関する記事が少々あるだけで、複数のビデオカードを使ったマルチディスプレイの解説記事はほとんどありません。当たり前すぎて書かれないのか、誰も興味がないので書かれないのか不明ですが、必要になって設定してみたのでここにやり方を書いておきます。
XFree86の設定ツールはいろいろありますが、シングルディスプレイの設定ならどれを使っても問題ありません。ただし、マルチディスプレイを設定する場合はxf86cfgを使う必要があります。rootのコマンドラインからxf86cfgを起動するとVGA解像度のXサーバーが立ち上がって設定画面になります。ここでビデオカードが2枚ささっていれば、自動的に設定画面に2枚のビデオカードアイコンが表示されます。GUIなので表示されたアイコンをマウスでクリックしていけばすぐに使い方はわかります。解像度はビデオカードアイコンで、モニタの走期周波数はモニタアイコンで設定します。モニタの位置関係はアイコンの位置関係がそのまま使われます。これでセーブして終了すればOKです。/etc/X11の下にXF86Configファイルが作成されています。
このままでもOKなのですが、xf86cfgが吐き出すXF86Configファイルは簡単なもののため、USBマウスを設定したり画面の色数を細かく設定したりすることができません。そこで一旦作られたXF86Configファイルをどこかに保存しておき、別にxconfigやxf86configなどで細かい設定をしたXF86Configを作成し、マージすることで細かい設定を実現します。xfconfigやxf86configではビデオカード1枚分しか設定できませんから、作成したらそのXF86Configファイルを保存して、ビデオカードの枚数分のXF86Configファイルを作ります。マージはxf86cfgが作ったマルチディスプレイ用のファイルをベースに各ビデオカード用の必要部分の記述をコピーしていけば楽です。
私のPCではi810Eチップセットの内蔵AGPビデオとMatroxの初代millennium PCIでマルチディスプレイ環境を構築しています。最初は初代millenniumではなく、Matrox MGA Impression PCIでやってみたのですが、このカードはそもそもXFree86 4.0がサポートしていないのでダメでした。VESAドライバを使ってFBモードでやってもダメです。悩んだのは、ダメなカードでもVESA機能をサポートしていれば設定ツール上では正しく設定できてしまうことです。カードのVideo chipもRAMDACもきちんと認識してVESAドライバを割り当てるので、動くのではないかと期待してしまったのが敗因でした。Matrox MGA Impression PCIはXFree86 3.3時代もサポートされなくて悲しかったので、余計に期待してしまったのでした。
余談ですが、MGA ImpressionはRAMDAC外付けで画質や発色はMatroxらしいすっきりしたもので、なかなかの優れものです。Dual CPUのマシンでもちゃんと動く素性の良いカードなのです。(S3系のPCIカードはDual CPUでは動かないものが多いです。)DOS時代のカードですが、Windows系であれば95からXPまで標準でドライバがサポートされているのでWindowsマシンに入れて余生を送らせようと思います。
XFree86 4.0のマルチディスプレイで面白いのはディスプレイ毎にサーバーとウィンドウマネージャープロセスが立ち上がることです。そのため、左右のディスプレイはほぼ独立していて、マウスカーソルこそ自由に行き来できますが、ウィンドウをドラッグして一方から他方へ運んで行くことはできません。また左右に同じウィンドウマネージャーメニューが並んでいるので無駄な気がします。このあたりはWindows系のOSの方がよく出来ています。何はともあれ、linuxでも広いデスクトップが手に入ってうれしい限りです。

今回のPC
M/BZIDA TX810E Baby-AT!!
CPUP3-1GHz FSB133
MemoryPC100 384MB
VGA1Intel810E onboard
VGA2Matrox Millennium 2M PCI
TV tunerI/Odata GV-BCTV/5
NIC3C905B-TX
HDDATA66 80GB
CDDATA33 CD-ROM
CaseBaby-AT


wikiへ戻る google adsenseを入れてみた->