「AMDGPU」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
(同期)
2行目: 2行目:
 
[[Category:X サーバー]]
 
[[Category:X サーバー]]
 
[[en:AMDGPU]]
 
[[en:AMDGPU]]
  +
[[ru:AMDGPU]]
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|AMD Catalyst}}
 
{{Related|AMD Catalyst}}
10行目: 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] ファミリーのカードだけです (Southern Islands は実験的かつ Linux 4.8 以降のみ対応)。GCN 以前の GPU をサポートする計画はありません。
+
現在のところ、''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 はバージョン [https://lists.x.org/archives/xorg-announce/2016-November/002741.html 1.2.0] かつ Linux 4.9 対応)。GCN 以前の GPU をサポートする計画はありません。
   
 
サポートされていない AMD/ATI のビデオカードを利用している場合は [[ATI|Radeon オープンソースドライバー]]や [[AMD Catalyst|AMD のプロプライエタリドライバー]]を使ってください。
 
サポートされていない AMD/ATI のビデオカードを利用している場合は [[ATI|Radeon オープンソースドライバー]]や [[AMD Catalyst|AMD のプロプライエタリドライバー]]を使ってください。
22行目: 23行目:
   
 
[[#ビデオアクセラレーションの有効化|ビデオデコードのハードウェア支援]]機能は {{Pkg|mesa-vdpau}} と {{Pkg|lib32-mesa-vdpau}} パッケージをインストールすることで使えます。
 
[[#ビデオアクセラレーションの有効化|ビデオデコードのハードウェア支援]]機能は {{Pkg|mesa-vdpau}} と {{Pkg|lib32-mesa-vdpau}} パッケージをインストールすることで使えます。
  +
  +
{{Note|{{Pkg|xf86-video-amdgpu}} パッケージは Xorg のアクセラレーションにのみ使用され絶対に必要というわけではありません。}}
   
 
=== AMDGPU PRO ===
 
=== AMDGPU PRO ===
{{Warning|AMDGPU PROまだ実験的な段階であり、公式の Arch Linux パッケジはまだ存在しません。}}
+
{{Warning|Arch Linux は公式にはサポトされていません。}}
 
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/AMDGPU-PRO-Beta-Driver-for-Vulkan-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 フォーラムでのアナウンス] を参照してください。
+
詳しくは [http://support.amd.com/en-us/kb-articles/Pages/AMD-Radeon-GPU-PRO-Linux-Beta-Driver%E2%80%93Release-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/LEW21/archlinux-amdgpu を見てください。
+
amdgpu-pro のパッケージは [[AUR]] に存在します ({{AUR|amdgpu-pro}})。問題の報告やプルリクエストは https://github.com/Corngood/archlinux-amdgpu を見てください。
   
 
== 設定 ==
 
== 設定 ==
76行目: 79行目:
 
[[VA-API]] や [[VDPAU]] をインストールすることでハードウェアアクセラレーションによる動画のエンコード・デコードを行うことができます。
 
[[VA-API]] や [[VDPAU]] をインストールすることでハードウェアアクセラレーションによる動画のエンコード・デコードを行うことができます。
   
== Sea Islands カードで amdgpu を使用する ==
+
== Sea Islands や Southern Islands カードで amdgpu を使用する ==
{{ic|amdgpu}} は Sea Islands (CI) のカードを実験的にサポートしていますが、デフォルトでは無効になっています。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 のサポートを有効にして使用したい場合、カーネルを再コンパイルしなくてはなりません。カスタムカーネルを作成する一番簡単な方法はおそらく ABS でしょう。[[カーネル/コンパイル/Arch Build System]] を見てください。
+
{{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]] を見てください。
   
"Enable amdgpu support for CIK parts" を "yes" に設定してから、カーネルをコンパイル・インストールしてください:
+
Sea Islands (CIK) の場合、"Enable amdgpu support for CIK parts" を "yes" に設定してから、カーネルをコンパイル・インストールしてください:
   
 
CONFIG_DRM_AMDGPU_CIK=Y
 
CONFIG_DRM_AMDGPU_CIK=Y
  +
  +
Southern Islands (SI) の場合、"Enable amdgpu support for SI parts" を "yes" に設定してから、カーネルをコンパイル・インストールしてください:
  +
CONFIG_DRM_AMDGPU_SI=Y
   
 
また、[[カーネルパラメータ]]で {{ic|<nowiki>amdgpu.exp_hw_support=1</nowiki>}} [https://www.phoronix.com/scan.php?page=news_item&px=AMDGPU-Iceland-Experimental] を使用するか[[カーネルモジュール#/etc/modprobe.d/ 内のファイルを使う|カーネルモジュール]]オプションを設定する必要があります。
 
また、[[カーネルパラメータ]]で {{ic|<nowiki>amdgpu.exp_hw_support=1</nowiki>}} [https://www.phoronix.com/scan.php?page=news_item&px=AMDGPU-Iceland-Experimental] を使用するか[[カーネルモジュール#/etc/modprobe.d/ 内のファイルを使う|カーネルモジュール]]オプションを設定する必要があります。

2016年12月10日 (土) 02:25時点における版

関連記事

amdgpu は最新の AMD Radeon グラフィックカードのオープンソースグラフィックドライバーです。

現在のところ、amdgpu がサポートしているのは Volcanic IslandsSea IslandsSouthern Islands ファミリーのカードだけです (Southern Islands はバージョン 1.2.0 かつ Linux 4.9 で対応)。GCN 以前の GPU をサポートする計画はありません。

サポートされていない AMD/ATI のビデオカードを利用している場合は Radeon オープンソースドライバーAMD のプロプライエタリドライバーを使ってください。

インストール

ノート: プロプライエタリの Catalyst ドライバーから移行する場合、先に AMD Catalyst#アンインストール を読んでください。

xf86-video-amdgpu パッケージをインストールしてください。2D アクセラレーションのための DDX ドライバーが含まれており、依存パッケージとして mesa もインストールされます。mesa には 3D アクセラレーションのための DRI ドライバーが含まれています。

OpenGL のサポートを有効にするには、mesa-libgl もインストールする必要があります。x86_64 環境で32ビットのサポートが必要な場合、multilib リポジトリから lib32-mesa-libgl もインストールしてください。

ビデオデコードのハードウェア支援機能は mesa-vdpaulib32-mesa-vdpau パッケージをインストールすることで使えます。

ノート: xf86-video-amdgpu パッケージは Xorg のアクセラレーションにのみ使用され絶対に必要というわけではありません。

AMDGPU PRO

警告: Arch Linux は公式にはサポートされていません。

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 を見てください。

設定

Xorg は自動的にドライバーをロードしてモニターの EDID を認識して最大解像度を設定します。必要な設定はドライバーのチューニングだけです。

手動で設定したい場合、/etc/X11/xorg.conf.d/20-amdgpu.conf を作成して、以下を記述してください:

Section "Device"
    Identifier "AMD"
    Driver "amdgpu"
EndSection

上記のセクションを使って、ドライバーの設定を変更したり機能を有効にすることができます。

ロード

amdgpu カーネルモジュールはシステムの起動時に自動的にロードされます。

ロードされない場合:

  • 最新の linux-firmware パッケージがインストールされていることを確認してください。AMDGPU ドライバーは各モデルの最新ファームウェアがないと起動できません。
  • カーネルパラメータnomodesetvga= を指定していないことを確認してください。amdgpuKMS を必要とします。
  • カーネルモジュールのブラックリストamdgpu が無効になっていないか確認してください。

Early KMS の有効化

ヒント: 解像度に問題が発生する場合、Kernel Mode Setting#モードの強制と EDID を読んでください。

Kernel Mode Setting (KMS) は radeon ドライバーによってサポートされており、必須であり、デフォルトで有効になっています。

普通 KMS は initramfs の後に初期化されます。ただし、initramfs の段階で KMS を有効化することも可能です。/etc/mkinitcpio.confMODULES 行に amdgpu モジュールを追加してください:

MODULES="... amdgpu ..."

そして、initramfs を再生成してください:

# mkinitcpio -p linux

変更は再起動後に適用されます。

パフォーマンスチューニング

ビデオアクセラレーションの有効化

VA-APIVDPAU をインストールすることでハードウェアアクセラレーションによる動画のエンコード・デコードを行うことができます。

Sea Islands や Southern Islands カードで amdgpu を使用する

amdgpu は Sea Islands (CI) や Southern Islands (SI) のカードを実験的にサポートしていますが、デフォルトでは無効になっています。AMD はユーザー空間の Vulkan ドライバーは新しい amdgpu スタックしかサポートしないと公言しているため [1]、Vulkan を使うには radeon から amdgpu に切り替える必要があります。また、XDC のプレゼンテーション で触れられている新しい OpenCL ドライバーを使いたい場合も amdgpu が必須です。amdgpu で Sea Islands や Southern Islands のサポートを有効にして使用したい場合、カーネルを再コンパイルしなくてはなりません。カスタムカーネルを作成する一番簡単な方法はおそらく ABS でしょう。カーネル/コンパイル/Arch Build System を見てください。

Sea Islands (CIK) の場合、"Enable amdgpu support for CIK parts" を "yes" に設定してから、カーネルをコンパイル・インストールしてください:

CONFIG_DRM_AMDGPU_CIK=Y

Southern Islands (SI) の場合、"Enable amdgpu support for SI parts" を "yes" に設定してから、カーネルをコンパイル・インストールしてください:

CONFIG_DRM_AMDGPU_SI=Y

また、カーネルパラメータamdgpu.exp_hw_support=1 [2] を使用するかカーネルモジュールオプションを設定する必要があります。

radeon ドライバーの無効化

radeon がロードされないように、Kconfig でモジュールを無効化するか radeon モジュールをブラックリストに入れてください:

/etc/modprobe.d/amdgpu.conf
blacklist radeon

トラブルシューティング

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