Xorg/Hardware 3D acceleration guide/ja

この文書はArticle description::GentooのXorgでDRMを使用して3Dアクセラレーションを動作させるためのガイドです.

ハードウェア3Dアクセラレーションとは何ですか、またどうしてそれが必要なのですか？
ハードウェア3Dアクセラレーションにより、3Dレンダリングは、3D画像を描画する貴重なCPUリソースを使用する代わりに、ビデオカードのグラフィックプロセッサを使用します. この3Dアクセラレーションがなければ、CPUはMesaソフトウェアレンダリングライブラリを使用してすべてを描画する必要があり、かなりの処理能力を消費するため、「ソフトウェアアクセラレーション」ではなく「ハードウェアアクセラレーション」とも呼ばれます.

Xorgは、大抵は2Dハードウェアアクセラレーションに対応していますが、しばしばハードウェア3Dアクセラレーションを欠いています. 3次元のハードウェアアクセラレーションは、ゲームや3D CAD、そしてモデリングのような、3Dのオブジェクトのレンダリングが必要になる状況において役に立ちます.

ハードウェア3Dアクセラレーションを動作させる
多くの場合、バイナリとオープンソースの両方のドライバーが存在します. 我々はLinuxを使用しており、オープンソースはその基本原理の1つであるため、オープンソースドライバーが望ましいです. 場合によっては、特にグラフィックカードが新しく、その機能をサポートするオープンソースドライバーがまだ作成されていない場合は、バイナリドライバーが唯一のオプションです. バイナリドライバーには、NVIDIA カード用のと、古いAMD/ATIカードの場合は（以前はでした）、新しいAMDカードの場合、が含まれています.

DRIとは何ですか？
ダイレクト・レンダリング・インフラストラクチャはDRIとして知られる、グラフィックハードウェアに安全、効率的に直接アクセスすることが出来るフレームワークです. それはXサーバ、いくつかのクライアントライブラリ、カーネルへの変更を含みます. DRIの一番主要な利用法は高速なOpenGLの実装の作成です.

DRMとは何ですか？通常のXorgとどのように関連しますか？
DRM (ダイレクト・レンダリング・マネージャ)は、ダイレクトレンダリングに必要なカーネルモジュールを追加することにより、グラフィックカードのための3Dアクセラレーションを追加するXorgの付加機能です.

目的
このガイドはXorgのみでダイレクトレンダリングが動作しない人々のためのものです. DRMは以下のドライバで動作します.


 * 3dfx
 * amdgpu
 * amdgpu-pro (closed source)
 * fglrx (closed source; deprecated)
 * intel
 * matrox
 * nouveau
 * nvidia-drivers (closed source)
 * rage128
 * radeon
 * radeonhd (deprecated)
 * mach64
 * sis300
 * via

より詳細な情報とドキュメントについてはDRI ホームページを見てください.

Xorgのインストール
Xorg を動作させるためには Xorg 設定ガイドを見てください.

カーネルの設定
対象のハードウェアの詳細を調査してください.

ハードウェアが異なることにより上記の出力は実際の出力と一致するとは限りませんが、何が返ってきたとしても、どのカーネルオプションを考慮すべきかの情報を与えてくれるでしょう.

カーネルオプションには必要なものもあれば、逆に問題を起こすものもあるでしょう. どのハードウェアにどのカーネルオプションが必要か、ハードウェアごとの資料はこの、wiki 内を含む様々な箇所にあります.

しかしながら、上のコマンドが何も返さないことも稀にですが考えられます. その場合は の完全な出力内容が、状況を再確認するために、そして助けを求めるためのいい情報源です.

上の例では、チップセットは AGP チップセットですが、カーネルによって対応されていません. この場合、カーネルのパラメータとして  を渡すと何らかの成功が得られるかもしれません. これはAGPへの対応にIntelの一般的なルーチンを使用します. このパラメータを追加するには、ブートローダの設定ファイルを編集してください. 繰り返しになりますが、必要なカーネルコンフィグオプションと利用可能なブートローダパラメータは、ハードウェアの詳細によって異なるでしょう.

カーネルオプションの変更に進む前に、必要であれば、 が意図したカーネルにリンクしているか確認してください:

シンボリックリンクを別のターゲットに更新するためには、これらのコマンドを使用してください. 2 番目のコマンドは、1 番目の出力に表示された選択肢のうちから引数を受け取ります:

シンボリックリンクが確認できたら、カーネルオプションを修正するには:

全てではないとしても、ほとんどのカーネルはこれらのオプションを持っているはずです. いずれにせよ、 が付けられたオプションはモジュールとしてコンパイルされ、必要に応じてロードされるので、不要だったとしても何かを壊すことはほとんどないでしょう.

以下の例は、通常ののカーネルを使用して設定しました.

カーネルのコンパイルとインストール
か 　かの設定してください.

を使用している場合は、次を実行してください:

を使用している場合は、次を実行してください:

videoグループへ適切なユーザを追加する
次に、適切なユーザをvideoグループに追加します：

Xorgの設定
幸運にも、単に適切なユーザを グループに追加するだけで、ダイレクトレンダリングを有効にするには十分です. しかしながら、Xorgはディレクトリを通していくつか追加の設定が必要になるかもしれません. このディレクトリ内に作られる新しい設定ファイルは、最後がで終わるのなら、名前は英数字を使ったどのような名前でも構いません. お好きなテキストエディタを開き、中にこれらを含むファイルを作成してください：

を適切なドライバ名で書き換えてください. は、識別子として一意で分かりやすい文字列で置き換えてください. 通常はこれは、このセクションの最初で明らかにしたグラフィックスデバイスの名前になるでしょうが、他の一意な文字列でもかまいません.

自動的にモジュールを読み込むように変更する
システムが起動したときにモジュールが確実に自動的に読み込まれるよう、にグラフィックカードが使用しているモジュールの名前を追加する必要があるでしょう.

新しいカーネルでリブート
コンピュータを新しいカーネルで再起動して、通常のユーザとしてログインしてください. ダイレクトレンダリングがどんなにいいかを確認するときです. や はパッケージの一部ですので、これらのコマンドを実行する前に必ずインストールしてください.

たとえモジュールとしてコンパイルしたとしても、ドライバやagpgart用にモジュールを読み込む必要はありません. これらは自動的に読み込まれます.

もし出力が"No"なら、3Dアクセラレーションが有効になっていません.

デフォルトの大きさでフレーム毎秒（frames per second, FPS）を試してください. DRMを設定する前よりもかなり大きな数値になっているはずです. CPUがなるべくアイドル状態の時に行なってください.

ダイレクトレンダリングを最大限に活用する
もしパフォーマンスや他の理由でもっと多くの機能を設定したい場合、DRIのウェブサイトにある機能表、あるいはSourceforgeにある機能一覧を確認してください.

レンダリングに関する問題
Xサーバを開始する前に、 （ をあなたのドライバ名に置き換えてください）を実行してみてください. また、agpgartをモジュールとしてではなく、カーネルの一部分としてビルドしてみてください.

startxを実行中の"Failed to load kernel module agpgart"
`startx`を実行後にerror: "[drm] failed to load kernel module agpgart"が出るのは、agpgartがモジュールとしてではなく、カーネルの一部分としてビルドされているためです. 問題が発生しない限り無視してください.

Radeon GPU上でのテレビ出力
元々GATOSプロジェクトによって開発されたドライバはXorgのコードベースに統合されました. テレビ出力に関して特別なことをする必要はありません. で上手く行きます.

新しくリリースされたGPUとの互換性
バイナリドライバを試してください. AMDカードに関しては、 を使用してください. もしバイナリドライバがこれをサポートしていない場合、fbdevを使用してください. 遅いですが、それでも動作します.

PCIカードが適切に動作しない
に設定ファイルを作成し、で終わる任意の名前にしてください. 以下の内容を追加してください：

外部の情報

 * Direct rendering (DRI) using X11-DRM HOWTO（Gentooのフォーラム）
 * Radeon 7000-9700 DRI CVS Install Guide（Gentooのフォーラム）
 * https://dri.freedesktop.org/