| 最終更新日: 2001/11/24 JST | このメモの位置付け: 記録 |
i820/i840/i845/i850/i860 対応 AGP ドライバ
状況: 完了
- 4.4-STABLE にマージ済(2001/11/19 JST)
- 5.0-CURRENT にマージ済(2001/11/09 JST)
- send-pr (kern/31559)済(2001/10/28 JST)
- send-pr (kern/31825)済(2001/11/07 JST)
履歴
- 2001/11/19 JST
- 栗山さんの御尽力により 4.4-STABLE に MFC される。
- マニュアルにもサポートデバイスとして追加してもらう。
- 2001/11/09 JST
- 栗山さんの御尽力により 5.0-CURRENT にマージされる。
- 2001/11/08 JST
- i820 に対応してみる。
- send-pr する。kern/31825。
- 2001/10/30 JST 〜 2001/11/06 JST
- いくつか動作確認される(XFree86-DRI まわり)。
- 2001/10/30 JST
- カーネルモジュールの組み込み順序について注意が必要。
- 2001/10/29 JST
- XFree86-DRI 周りが独立(graphics/drm-kmod)していたのを教えてもらう。
- drm-kmod のインストール及び XFree86 の設定を行う。
- glxgears(XFree86-4), sproingies(xscreensaver) で XFree86-DRI が
動くのを確認。
- send-pr する。kern/31559。
- linux カーネルインターフェースが必須であることを知る。
- 2001/10/28 JST
- i845 のデータシートの入手方法を教えてもらったので入手。
- i850 とそれほど違わない事を確認してパッチ作成。
- i860 も難しくないと思ったのでデータシートを入手してパッチを作成。
- パッチを見直していたら i845 対応がおかしいのを発見。
- 2001/10/27 JST
- XFree86-4 port の変化(MGA HAL が 4.1.0 をサポート)を見てやる気が出る。
- Linux 由来なのを思い出して Linux Kernel 2.4.10 を入手して解析開始。
- Linux Kernel では i840/i850 に対応していた。
- 簡単じゃーんと思って i840 パッチ(agp_intel_attach)を作る。
- とりあえず agp ドライバがフリーズしないことを確認。パッチを
FreeBSD-tech-jp@jp.freebsd.org に流す。
- /usr/X11R6/lib/kernel(私は x11/XFree86-4 を使っている) が無いのを見て, x11/XFree86-4, x11-servers/XFree86-4-Server の 2 つの ports をチェック。Broken なのを確認する。
- ATA ドライバを見てパッチの書き方(方針)を決める。
- i850 に対応。agp_intel_deattach にも対応コードを加える。
- はるか過去(FreeBSD に agp ドライバが入った頃)
- agp ドライバを使うと XFree86-DRI が使えて OpenGL ハードウェアアクセラレーションできることを知る。
- 私のマシンで agp ドライバが暴走することが分かってあきらめる。
目的
2001/10/27 JST 時点で FreeBSD には Intel の i820/i840/i845/i850/i860 チップセットに対応した agp ドライバがありませんでした。
そのため Matrox Millennium G400, ATI Radeon 等 XFree86-DRI サポートされたグラフィックスカードがあっても宝の持ち腐れでした。
そこで agp ドライバの開発(移植)およびそれを利用したソフトウェアが動かすことを目標にこのメモを残します。
インストール
4.4-STABLE なら 2001/11/20 JST 以降, 5.0-CURRENT なら 2001/11/10 以降のカーネルソースを入手します。
カーネルコンフィギュレーションファイルに agp デバイスを組み込むか, agp.ko モジュールをインストールしてください。
詳細はFreeBSD カーネルのコンフィグレーションを御覧ください。
ここでは agp.ko モジュールをインストールする(NO_MODULES=YES の時はカーネルの再構築で, MODULES_WITH_WORLD=YES の時は make world でコンパイル&インストールされる)ものとして話を進めます。
次に /usr/ports/graphics/drm-kmod に cd した後, これを make install します。これで DRM (Direct Rendering Module) がインストールされます。
最後に X サーバーのインストールを行います。
/boot/loader.conf.local に下記設定を入れます。
module_path="/;/boot;/modules;/usr/local/lib/drm"
agp_load="YES"
mga_load="YES"
linux_load="YES"
DRM は Linux Kenel インターフェースを必要とします。
事前に(このタイミングで)使えるようになっている必要があります。