Ubuntu 9.04 カーネル 2.6.31rc4 + Intel 2.8 ドライバ

先々週なんですが Ubuntu 9.04 をネットワークインストールした古いノートの方にも Cairo-Dock を導入してみました。
チップセットは Intel 915GM Express

普通に Ubuntu 9.04 をインストールした状態だとカーネルは 2.9.28、オープンソースの Intel ドライバは 2.6.3 で、2D アクセラレーションは「EXA」、3D アクセラレーションは「DRI1」が使用される設定。

自分は Ubuntu 8.04 で Intel を使用したことはなかったので以前のパフォーマンスとの比較はできないんですが、Compiz 有効でもデスクトップは常用できる感じ。

しかし、「DRI1」を使用する状態なので Compiz 等のコンポジット有効下では OpenGL を利用するアプリケーションが正しく表示されません。glxgears のウィンドウを移動させてみるとそれが判ります。Google Earth や Xv で動画を出力するときにも問題があったはず。

Cairo-Dock Ver.2系を OpenGL 使用の GLX-Dock モードで起動させると、やはり正常には表示されません。

UXA(および DRI2)の有効化

この問題を解消するには「DRI2」を使 用しなければなりませんが、「DRI2」を使用するには 2D アクセラレーションの方も「EXA」から新方式の「UXA」に変更してやる必要があります。
なので /etc/X11/xorg.conf を編集して以下の行を Device セクションに追加しマシンを再起動。(念のために書いておくと、Jaunty よりも古いカーネルやドライバでは UXA オプション利用不可。)

Option        "AccelMethod"    "uxa"

2D アクセラレーションの方式を「UXA」に変更すると、3D アクセラレーションは自動的に「DRI2」に変更されます。

なお、オープンソースドライバを使用している場合、 Cairo-Dock を GLX-Dock モードで起動させるには -i(indirect) オプションを付けなければなりません。

cairo-dock -o -i

「UXA」および「DRI2」に切り替えてみると、Cairo-Dock(GLX-Dock)は正常に表示されるようになりましたが、デスクトップ全体の動作が「UXA」を使用する前のときよりもモッサリした感じになってしまいました。

ドライバの入れ替え

そこでまず Intel ドライバ等を先々週の時点では最新だった Intel 2.7.99 パッケージ等に xorg-edgers PPA を利用して入れ替え。結果は、ドライバだけ替えてもパフォーマンスの向上は得られませんでした。

カーネルも入れ替え

新しいDRM(Direct Rendering Module)メモリ管理の仕組み(GEM)のコードがカーネルの方に組み込まれていたりするので、こちらの方も新しいバージョンに入れ替えると良い結果が得られる可能性があります。

追記:しかしカーネルを入れ替えると「システム」→「システム管理」→「ハードウェア・ドライバ」が利用できなくなるので注意です。

そして実際に Ubuntu Kernel PPA を利用して最新リリース版の 2.6.30 を導入してみたところパフォーマンス回復。Cairo-Dock(GLX-Dock)をまともに利用できるようになりました。ふぅ。

ところが、個人使用のPCはあまり気にしなくてよいと思うけれど 2.6.30 はマズいらしい・・・。

Linux カーネルの zero-day exploit コード、リリースされる

数日前に Intel ドライバ 2.8Mesa7.5 がリリースとなり、xorg-edgers PPA が速攻でそれらのパッケージをすでに提供(Mesa7.6)してたりします。

Ubuntu Kernel PPA では 2.6.31 RC4 のパッケージも今日アップされて利用できます。( Linus 氏曰く、RC3 には比較的大きなバグがあったらしい。)

上記リンク先の脆弱性の問題に加えて、ベンチとしての意味はないと言われる glxgears ですけど 2.8 ドライバ(および Mesa 7.6)とカーネル 2.6.31 RC の組み合わせではその数値がさらに向上するとのことなので、ドライバとカーネルをさらに入れ替えてみたところ、確かに数値がドライバ 2.7.99 カーネル 2.6.30 のときの倍に上がりました。

Ubuntu 9.10 Karmic Koala

というわけで、9.04 Jaunty の方でもなかなか良い感じなので、Linux カーネル 2.6.31 および Intel ドライバ 2.8 が予定されている Ubuntu 9.10 Karmic Koala では Compiz 等のコンポジット機能を有効にしていても OpenGL 利用のアプリケーションの表示に問題は出ないと思います。

この辺りの対応はかねてから Nvidia プロプライエタリ・ドライバが独自に実装していて他よりも抜きん出ていましたが、ようやくオープンソースのドライバも追いついてきた感じ。

以前、「DRI2 がきちんと働くようにならない限りはそもそもコンポジット・マネージャを標準で有効にはすべきではない。すべきでないにもかからず標準で有効にしている ディストリビューションがあるのは、マーケティングのためという理由しか思いつかない。」という開発者か誰かの発言をどこかで見た記憶があります。

しかしながら、コンポジット機能の利用を基本にした Gnome-Shell の登場もあり、今年の終わりから来年にかけて Compiz に代表されるような視覚効果がようやく正式な存在になると言えそうです。Compiz 的には周りに追いつかれてしまうとも言えるかもしれませんが。

ついでにカーネル・モード設定(Kernel Mode-Setting(KMS))を有効化

Ubuntu 9.10 も alpha3 が日本時間の今日か明日にもリリースされますけど、Intel だとすでに KMS が標準で有効に。

X サーバの方で行っていたディスプレイの EDID の解析等による解像度の設定といったモード設定が、カーネルによってブートプロセスの早い段階で行われるようになるそうです。

なんのことやら。^^;

カーネルの方でグラフィックの初期化をするのでサスペンド復帰が効率的になるとか、仮想端末の切り替えが速くなるとか、ルート権限で X サーバを実行する必要性がなくなりセキュリティが向上するとか、DisplayPort の対応とか・・・・、まぁ色々あるみたいです。

デスクトップにはすでに 9.10 alpha を入れてて KMS を試したんですが、サスペンドは使わないし、仮想端末とXサーバの切り替えなんて全然しないし、DisplayPort コネクタのある機器は持ってないので直接メリットを感じることはできません。

起動プロセスがクリーンになるのでマシンの立ち上がりが速くなるらしいんですけど、ほとんど変化は感じられず。

しかしノートの方ではサスペンドを使用する機会が出てくるかもしれないし、せっかく Ubuntu Jaunty 9.04 のカーネルやドライバを新しくしたので、以下の手順で 9.04 を入れたノートでも KMS を有効化。

1. 以下のファイルを新規作成。

$ sudo gedit /etc/modprobe.d/i915-kms.conf

2. 以下の行をファイルに記入して保存。

options i915 modeset=1

3. マシンを再起動。

サスペンドは今までほとんど使用してなかったので以前との違いはよくわかりません・・・。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。