[ Main Page ]

以下の内容は、古いものです。くわしいことは、Freedesktop.org やDRI@sourceforgeなどを参照して下さい。


Linux 2.6 のためのATI Mach64 XFree86 4.3.0 GLX/Xvideo ドライバ

Linux 2.6が出てから結構経ちますが、昔の3Dカードのサポートは段々減ってくるようで、ちょっと寂しいですね。 自分の持っている機械のグラフィックは、ATI 3D Rage Proというもので、まだまだ 現役ですが、GLX/Xvideoのドライバはもう配布されていないようです。 そこで、昔 Unified DRI and XVideo Support for Mach64で手にいれたLinux 2.4用のドライバをちょっと書き直して、 Linux 2.6で使えるようにしました。バグなどがあったら報告いただけると 幸です。
Mach64 Linux 2.2.x/2.4.x
Mach64 Linux 2.6.0-testx

上にたいするいくつかの注意点

上のドライバはXFree86のバージョンが4.3.0のためのものです。自分の使っているSlackware-9.0などではそのまま使えましたが、 それ以外の場合は1からコンパイルする必要があるかもしれません。 (Xを立ち上げられなければもちろんだが、立ち上げてglxinfoとターミナルから入力した時に

teru@server:~$ glxinfo
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
...

という表示がされず

teru@server:~$ glxinfo
name of display: :0.0
display: :0 screen: 0
direct rendering: No
...

であれば立ち上がっていてもDRIはできていません。 )
その場合の手順を説明します。 まずXのソースをすべて手に入れます。(もしかしたら必要ないかもしれません。 distributionの状態によって異るようです。)
次に、以下のコマンドでCVSからファイルをとってきます。 まずlogonします。

teru@server:~$ cd /tmp (DownloadしたいDIRに移動)
teru@server:/tmp$ cvs -d:pserver:anonymous@cvs.dri.sourceforge.net:/cvsroot/dri login
Logging in to :pserver:anonymous@cvs.dri.sourceforge.net:2401/cvsroot/dri
CVS password: (そのままEnter)

次にファイルを取ります。

teru@server:~$ cvs -z3 -d:pserver:anonymous@cvs.dri.sourceforge.net:/cvsroot/dri co -r mach64-0-0-5-branch xc

これでカレントディレクトリに./xc/xcとしてダウンロードされます。
次にpatchをdownloadします。 Unified DRI and XVideo Support for Mach64 で、下のほうの

Patch and Binaries for mach64-0-0-6-branch (XFree86 4.3.0)
Source patch: mach64-dri-xv-20030331.diff.gz

Patch and Binaries for mach64-0-0-5-branch (XFree86 4.2.0):
Source patch: mach64-dri-xv-20020917.diff.gz

からdownloadします。次に ./xc/programs/Xserver/hw/xfree86/drivers/atiに移動して

teru@server:/tmp/xc/xc/programs/Xserver/hw/xfree86/drivers/ati$ zcat (patch filename)|patch -p1

なりします。 あとは./xc/xcに移動して適当にXのソースのパスを設定して make Worldしてmake installすればいいはずです。設定は 必要ないかもしれません。(もしエラーが起きたなら、make -i で一通りインストールして後述のパッチつきのモジュールを 組み込めば良いでしょう。) 何か問題があれば、configなどを探して直すしかありません。 distributionによって違うことがあるので一概にはいえません。 どうしてもわからない時はメールを下さればお答え出来るかもしれません。
ところで、先ほどはmach64-0-0-5-branchをダウンロードしましたが、 最新はmach64-0-0-6-branchなので、書き換えれば 最新のが手に入ります。しかし、この2つは似ているようで DRIマネージャの書き方が大きく違うために同じDRMカーネルモジュールでは 動きません。
附属しているものを基本的には使って下さい。 (make installでinstallされるが念のため 言っておくと./xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel にある。ここでコンパイルされる。) Linux-2.6.Xでは 最新でもDRMカーネルモジュールはコンパイルできなかったので そのためにちょっと書換えたファイルを置いておきます。 つかいかたは両方共に、ディレクトリに入ってmake -f Makefile.mach64で 済むようにしてあります。できたmach64.koを insmodしてやればあとはXを立ち上げるだけです。 directoryには別のcardのdriverもありますがcompileは保証しません。
また、注意点として、mach64-0-0-5では実行できるOpenGLプログラムがmach64-0-0-6では実行できない事があります。 このため前者の使用を推薦しますが、これはおそらくメモリがたりないからなのでしょう。
Linux-2.6.Xのためのmach64-0-0-X-branchのpatched kernel drm driver
for mach64-0-0-5
for mach64-0-0-6

Perilous to all of us are the devices of an art deeper than we ourselves
possess.
		-- Gandalf the Grey [J.R.R. Tolkien, "Lord of the Rings"]

 <rindolf>  Deiu: which editor are you using?
    <Deiu>  Ugh, let me catch up with the convo first
    <Deiu>  And yeah, I use vim too
 <rindolf>  Deiu: ah good. If you were using Eight Megabytes And
            Continuously Swapping , I would have to swap you with it!
 <rindolf>  I have a column of vim tips on one of my blogs.
 <rindolf>  I also like Escape-Meta-Alt-Control-Shift.
 <rindolf>  There are a lot of jokes about Emacs.
     <Zuu>  There are lots of jokes about your mom too ;)
 <rindolf>  Zuu: eMom
     <Zuu>  eh?
 <rindolf>  e-Macs -> eMum
 <rindolf>  "Your Mom is so fat, only Emacs takes more memory than her."
     <Zuu>  nope, doesnt work
 <rindolf>  Zuu: :-(
     <Zuu>  Your emacs is so fat that your mom could fit in it
 <rindolf>  Heh.
     <Zuu>  ahhh, yes, much better
 <rindolf>  Zuu++
     <Zuu>  :P
       -->  dbm has joined ##programming
         *  rindolf stores some key/value pairs in dbm
         *  Zuu stores some moms in dbm
     <dbm>  lol
 <rindolf>  Zuu: you overflowed him.
     <Zuu>  :>
     <dbm>  ;)
 <rindolf>  Or her, don't know.
 <rindolf>  them.
     <dbm>  'him'
 <rindolf>  OK.
 <rindolf>  dbm: I don't recall your nick.
     <dbm>  dbm= dont bother me
 <rindolf>  don't be mean.
     <dbm>  ;)
     <Zuu>  or: do bother me

    -- Your Emacs is so fat
    -- ##programming, Freenode


Powered by UNIX fortune(6)
[ Main Page ]