「AMDGPU」の版間の差分
(同期) |
(同期) |
||
11行目: | 11行目: | ||
'''amdgpu''' は最新の AMD Radeon グラフィックカードのオープンソースグラフィックドライバーです。 |
'''amdgpu''' は最新の AMD Radeon グラフィックカードのオープンソースグラフィックドライバーです。 |
||
− | 現在のところ、''amdgpu'' がサポートしているのは [http://xorg.freedesktop.org/wiki/RadeonFeature/ Volcanic Islands] と [https://www.phoronix.com/scan.php?page=news_item&px=AMD-AMDGPU-Released Sea Islands] と [https://www.phoronix.com/scan.php?page=news_item&px=AMDGPU-SI-Experimental-Code Southern Islands] ファミリーのカードだけです |
+ | 現在のところ、''amdgpu'' がサポートしているのは [http://xorg.freedesktop.org/wiki/RadeonFeature/ Volcanic Islands] と [https://www.phoronix.com/scan.php?page=news_item&px=AMD-AMDGPU-Released Sea Islands] と [https://www.phoronix.com/scan.php?page=news_item&px=AMDGPU-SI-Experimental-Code Southern Islands] ファミリーのカードだけです。Southern Islands は実験的にサポートしています。GCN 以前の GPU をサポートする計画はありません。 |
サポートされていない AMD/ATI のビデオカードを利用している場合は [[ATI|Radeon オープンソースドライバー]]や [[AMD Catalyst|AMD のプロプライエタリドライバー]]を使ってください。 |
サポートされていない AMD/ATI のビデオカードを利用している場合は [[ATI|Radeon オープンソースドライバー]]や [[AMD Catalyst|AMD のプロプライエタリドライバー]]を使ってください。 |
||
30行目: | 30行目: | ||
AMD はオープンソースの AMDGPU カーネルドライバーの上で動作するバイナリのユーザーランドドライバー ''AMDGPU PRO'' を提供しています。オープンソースとバイナリのハイブリッドということで、ユーザー空間のバイナリ部分は変えずに、(カーネルや Xorg のアップデート時など) 必要なときにカーネル内のコンポーネントを Arch Linux のメンテナが再コンパイルすることが可能となっています。これにより、新しいバージョンのカーネルや Xorg がリリースされたときに AMD が提供しているドライバーが使えなくなってしまうという問題にもう悩まされなくなります (昔の [[AMD Catalyst]] ドライバーではこの問題がどうしてもつきまとっていました)。ハイブリッドシステムの詳しい解説は、[http://www.phoronix.com/scan.php?page=news_item&px=MTgwODA この記事] を見てください。 |
AMD はオープンソースの AMDGPU カーネルドライバーの上で動作するバイナリのユーザーランドドライバー ''AMDGPU PRO'' を提供しています。オープンソースとバイナリのハイブリッドということで、ユーザー空間のバイナリ部分は変えずに、(カーネルや Xorg のアップデート時など) 必要なときにカーネル内のコンポーネントを Arch Linux のメンテナが再コンパイルすることが可能となっています。これにより、新しいバージョンのカーネルや Xorg がリリースされたときに AMD が提供しているドライバーが使えなくなってしまうという問題にもう悩まされなくなります (昔の [[AMD Catalyst]] ドライバーではこの問題がどうしてもつきまとっていました)。ハイブリッドシステムの詳しい解説は、[http://www.phoronix.com/scan.php?page=news_item&px=MTgwODA この記事] を見てください。 |
||
− | AMDGPU PRO ドライバーは OpenGL, OpenCL, Vulkan, VDPAU をサポートしており、オープンソースドライバーよりも高い性能を発揮します。 |
+ | AMDGPU PRO ドライバーは OpenGL, [[OpenCL]], [[Vulkan]], [[VDPAU]] をサポートしており、オープンソースドライバーよりも高い性能を発揮します。 |
− | 詳しくは [http://support.amd.com/en-us/kb-articles/Pages/ |
+ | 詳しくは [http://support.amd.com/en-us/kb-articles/Pages/AMDGPU-PRO-Driver-for-Linux-Release-Notes.aspx 最初のリリースノート] と [https://www.phoronix.com/forums/forum/linux-graphics-x-org-drivers/amd-linux/855699-amd-representative-says-their-vulkan-linux-driver-will-be-here-soon/page6 Phoronix フォーラムでのアナウンス] を参照してください。 |
amdgpu-pro のパッケージは [[AUR]] に存在します ({{AUR|amdgpu-pro}})。問題の報告やプルリクエストは https://github.com/Corngood/archlinux-amdgpu を見てください。 |
amdgpu-pro のパッケージは [[AUR]] に存在します ({{AUR|amdgpu-pro}})。問題の報告やプルリクエストは https://github.com/Corngood/archlinux-amdgpu を見てください。 |
||
+ | オープンソースの AMDGPU ドライバーとプロプライエタリな OpenCL コンポーネントを使いたい場合は {{AUR|opencl-amd}} パッケージをインストールしてください。 |
||
− | == 設定 == |
||
− | |||
− | Xorg は自動的にドライバーをロードしてモニターの EDID を認識して最大解像度を設定します。必要な設定はドライバーのチューニングだけです。 |
||
− | |||
− | 手動で設定したい場合、{{ic|/etc/X11/xorg.conf.d/20-amdgpu.conf}} を作成して、以下を記述してください: |
||
− | |||
− | Section "Device" |
||
− | Identifier "AMD" |
||
− | Driver "amdgpu" |
||
− | EndSection |
||
− | |||
− | 上記のセクションを使って、ドライバーの設定を変更したり機能を有効にすることができます。 |
||
== ロード == |
== ロード == |
||
74行目: | 63行目: | ||
変更は再起動後に適用されます。 |
変更は再起動後に適用されます。 |
||
+ | |||
+ | == Xorg の設定 == |
||
+ | |||
+ | Xorg は自動的にドライバーをロードしてモニターの EDID を認識して最大解像度を設定します。必要な設定はドライバーのチューニングだけです。 |
||
+ | |||
+ | 手動で設定したい場合、{{ic|/etc/X11/xorg.conf.d/20-amdgpu.conf}} を作成して、以下を記述してください: |
||
+ | |||
+ | Section "Device" |
||
+ | Identifier "AMD" |
||
+ | Driver "amdgpu" |
||
+ | EndSection |
||
+ | |||
+ | 上記のセクションを使って、ドライバーの設定を変更したり機能を有効にすることができます。 |
||
== パフォーマンスチューニング == |
== パフォーマンスチューニング == |
||
80行目: | 82行目: | ||
== Sea Islands や Southern Islands カードで amdgpu を使用する == |
== Sea Islands や Southern Islands カードで amdgpu を使用する == |
||
+ | Arch Linux の {{pkg|linux}} パッケージは (バージョン 4.9 から) デフォルトで Southern Islands と Sea Island のサポートが有効になっています ({{ic|1=CONFIG_DRM_AMDGPU_CIK=Y}} と {{ic|1=CONFIG_DRM_AMDGPU_SI=Y}} [https://git.archlinux.org/svntogit/packages.git/tree/trunk/config.x86_64?h=packages/linux#n4987])。 |
||
− | {{ic|amdgpu}} は Sea Islands (CI) や Southern Islands (SI) のカードを実験的にサポートしていますが、デフォルトでは無効になっています。AMD はユーザー空間の [https://www.khronos.org/vulkan/ Vulkan] ドライバーは新しい {{ic|amdgpu}} スタックしかサポートしないと公言しているため [https://phoronix.com/scan.php?page=news_item&px=AMDGPU-Vulkan-Driver-Only]、Vulkan を使うには radeon から {{ic|amdgpu}} に切り替える必要があります。また、[http://www.x.org/wiki/Events/XDC2015/Program/deucher_zhou_amdgpu.pdf XDC のプレゼンテーション] で触れられている新しい OpenCL ドライバーを使いたい場合も {{ic|amdgpu}} が必須です。{{ic|amdgpu}} で Sea Islands や Southern Islands のサポートを有効にして使用したい場合、カーネルを再コンパイルしなくてはなりません。カスタムカーネルを作成する一番簡単な方法はおそらく ABS でしょう。[[カーネル/コンパイル/Arch Build System]] を見てください。 |
||
+ | これらかのカードを使用する場合、デフォルトのドライバーでは旧式の radeon ドライバーが使われます。amdgpu ドライバーを使いたい場合は [[#radeon ドライバーの無効化|radeon ドライバーを無効化]]してください。 |
||
− | Sea Islands (CIK) の場合、"Enable amdgpu support for CIK parts" を "yes" に設定してから、カーネルをコンパイル・インストールしてください: |
||
+ | === radeon ドライバーの無効化 === |
||
− | CONFIG_DRM_AMDGPU_CIK=Y |
||
+ | カーネルをビルドするときにカードの AMDGPU を手動で有効にしても CIK と SI カードはデフォルトでは [[radeon]] ドライバーを使用します。 |
||
+ | {{ic|amdgpu}} モジュールを使うには {{ic|radeon}} モジュールがロードされないように[[ブラックリスト]]に追加してください: |
||
− | Southern Islands (SI) の場合、"Enable amdgpu support for SI parts" を "yes" に設定してから、カーネルをコンパイル・インストールしてください: |
||
+ | {{hc|/etc/modprobe.d/radeon.conf| |
||
− | CONFIG_DRM_AMDGPU_SI=Y |
||
+ | blacklist radeon}} |
||
+ | == トラブルシューティング == |
||
− | また、[[カーネルパラメータ]]で {{ic|<nowiki>amdgpu.exp_hw_support=1</nowiki>}} [https://www.phoronix.com/scan.php?page=news_item&px=AMDGPU-Iceland-Experimental] を使用するか[[カーネルモジュール#/etc/modprobe.d/ 内のファイルを使う|カーネルモジュール]]オプションを設定する必要があります。 |
||
+ | === HDMI/DP の音声が出力されない === |
||
− | == radeon ドライバーの無効化 == |
||
+ | オープンソースの AMDGPU ドライバーは [https://cgit.freedesktop.org/~agd5f/linux/log/?h=drm-next-4.7-wip-dal 開発途上] の DAL のコードに依存しています。HDMI や DisplayPort から音声を出力するには現在のところ AMDGPU-PRO ドライバーをインストールする他ありません。 |
||
− | {{ic|radeon}} がロードされないように、Kconfig でモジュールを無効化するか {{ic|radeon}} モジュールを[[カーネルモジュール#ブラックリスト|ブラックリスト]]に入れてください: |
||
− | {{hc|/etc/modprobe.d/amdgpu.conf| |
||
− | blacklist radeon}} |
||
− | |||
− | == トラブルシューティング == |
||
=== Xorg やアプリケーションが起動しない === |
=== Xorg やアプリケーションが起動しない === |
2017年2月15日 (水) 23:12時点における版
関連記事
amdgpu は最新の AMD Radeon グラフィックカードのオープンソースグラフィックドライバーです。
現在のところ、amdgpu がサポートしているのは Volcanic Islands と Sea Islands と Southern Islands ファミリーのカードだけです。Southern Islands は実験的にサポートしています。GCN 以前の GPU をサポートする計画はありません。
サポートされていない AMD/ATI のビデオカードを利用している場合は Radeon オープンソースドライバーや AMD のプロプライエタリドライバーを使ってください。
目次
インストール
xf86-video-amdgpu パッケージをインストールしてください。2D アクセラレーションのための DDX ドライバーが含まれており、依存パッケージとして mesa もインストールされます。mesa には 3D アクセラレーションのための DRI ドライバーが含まれています。
OpenGL のサポートを有効にするには、mesa-libgl もインストールする必要があります。x86_64 環境で32ビットのサポートが必要な場合、multilib リポジトリから lib32-mesa-libgl もインストールしてください。
ビデオデコードのハードウェア支援機能は mesa-vdpau と lib32-mesa-vdpau パッケージをインストールすることで使えます。
AMDGPU PRO
AMD はオープンソースの AMDGPU カーネルドライバーの上で動作するバイナリのユーザーランドドライバー AMDGPU PRO を提供しています。オープンソースとバイナリのハイブリッドということで、ユーザー空間のバイナリ部分は変えずに、(カーネルや Xorg のアップデート時など) 必要なときにカーネル内のコンポーネントを Arch Linux のメンテナが再コンパイルすることが可能となっています。これにより、新しいバージョンのカーネルや Xorg がリリースされたときに AMD が提供しているドライバーが使えなくなってしまうという問題にもう悩まされなくなります (昔の AMD Catalyst ドライバーではこの問題がどうしてもつきまとっていました)。ハイブリッドシステムの詳しい解説は、この記事 を見てください。
AMDGPU PRO ドライバーは OpenGL, OpenCL, Vulkan, VDPAU をサポートしており、オープンソースドライバーよりも高い性能を発揮します。
詳しくは 最初のリリースノート と Phoronix フォーラムでのアナウンス を参照してください。
amdgpu-pro のパッケージは AUR に存在します (amdgpu-proAUR)。問題の報告やプルリクエストは https://github.com/Corngood/archlinux-amdgpu を見てください。
オープンソースの AMDGPU ドライバーとプロプライエタリな OpenCL コンポーネントを使いたい場合は opencl-amdAUR パッケージをインストールしてください。
ロード
amdgpu
カーネルモジュールはシステムの起動時に自動的にロードされます。
ロードされない場合:
- 最新の linux-firmware パッケージがインストールされていることを確認してください。AMDGPU ドライバーは各モデルの最新ファームウェアがないと起動できません。
- カーネルパラメータに
nomodeset
やvga=
を指定していないことを確認してください。amdgpu
は KMS を必要とします。 - カーネルモジュールのブラックリストで
amdgpu
が無効になっていないか確認してください。
Early KMS の有効化
Kernel Mode Setting (KMS) は radeon ドライバーによってサポートされており、必須であり、デフォルトで有効になっています。
普通 KMS は initramfs の後に初期化されます。ただし、initramfs の段階で KMS を有効化することも可能です。/etc/mkinitcpio.conf
の MODULES
行に amdgpu
モジュールを追加してください:
MODULES="... amdgpu ..."
そして、initramfs を再生成してください:
# mkinitcpio -p linux
変更は再起動後に適用されます。
Xorg の設定
Xorg は自動的にドライバーをロードしてモニターの EDID を認識して最大解像度を設定します。必要な設定はドライバーのチューニングだけです。
手動で設定したい場合、/etc/X11/xorg.conf.d/20-amdgpu.conf
を作成して、以下を記述してください:
Section "Device" Identifier "AMD" Driver "amdgpu" EndSection
上記のセクションを使って、ドライバーの設定を変更したり機能を有効にすることができます。
パフォーマンスチューニング
ビデオアクセラレーションの有効化
VA-API や VDPAU をインストールすることでハードウェアアクセラレーションによる動画のエンコード・デコードを行うことができます。
Sea Islands や Southern Islands カードで amdgpu を使用する
Arch Linux の linux パッケージは (バージョン 4.9 から) デフォルトで Southern Islands と Sea Island のサポートが有効になっています (CONFIG_DRM_AMDGPU_CIK=Y
と CONFIG_DRM_AMDGPU_SI=Y
[1])。
これらかのカードを使用する場合、デフォルトのドライバーでは旧式の radeon ドライバーが使われます。amdgpu ドライバーを使いたい場合は radeon ドライバーを無効化してください。
radeon ドライバーの無効化
カーネルをビルドするときにカードの AMDGPU を手動で有効にしても CIK と SI カードはデフォルトでは radeon ドライバーを使用します。
amdgpu
モジュールを使うには radeon
モジュールがロードされないようにブラックリストに追加してください:
/etc/modprobe.d/radeon.conf
blacklist radeon
トラブルシューティング
HDMI/DP の音声が出力されない
オープンソースの AMDGPU ドライバーは 開発途上 の DAL のコードに依存しています。HDMI や DisplayPort から音声を出力するには現在のところ AMDGPU-PRO ドライバーをインストールする他ありません。
Xorg やアプリケーションが起動しない
Xorg の色深度を 16 や 32 に設定すると以下のような問題が発生します:
(EE) AMDGPU(0): [DRI2] DRI2SwapBuffers: drawable has no back or front?" error after opening glxgears
で OpenGL アプリがクラッシュする。(EE) AMDGPU(0): Given depth (32) is not supported by amdgpu driver
エラーで Xorg が起動しない。
(/etc/X11/xorg.conf.d/10-screen.conf
ファイルの) "screen" セクションに以下を追加して標準的な色深度である 24 を使うようにしてください:
Section "Screen" DefaultDepth 24 SubSection "Display" Depth 24 EndSubSection EndSection