2010/10/07(Thu)Fedoraで自動認識していない画面解像度に変更する方法
2010/10/07 15:04
一見これは便利なのだが、モニタ情報を正しく吐かないKVMスイッチなどを使っていると、SXGA(1280x1024)が映るモニタなのにXGA(1024x768)までしか選べないなんて事が起こって非常に不便。
ということで、今回は解像度のリストにない任意解像度に切り換える方法を紹介。
gnome-display-properties
gnome-display-propertiesというコマンドを実行するとこのような画面が現れる。正しくモニタを認識していれば、モデル名と解像度がきちんと出るのだが、先のようにKVMスイッチがモニタ情報を中継してくれない場合などは正しく検知されずにこうなってしまう。
私が使っているモニタはDELL E193FPというSXGA(1280x1024)まで出力可能なモニタなので、SXGA表示できるようにしてみる。
変更方法
X Window Systemで動的に画面解像度を変更するにはxrandrというコマンドを使う。xrandrはバージョンによって出来ることに差があり、v1.0やv1.1だと今回のような方法は取れないと思うので、その場合はxorg.confを直す方が早いと思われる。
とりあえず、現状の解像度リストを出力してみる。現在は"VGA-1"というVGA接続の主モニタにXGAで表示中。(↓の太字部分をメモしておく)
$ xrandr --version Server reports RandR version 1.3 $ xrandr Screen 0: minimum 320 x 200, current 1024 x 768, maximum 2048 x 2048 VGA-1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm 1024x768 60.0* 800x600 60.3 56.2 848x480 60.0 640x480 59.9
もし、ssh経由などリモートコンソールから変更する場合は、DISPLAYという環境変数をexportしておけばローカルコンソールの設定を変更可能。wコマンドでローカルがどのDISPLAYを使っているか表示できるが、たいていは":0.0"で問題無いと思われる。
$ xrandr Can't open display <== ssh越しなのでDISPLAYが定義されてない $ w 14:38:19 up 1 day, 15:03, 3 users, load average: 0.05, 0.08, 0.03 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT kero tty1 :0 Tue23 39:02m 17:54 0.11s pam: gdm-password kero pts/0 hogehogehoge Tue23 0.00s 0.44s 0.01s w kero pts/1 :0.0 Wed21 1:25 0.13s 0.13s bash $ export DISPLAY=:0.0
次に、変更したい解像度の周波数情報などを自動的に計算してくれるcvtを使って、設定値を得る。
$ cvt 1280 1024 # 1280x1024 59.89 Hz (CVT 1.31M4) hsync: 63.67 kHz; pclk: 109.00 MHz Modeline "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync任意の名前(今回は"1280x1024"とした)に続けて、cvtの3列目以降の設定値をxrandrに足し(--newmode)、出力デバイスと紐づけて(--addmode)、最後に切り換える(--outputと--mode)。なお、デバイスの名前"VGA-1"は$ xrandrをしたときに表示されているので、DVI接続の場合などは読み替えること。
$ xrandr --newmode "1280x1024" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync $ xrandr --addmode VGA-1 "1280x1024" $ xrandr --output VGA-1 --mode 1280x1024