最近、testing(=squeeze) の不具合調査が多いなあ。^^;

xserver 関連のアップデートをしてから、Iceweasel(=Firefox) や
Emacs のスクロールがやけにカクカクするようになりました。

以前 [2008-08-24-1] で似たような現象が起きた時は、理由が分からない
まま解決できたため、この現象に気づいたときは正直げんなりしました。
(この時予想したソフトレンダリングは、勘違いということが今回判明。)

今回は過程を重視したいため、結論は後に書きます。

まず、X の VIDEO まわりの設定を調べました。私の PC の VIDEO カード
は ATI の Radeon HD 2400 PRO です。ただ、/etc/X11/xorg.conf には以
下のような情報しか書かれていませんでした。

Section "Device"
	Identifier	"Configured Video Device"
EndSection

気を取り直して、ググってみたところ debian-users:51900 が引っかかっ
たので、

dpkg-reconfigure -plow xserver-xorg

等やってみたが変わらず。/etc/X11/xorg.conf は touch された形跡さえ
ありませんでした。

どうやら最近の X は /etc/X11/xorg.conf ではなく、hal で設定されてい
るようです。lshal コマンドで設定内容を確認できるようです。

% lshal

lshal の出力にはめぼしいものはありませんでしたが、このスレッドの以
下のコマンドに解決のヒントが隠されていました。

% grep EE /var/log/Xorg.0.log
% grep WW /var/log/Xorg.0.log

実行しました。

% grep EE /var/log/Xorg.0.log
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(II) Loading extension MIT-SCREEN-SAVER
(EE) RADEON(0): Acceleration initialization failed

% grep WW /var/log/Xorg.0.log
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(WW) The directory “/usr/share/fonts/X11/cyrillic” does not exist.
(WW) RADEON(0): Direct rendering disabled

Direct rendering disabled などという、描画が遅くなりそうなキーワー
ドを発見しました!!

Direct rendering は DRI(Direct Rendering Infrastructure) という略
称があるらしく、xdriinfo コマンドで状態を確認できるようです。案の定、
有効になっていませんでした。

% xdriinfo
Screen 0: not direct rendering capable.

ここで、公式のバグ報告を探してみました。
Debian のバグ報告は Google グループから参照できるようです。

Bug#544938 が私の現象と良く似ています。

Bug#544938: linux: direct rendering does not work with radeon driver on kernel 2.6.30-1-i686

私の /var/log/kern.log にも Bug#544938 と同じエラーログがありました!!

Oct 19 00:16:52 vergil kernel: [ 34.336437] platform r600_cp.0: firmware: requesting radeon/RV610_cp.bin
Oct 19 00:16:53 vergil kernel: [ 34.435915] r600_cp: Failed to load firmware “radeon/RV610_cp.bin”
Oct 19 00:16:53 vergil kernel: [ 34.435918] [drm:r600_do_init_cp] ERROR Failed to load firmware!

Moritz Muehlenhoff さん曰く、firmware-linux パッケージをインストー
ルすべきとのこと。

インストールしました!再起動しました!解決できました!!

  • スクロール時のカクカクが直りました。
  • /var/log/kern.log のエラーログがなくなりました。
  • /var/log/Xorg.0.log のログが変わりました。

(WW) RADEON(0): Direct rendering disabled

(II) RADEON(0): Direct rendering enabled

  • xdriinfo の結果も変わりました。

Screen 0: not direct rendering capable.

Screen 0: r600

testing で問題が起きたときは、公式のバグ報告を確認するのが良さそうです。
バグ報告の詳細は Debian バグ追跡システム をどうぞ。

追記(2009-10-19):
とは言え、testing はトラブルが多いなあ。testing は unstable で問題
のなかったパッケージを機械的に集めているだけなので、安定度で言えば
イマイチらしい。unstable に移行しちゃおうかなあ?