xrandr の intel デバイスドライバと戦う

<< 戻る   トップ >>

さて、Feodra 9 のツインヘッド問題の解決を試みようと思う。問題は、Xorg の X-Window 1.5.0 RC1 の intel グラフィックチップ用のドライバでは 1920x1920 または 2048x2048 以上の解像度のツインヘッドができない、ということにある。

Xorg 1.5 は X-Windows にディスプレイのプラグイン能力を持たせたバージョンであるらしい。xrandr (なんの略かと思ったら、X Window System Resize and Rotate Extension だそうだ。) というライブラリ? により、X-Window の再起動なしで解像度やディスプレイ (プロジェクタなど) の追加に対応できるようになった。それはめでたいのだが、intel のグラフィックチップでツインヘッド用の解像度が確保できないのが悩ましい。

うまく動いてくれれば、GUI でさくさくと二つのディスプレイの解像度と位置関係を設定して終わり、となるのだが、それができないので、再び xorg.conf 設定の世界へ。資料は、sidux マニュアルのScreen Resolutions and Dualhead (日本語版)を使わせてもらった。sidux は Debian 系の Linux ディストリビューションだそうだ。

それでは、さっそく設定して見るとしよう。

基本的に解決

意外なことに、あっさりと解決してしまった。/etc/X11/xorg.conf の "Screen" セクションの "Display" サブセクションに Virtual パラメータを加えるだけで、とにかく 2560x1024 のデュアルヘッドは動作する。

Section "Screen"
	Identifier "Screen0"
	Device     "Videocard0"
	DefaultDepth     24
	SubSection "Display"
		Virtual  2560 1024
		Viewport   0 0
		Depth     24
	EndSubSection
EndSection

ただし、X は次のようなエラーを記録する。

(II) intel(0): Kernel reported 238592 total, 1 used
(II) intel(0): I830CheckAvailableMemory: 954364 kB available
(EE) intel(0): Cannot support DRI with frame buffer width > 2048.
(**) intel(0): Framebuffer compression disabled
(**) intel(0): Tiling enabled
(==) intel(0): VideoRam: 262144 KB
(II) intel(0): Attempting memory allocation with tiled buffers.
(II) intel(0): Tiled allocation successful.
(II) intel(0): Page Flipping disabled
(II) intel(0): vgaHWGetIOBase: hwp->IOBase is 0x03d0, hwp->PIOOffset is 0x0000

もしかするとこのエラーを抑制しつつ動作させる美しい設定もあるのだろうが、とりあえず動作するのでこれでよし。

あとは、GNOME の "システム"→"設定"→"ハードウェア"→"画面の解像度" を使用して、各モニタの解像度や位置を設定する。さあ、これからのお楽しみはシステムを再起動してもちゃんとツインヘッドになっているかどうかだ。たぶんログインするたびに画面設定、なんて不細工なことにはなっていないはずなのだが。

判定: 辛勝

ログオフ・ログオンしても、再起動してもちゃんとツインヘッドとして動作する。デバイスドライバとの戦いには勝利したと言ってよいだろう。しかし、エラー出しっぱなしなので辛勝。"Device" セクションで "DRI" をオフにしているのにどうしたものなのだろうか。

X-Window は「動けばよい」ヒトなので、エラーを吐かない設定することは目指さないのであった。


作成: 2008-05-25 11:13:44.0更新: 2008-05-25 12:23:26.0
http://museo-anonimo.jp/nanban/?id=639,http://museo-anonimo.jp/nanban/tr/639