ATIドライバのインストール

ある一件によってATIドライバのユーザとなった私ですが,たまにGeForceもいいなあと思うときがあるのです.なぜかというと,ATIのドライバはdebianパッケージがないんですね.ATIのオフィシャルサイトでrpmパッケージは配布しているのですが,恐らく世界中にradeonを乗っけたマシンの上でdebianを動かしているユーザは多数いるはずなのにdebパッケージは作られていないのです.nvidiaからradeonに乗り換えた時は一般的な方法に則って上記のrpmパッケージをalienでdebパッケージに変換しましたが,そうすると依存関係が満たせずに,xlibmesa-glの一部のパッケージをインストールし直さなければならないという弱点があります.ゆえに今一使い勝手がいいとは言えない状態だったのです.

ところが色々調べてみると,どうやらdebパッケージは配布されていないものの,とあるサイトでソースからコンパイルすれば自動的にXのバージョンを読み取ってうまく出来るようなソースが配布されていることがわかりました.xlibmesa-glの衝突が起きないようにdpkg-divertを使って上手く待避してくれるようです.今回はこれを使ってATIのドライバをインストールしてみることにしましょう.

参考までに,私のATIビデオカードはRadeon 9500 Proです.


1.apt-lineを加え,apt-get

まずはソースを取得するサイトを /etc/apt/source.list に記述するところから始めなければなりません.適当なエディタで source.list を開いて,以下のサイトを付け足しましょう.

deb http://www.stanchina.net/~flavio/debian/ ./
deb-src http://www.stanchina.net/~flavio/debian/ ./

コメントで"# ATI package"とか"# ATI driver"などとつけておくと,将来「何のapt-lineだったっけ?」なんて悩まなくて済みます.もちろん,apt-line を付け足したらupdateを忘れずに.

# apt-get update

これで apt-get する準備が整ったので,早速 apt-get しましょう.ちなみにこれから行う作業ではカレントディレクトリの下部にディレクトリが作られたり複数個のファイルがダウンロードされるので,適当な作業用ディレクトリを設けてから作業する事をお勧めします.

# apt-get source fglrx-installer

今回私はfglrxのバージョン8.8.25をインストールします.2005年2月2日現在ではカレントディレクトリに2つのファイルがダウンロードされ,一つのディレクトリが作成されます.

fglrx-installer_8.8.25-1.dsc
fglrx-installer_8.8.25-1.tar.gz
fglrx-installer-8.8.25/

以前のバージョンは3.14.1とかだったのにいきなり大きくバージョンが飛びましたが,この際気にしない気にしない.基本的には作成されたディレクトリが重要であり,ダウンロードした tar.gz と dsc は使いません.

次に新しくできたディレクトリに移ります.

# cd fglrx-installer-8.8.25/

必要に応じて,このディレクトリの下部にある debian/control というファイルを書き換えますが,ここでは一切それには手を付けません.では,次に本番である作業に入ります.

2.ドライバをダウンロードしてコンパイル

本番の作業とはいっても,やるべき事は非常に単純です.以下のコマンドを入力すると,勝手にATIのウェブサーバに接続して適切なrpmファイルをダウンロードしてくれて,かつ展開した後コンパイルもしてくれます.

# debian/rules binary

この行程はマシンパワーにもよりますが,およそ数分で終わるでしょう.この作業が終わるともう必要なdebパッケージが一つ上のディレクトリに作られているので,それをインストールするのみです.

# cd ../

作られるdebパッケージは以下の5つです.

fglrx-control-qt3_8.8.25-1_i386.deb
fglrx-driver-dev_8.8.25-1_i386.deb
fglrx-driver_8.8.25-1_i386.deb
fglrx-kernel-src_8.8.25-1_i386.deb
fglrx-sources_8.8.25-1_i386.deb

ところで,このバージョン8.8.25から,fglrxとファイルの種類名の間にバージョンが入らず,バージョンは後ろに付くようになりました.例えば,以前のバージョンのものは以下のようなスタイルになっていました.

fglrx-4.3.0-control-qt3_3.14.1-2_i386.deb
fglrx-4.3.0-driver-dev_3.14.1-2_i386.deb
fglrx-4.3.0-driver_3.14.1-2_i386.deb
fglrx-4.3.0-kernel-src_3.14.1-2_i386.deb
fglrx-4.3.0-sources_3.14.1-2_i386.deb

ファイル名が異なることによってインストール時に上書きされず,次の章でインストールするときに依存関係の問題でファイルが設定できず,インストールに失敗してしまいます.それを回避するために,

# COLUMNS=120 dpkg -l |grep fglrx

などとして現在インストールされているfglrx関係のパッケージを探した後に,dpkg --purge でアンインストールしてから,上記のファイルをインストールして下さい.

3.インストール

あとは普段通りインストールするだけ.

# dpkg -i fglrx-control-qt3_8.8.25-1_i386.deb
# dpkg -i fglrx-driver-dev_8.8.25-1_i386.deb
# dpkg -i fglrx-driver_8.8.25-1_i386.deb
# dpkg -i fglrx-kernel-src_8.8.25-1_i386.deb
# dpkg -i fglrx-sources_8.8.25-1_i386.deb

無論,一回のdpkgコマンドで5つのファイルを一気にインストールすることが出来ます.ものぐさな私は,ワイルドカードを用いてインストールしました.ワイルドカードを用いる際には,意図しないパッケージが入らないように気を付けて下さい.

# dpkg -i fglrx*.deb

4.モジュールの作成とインストール

ドライバのインストール自体はトントン拍子で終わってしまいました.ここで完了なら至極楽なんですけど,なかなか世の中(linux?)そうは上手く出来ていないんですね.OpenGLなどを使ったソフトをダイレクトレンダリングで描かせるためには,ATIが提供するGLであるFireGLを用いたfglrx.oというモジュールを読み込まなければいけません(別にOpenGLに限らずですが.fglrx.o がないとX立ち上がりませんので).nvidiaだとここらへんもdebパッケージになっていたから楽ちんだったんですけどねえ.

モジュールをコンパイルするために,/usr/src に移ります.

# cd /usr/src

ここにはすでにこれまでの作業で fglrx-kernel-src.tar.gz というファイルが置かれているので,これを展開します.

# tar xvfz fglrx-kernel-src.tar.gz

ちなみに,以前まではバージョン付きの,例えば fglrx-4.3.0-3.14.1.tar.gz のようなファイルが置かれていました.8.8.25になってから,バージョン番号は省かれ,ファイル名が変わったようです.

すると,modules/ の下に fglrx-kernel-src/ というディレクトリが作成されますので,そちらに移ります.

# cd modules/fglrx-kernel-src/

ここからの作業は何通りかありますが,そのうちの一つの方法を示します.このディレクトリで,make.sh を実行します.

# ./make.sh

ほどなくして現在のカーネルに対応した fglrx.o が作成されますので,これを /lib/modules 以下にコピーします.

# cp fglrx.o /lib/modules/2.4.27/misc/

ちなみにここでの 2.4.27 とは私のカーネルのバージョンです.私としては /lib/modules/2.4.27/ にコピーしても問題ないと思うのですが,README.debian に misc にコピーすると書いてあったので,misc ディレクトリを作成してそこに放り込みました.恐らくは見栄えの問題かと思います.しかしATIのドライバは miscellaneous 扱いですか.

後は,新しくなったモジュールの依存関係を更新する必要がありますので,以下のコマンドを実行します.

# depmod -ae

そして,モジュールを更新するために

# modprobe fglrx

を実行します.ここら辺が面倒くさければ,再起動でもしてしまえばよいかと思います.

5.万歳!

ようやく全ての作業が終わりました.XF86Config-4の設定などは別稿を参考にして下さい.ちなみに以前もATIのドライバを使っていたのでしたら,古い fglrx.o が存在して,それが悪さをする虞があります.ですから,古いドライバは locate か何かで探してあらかじめ削除しておくようにして下さい.ダイレクトレンダリングが効いているかどうかは,glxinfo で確認することが出来ます.


資料室に戻る
©2005 HONDA Mitsuru