2008年12月17日水曜日

Fedora 10でfglrxドライバを使う方法

Fedora 10のradeonドライバはどうにも調子が悪い。modesettingを有効にするとXがしばしばフリーズするし,無効にしても文字が崩れるなどの症状が出る。AMDが提供する「fglrx」ドライバを導入すると表示は安定するが,そのままではDRIやGLX拡張などが使えないため,OpenOffice.orgやOpenGLを使うアプリケーションが軒並み起動しなくなる。いろいろ試してみてようやくfglrxドライバをフル機能で利用できたのでその方法を書いておく。なお,これは「ATI Catalyst 8.12」(fglrx 8.56.4)の場合の作業例なので注意していただきたい。


作業のポイントは次の3点である。


  1. Fedora 9のlibdrmパッケージにダウングレードする

  2. radeonドライバとdrmドライバを無効にする

  3. /dev/driを手動生成する

まず,(1)は簡単だ。Fedora 9のリポジトリから「libdrm-2.4.0-0.13.fc9.i386.rpm」というパッケージをダウンロードしてインストールすればいい。古いパッケージを依存関係を無視して導入するには次のコマンドを実行する。


# rpm -U --oldpackage --nodeps libdrm-2.4.0-0.13.fc9.i386.rpm

(2)は,/etc/modprobe.d/blacklistに次の記述を追加してからinitrdファイルを再作成すればいい。


blacklist radeon
blacklist drm

initrdファイルの再作成には次のコマンドを実行する。古いinitrdファイルを残しておきたければ,適当にリネームして保存しておく。


# mkinitrd -f /boot/initrd-`uname -r`.img `uname-r`

(3)にはいろいろ方法はあるが,簡単なのはudevで起動時に作成することだ。/etc/udev/makedev.d/50-udev.nodesに「dri」と書いた行を追加すれば,システム起動時に/dev/dri が作成される。


ここまで準備すれば,あとは普通にfglrxをインストールしてxorg.confを用意すればいい。xorg.confは「system-config-display」を導入して,それを使って作成するのが簡単で良いと思う。あ,次の記述を追加する必要もあるかな。


Section "DRI"
Mode 0666
EndSection

これでシステムを再起動すれば,fglrxドライバで画面表示できるようになるはず。Plymouthのグラフィカル表示は無効になるけど,別に無くても困らないし,欲しければvesafbでも使って有効にすればいいだろう。なお,このエントリで紹介した方法はx86版向け。x86_64版については調べてない。それから「libdrm」は自動更新しないように設定しておいた方がいい。


(追記)タイトルに書いたドライバのバージョンが間違っていたので修正した。なおXv拡張を有効にする場合は,上記に加えて「# aticonfig --overlay-type=Xv」を実行しよう。


(再追記)RPM Fusionでパッケージが提供された。ここで書いた方法ではなく,このページでRPM Fusionのnonfreeリポジトリを有効にして「xorg-x11-drv-fglrx」をインストールするようにしよう。initrdだけは手動で再生成する必要があるようなのでご注意を。

0 件のコメント: