yendo weblog


X でのデュアルモニター (ATI 編)

前置き

AMD 690G なマザーボードやら 17 インチ液晶モニタを二台やら購入し、 Debian をインストールした。最初は X での使い勝手がよい NVIDIA のカードを買うつもりだったのだが、 マザーボードがデュアルモニタに対応しているので、 ひとまずマザー内蔵のものを使うことにした。 また、購入したマザーボードのディスプレイ出力、片方がアナログだったりする のは今時どうなのよとか思ったりもしたのだが、DVI 出力が二つあってなおかつファ ンレスなグラフィックボードの入手がちょっと難しそうだったりこともあり、 片方はアナログ接続で我慢することにした。

利用するドライバだが、最初は fglrx ドライバを利用しようとした。 コンポジット表示は試していないが、2D 表示 も 3D 表示もまぁ軽快でいいかなと 思っていたら、ログアウト時に画面がブラックアウトするバグに遭遇した。 この問題に遭遇している人は多いようだが、 ちゃんとした解決方法はちょっとよく分からなかった。

結局、3D はひとまず諦め、オープンな radeonhd ドライバを使うことにした。 Debian の場合は sid に最新版 (1.2.0) が収録されている。 たまにマウスポインタの表示がおかしくなったりするようだが、 2D 表示や、動画程度ならこのドライバでまず問題はないようだ。 デュアルモニターの設定を含めたドライバ情報については X.Org Wiki - radeonhd にまとまっている。

設定

まずは xrandr を端末から実行して、接続名を確認しておく。 AMD 690G だと、DVI-D_1 と VGA_1 だ。 Section "Device" には、"monitor-接続名" と好みの識別子を書く。私は識別子をそれぞれ "DVI"、"VGA" とした。

Option          "monitor-DVI-D_1"       "DVI"
Option          "monitor-VGA_1"         "VGA"
また、Section "Device" にはプライマリ接続となる接続名も書いておく。 "monitor-接続名" でも、自分で付けた識別子でもなく、接続名を書く。 ここで指定した接続モニタに GDM の画面や GNOME のメインパネルなんかが表示される。
Option          "RROutputOrder"         "DVI-D_1"
さらにモニタの設定を二つ用意し、片方にはモニタの位置関係を指定する。 なお、"RightOf" 以外にもいくつか指定方法がある。
Section "Monitor"
        Identifier      "DVI"
EndSection

Section "Monitor"
        Identifier      "VGA"
        Option          "RightOf" "DVI"
EndSection

まとめ

デュアルモニター設定のために、変更する部分をまとめると以下の通り。

Section "Device"
        Identifier      "Generic Video Card"
        Driver          "radeonhd"
        BusID           "PCI:1:5:0"
        Option          "monitor-DVI-D_1"       "DVI"
        Option          "monitor-VGA_1"         "VGA"
        Option          "RROutputOrder"         "DVI-D_1"
EndSection

Section "Monitor"
        Identifier      "DVI"
EndSection

Section "Monitor"
        Identifier      "VGA"
        Option          "RightOf" "DVI"
EndSection

まったくもってデュアル (あるいはマルチ) モニターは便利すぎ。

2008/04/18 (Fri) 14:28 | タグ: computer | 固定リンク


X でのデュアルモニター (NVIDEA 編)

書いていたのを忘れていた古い記事だが、CRT が壊れた記念に公開しておく。

前置き

捨て置いていた CRT モニターがあったので、デュアルモニターを設定してみた。 OS は Debian GNU/Linux。ハードウェアの構成は以下の通り。

ビデオカードASUS N6200 (Geforce 6200)-
液晶モニター (プライマリ)EIZO FlexScan L4611280x1024
CRT モニター (セカンダリ)NEC MultiSync 15 (PC-KM153R)1024x768

このビデオカードには、DVI 接続と VGA 接続が一つづつあるので、 それぞれにモニターを接続することになる。 メインは液晶モニター、その右側にサブとして CRT モニターを設置して使う。 なお、この CRT モニターはもともと PC-9821 シリーズ向けのものなので、 接続のために変換アダプタ (800円ぐらい) を購入した。

Geforce のドライバは、NVIDIA 提供の最新のもの をあらかじめインストールし、設定しておく。

Xinerama vs. TwinView

X でのデュアルモニターには Xinerama を使うのが一般的だが、 NVIDIA の純正ドライバだと TwinView なるものが使える。 TwinView の利点は何かというと、マニュアルによれば以下の通りらしい。

この説明では私は良く意味が分からなかったが、具体的に設定してみて分かっ た範囲で、TwinView の特徴をまとめると以下のような感じだった。 Xinerama の方は十分に試したという訳でもないので、いくつかの項目は もしかしたら Xinerama でも TwinView でもたいして変らないかもしれないけど……。

TwinView の長所

TwinView の短所

せっかくなので、私は TwinView を利用することにした。

設定

ドライバのバグというか仕様なのか、一部面倒なところがある。

TwinView を有効にする

/etc/X11/xorg.conf の "Device" セクションにまずは以下のものを追加する。 これで TwinView が有効になる。

Option    "TwinView" "on"

DVI 接続をプライマリに設定 + 基本設定

私は、DVI 接続の液晶モニターをプライマリとして、 VGA 接続の CRT モニターをセカンダリとして利用したいのだが、 デフォルトでは VGA 接続の CRT モニターがプライマリとして認識されてしまう。 これは、以下のオプションで変更する。

Option    "TwinViewXineramaInfoOrder" "DFP, CRT"

しかし、ややこしいことに、 設定の際、明示しないかぎり暗黙のプライマリ接続は VGA 接続の方だとみなされてしまう。 水平周波数、垂直周波数 は、 それぞれ DFP (DVI 接続)、CRT (VGA 接続) と明示した方が 分かりやすいだろう。 "SecondMonitorHorizSync" と "SecondMonitorVertRefresh" は使わない。 モニタの配置順序は、暗黙のプライマリ接続の「左」に、 暗黙のセカンダリ接続を配置するため、"LeftOf" とする。 明示的に "DFP RightOF CRT" と書いた方が分かりやすいのだが、 これだと SDL なアプリケーションではなぜか 両モニターをまたぐフルスクリーン表示で左右が逆になってしまった。

Option    "HorizSync"   "DFP: 31.5-64; CRT: 24.8-57"
Option    "VertRefresh" "DFP: 50-75;   CRT: 55-90"
Option    "TwinViewOrientation" "LeftOf"

Metamodes の設定

最後に "Metamodes" 画面モードの設定を行なう。"," で区切って、複数のモニター の解像度を設定する。";" で区切ることによって、複数のモードを設定できる。 以下は読みやすいように複数行にわたって書いているが、実際は一行にまとめる 必要があったと思う。
Option    "Metamodes" "DFP: 1280x1024, CRT: 1024x768 +1280+110 @1024x768 ; 
                       DFP: 640x512 @640x512, 1024x768 ; 
                       DFP: 1280x1024, CRT: NULL"

一行目の "+1280+110" というのは、"TwinViewOrientation" による配置順序を無視 して、独自に位置関係を設定する項目である。異なるモニタを使えば、 普通スクリーンの上下の位置は、適切なものとはならないだろう。 ここでは、CRT モニターの方を上に、110 ドット分ずらしている。 この設定ゆえ、右方向に 1280 ドット分ずらす設定も併記しておく。

一行目、二行目にある "@1024x768" という項目で、パンニング・ ドメインなるものを設定する。これを設定すると、いろいろあるけど、 相対的に画素数の少ないモニターで 表示できない範囲を無視してくれるようになるはずなのだが完全ではないようだ。 設定しないとどうなるんだっけ。上下にビューポイントが 動いたりするんだっけか。確か面倒だった。

三行目の "NULL" という設定は、 そのディスプレイを利用しないための設定。 DPMS のオフステートに対応したディスプレイならば、 電源もちゃんと切れて無いものとしてくれる。

この例のように設定すると、 GNOME の場合「画面の解像度の設定」で設定を動的に変更できる。 二つのデバイスをまとめて、三つの解像度が利用できるわけだ。

なお、設定をぜんぶまとめると以下の通り。

Option    "TwinView" "on"
Option    "TwinViewXineramaInfoOrder" "DFP, CRT"
Option    "TwinViewOrientation" "CRT LeftOf DFP"
Option    "HorizSync"   "DFP: 31.5-64; CRT: 24.8-57"
Option    "VertRefresh" "DFP: 50-75;   CRT: 55-90"
Option    "Metamodes" "1024x768 +1280+110 @1024x768, 1280x1024 ; 
          1024x768, 640x512 @640x512 ; NULL, 1280x1024"

まとめ 〜残された問題

古い mplayer のフルスクリーン表示で、映像の一部が表示されないことがある。 また古い mplayer だと異なるモニタのアスペクト比に自動では対応できない。 コマンドラインで、 "-xineramascreen 1" などと表示するモニターを明示したり、 "-monitoraspect 4:3" としてモニタのアスペクト比を明示しなければならない場 合もあろう。 ちなみに、Totem ならどちらも問題ない。

SDL を利用するアプリケーションでは、一方のモニターで SDL アプリケーションをフルスクリーンで表示し、 一方のモニターで通常画面を表示することができない。 SDL アプリケーションをフルスクリーン表示するには、 どちらか一方のモニターを無効にしないと、 二つのモニターにまたがって中央に表示が行なわれてしまう。

他にも、液晶ディスプレイと CRT モニターで 色合いが結構違ったりするのが気になったりもするけれども、 デュアルモニターは思った以上に便利。 私の CRT モニターでは、小さな文字を読むのはしんどいが、 大きな文字で端末エミュレータ専用にしてもいいし、 映像はやはり液晶モニタよりはきれいだったりする。 腐った CRT モニタでも捨てるにはお金がかかるので、 電気代に注意しつつ、有効に使ってもよいだろう。

2008/04/18 (Fri) 13:20 | タグ: computer | 固定リンク


scanbuttond for EPSON GT-S600/GT-F650

最近のスキャナには本体にいくつかのボタン (スキャナビボタン) があり、コピーや PDF 作成などの機能を呼び出せるようになっている。嬉しいことに GNU/Linux でも scanbuttond を利用すれば、スキャナ本体のボタンのプッシュ・リリースを検知し、 好みのアクションを実行できる。

ただ、私が最近購入した EPSON GT-S600 (あるいは GT-F650、Perfection V10/V100 PHOTO) は、この scanbuttond ではサポートされていなかった。 そもそも最近の EPSON スキャナは、以前のものとはプロトコルが違うらしい。 しょうがないので、新しいバックエンドを用意した。 これでちゃんと本体上の四つのボタンを区別して検知できている。 また、GT-S600 以外の最近の EPSON スキャナも、この辺りを見てゴニョゴニョすれば何とかなるかも。

アップストリームにはパッチを投げておいたが、 一応ここでもパッチと Debian パッケージを公開しておく。 完全無保証だがご関心のある方はどうぞ。 パッチの方は当てたら automake をお忘れなく。

ちなみに、この GT-S600 で書類をスキャンする場合、トーンカーブの調整は scanimage そのもので --(red|green|blue)-gamma-table `curve.pl 100 200` のようにして済ますのが楽。 また、スキャンした書類をそれなりに整形するには unpaper が便利。

2007/08/01 (Wed) 15:38 | タグ: computer | 固定リンク


マイナーアップデート ―私家版 BigClock 2.83c #5

もう弄ることはないと思っていた Palm 用時計ソフトウェアの BigClock だが、 バグを見付けてしまったので、その修正ついでに若干の機能追加も行なった。

バグ修正

機能追加

わずかな変更なので、 公開するパッチは前バージョンからの変更点のみを含むものとした。 ライセンスはオリジナルに基づき GPL。完全無保証。 2007 年の日本の休日データも置いておくが、こちらももちろん無保証。

前バージョンからのパッチbigclock_ye5-1.patch
バイナリ (日本語版)bigclock-ja_ye5-1.prc
バイナリ (English)bigclock-en_ye5-1.prc

2007/01/13 (Sat) 04:45 | タグ: computer | 固定リンク


del.icio.us 用 Firefox 拡張の日本語版

ソーシャルブックマーク最大手 del.icio.us の最大の問題点は 日本語での検索ができないことだったが、久しぶりに使ってみたら 自分のブックマークに関してはちゃんと検索できるようになっていた。 まだ日本語では他人のブックマークの検索が出来ないのは残念だが、 ひとまずは常用できそうだ。 また、プライベートなブックマークをつける機能も追加されていたりして、 これも嬉しい。

さらに、del.icio.us 用 Firefox 拡張もシンプルなものFirefox のブックマークを統合する拡張の二つが用意されている。 私はシンプルな前者を利用したが、これでも以下のように十分便利。

この拡張はなかなか便利なので、適当に日本語訳してみた。 ついでに私の好みでメニューの位置を「ヘルプ」の前にしたり、 (Debian の Iceweasel で) ブックマーク登録時のウィンドウに余分なクロールバーが表示されないように、 ウィンドウの幅を若干拡げたりした。

オリジナルのライセンスが不明だったので、 問題がありそうだったりしたら拡張やパッチの公開は期間限定になるかも。 ご利用になりたい方は完全無保証・自己責任でどうぞ。

なお、Firefox 拡張の日本語メッセージ翻訳については、拡張機能の日本語化 - takanory.net を参考にした。 ただ、Firefox 2.0 相当を導入したためなのか良く分かっていないが Chrome Manifest なるものの修正も必要だった。

2006/12/19 (Tue) 21:00 | タグ: computer | 固定リンク


PictureGear Pocket で天気予報を表示

ネットワークを使えない Clie (OS 4.0) + jpilot で 天気予報を表示できるようにしてみた。 効率など無視したアナクロな方法だが、 天気予報の画像を引っ張ってきて、Clie で表示するようにした。

画像表示には PictureGear Pocket (あるいは Polar) を使い、画像の変換に は以前作成したシェルスクリプトを pgpf2palm として使う。 以下のスクリプト を仕込んでおけば、自動的に画像データの取得、変換、転 送ができる。 変数は適宜する必要があるが、TBS WEATHER GUIDE あたりがいいかも。 $url にはベースとなる URL を、$file には取得する画像のファイル名を指定する。

#!/usr/bin/perl 

use strict;
use LWP::Simple;

my @file = ("xxx.jpg", "yyy.jpg");
my $url = "http://";
my $tmp = "$ENV{HOME}/tmp/pgpf/";

foreach (@file) {
    my $rc = mirror($url.$_, $tmp.$_);

    if ($rc == 200) {
	system "pgpf2palm $tmp$_";
    }
}

Clie 付属の PhotoStand を使えば、ホーム画面から直ぐに画像を閲 覧することもできる。

……が、さすがにそろそろネットワークの使える PDA が欲しいところ。

2006/11/21 (Tue) 16:38 | タグ: computer | 固定リンク


iPod 復活 ―診断モードで HDD SCAN

先日一度は死んだ iPod だが、 なんとか復活させることができた。 一度は諦めたつもりだったが、ふと iPod には開発者向けに非公式の 診断モード (Diagnostic Mode) があるとかないとか、 どこかで読んだことを思い出した。 ググると、私の第三世代 iPod なら次のようにしてこの診断モードに入れると の情報があった。

  1. リセットする
  2. Apple マークが表示されたら直ぐに「戻る」ボタン、「進む」ボタン、 ホイール中央のボタンを同時に押して離す

こうすると、左右反転した Apple マークが表示され診断モードに入る。 この診断モードではホイールは効かない。「戻る」ボタン、「進む」ボタンで 項目選択、ホイール中央のボタンで項目決定をする。 そして、いくつかある診断項目の一つに HDD SCAN という項目があるのに気付いた。 おっと、これは!と思い、さらにググると、この HDD SCAN によって、 工場出荷時状態への復元が出来ない状況から、 正常な状態に復帰できたとの情報を見付ける。

AC アダプタに iPod を繋ぎ、早速この HDD SCAN を行なってみた。 進捗状況が明示されないので不安になるが、ほっといたら数十分で スキャンは終了。画面には HDD PASS (だったかな?) と表示がされており、 ハードディスクには問題がない (あるいは不良セクタの代替をしてくれた) かに見える。 実際このあと iPod Updater で復元を試みると、 何の問題もなく工場出荷時状態に戻った。

何が問題でどうして直ったのか詳細は良く分からないが、 おそらくハードウェアの障害だったのだろう。 少し気を付けて使うようにはしよう。 ともあれ情報を提供してくださっている他のユーザに感謝。 Apple のサポートにお願いしたら、 おそらくきっちり三万円弱のお金を取られるところだったろう。 まぁサポートっていうのはコストのかかる大変なことなんだけども。 と思うと、実は診断モードについては Apple が 意図的にリークしていたことなのかも。

2006/06/01 (Thu) 00:41 | タグ: computer | 固定リンク