画面のサイズとxorg.conf

9.10にアップしてから、起動時に画面のサイズ(解像度)が小さく640x480ぐらいになってしまっていた。
9.04のころもよくあったのだが、その場でCtrl-Alt-BSでXを再起動すれば自分の望む1280x1024になってくれていたので、面倒と思いながらも原因追及や解決はさらに面倒に思えて放っておいた。
しかし、9.10になってCtrl-Alt-BSでXを再起動するための仕組みが変わったらしく(ユーザごとのキーボード操作のオプションになったみたい)、ログインしないと有効にならない。
なので、今まで同様のやりかたでは、大きい解像度にするために一度小さい解像度のままログインしてXを再起動してなくてはいけなくなった。さすがにそれは面倒過ぎる。
いったい、起動時だけそうなって、Xだけ再起動すれば大きくなるとはなにごとか。Ubuntuって起動時になにやってるのかよくわからない。
googleで適当に「ubuntu 起動時 X window サイズ 画面 設定 自動」というキーワードで検索してみたらさすがに適当過ぎるのかめぼしい情報にいきつかない。
もうちょっとしぼるべく、
/var/log/Xorg.0.log
にあった
> (II) VESA(0): Not using built-in mode "1280x1024" (hsync out of range)
という行で検索してみると一発でほしい情報にいきついた。
http://superuser.com/questions/59989/setting-vesa-display-mode-800x600-in-ubuntu-9-04
というところで、vesaで高解像はどうやって出せばよいの?と聞いていて、その答えで
xorg.conf

Section "Monitor"
        Identifier      "Configured Monitor"
        HorizSync       28-73
EndSection

と追加すればよいよとある。
やってみたらうまくいった。それまではHorizSyncを指定していなかったのだ。
どうもUbuntuは起動時に接続されたディスプレイの設定を読み取ってHorizSyncなどを決めるのだが、それが読み取れないと安全側に倒して?小さい値にしてしまい、結果として小さい解像度の表示しかできなくなるらしい。
私のディスプレイは古いのか、KVM経由なせいか、読み取りに失敗しているみたい。
で、xorg.confにそれを指定してあげれば大きい値で大丈夫ということで望みの解像度になってくれるらしい。
「みたい、らしい」、と実に不精な解決(というか解決になってない)だが、ま、動けばいいやというのがUbuntuを使ってる理由なのでしかたない。

Xが綺麗に起動するようになったせいか、マウスの動作がおかしかったのも改善された。
これは、flashなど一部のアプリでマウスがきかなくなるという不可解なものだった。
原因等は不明。ネットで見ると似たような症状の人はいるみたいだが、原因と解決方法の記述はみつからなかった。

今のところ、「Xorg.0.logを見てWWやEEを探し、ともかくそれを潰してみよ」、というのが解決への道か。