「AMDGPU」の版間の差分
(同期) |
(同期) |
||
12行目: | 12行目: | ||
'''amdgpu''' は最新の AMD Radeon グラフィックカードのオープンソースグラフィックドライバーです。 |
'''amdgpu''' は最新の AMD Radeon グラフィックカードのオープンソースグラフィックドライバーです。 |
||
− | 現在のところ、''amdgpu'' がサポートしているのは [https://www.x.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 をサポートする計画はありません。 |
+ | 現在のところ、''amdgpu'' がサポートしているのは [https://www.x.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 のプロプライエタリドライバー]]を使ってください。 |
||
== インストール == |
== インストール == |
||
− | {{Note| |
||
− | * プロプライエタリの Catalyst ドライバーから移行する場合、先に [[AMD Catalyst#アンインストール]] を読んでください。 |
||
− | * {{Pkg|xf86-video-amdgpu}} パッケージは [[Xorg]] のアクセラレーションにしか使われないため、必ずしも必要というわけではありません。}} |
||
+ | {{Note|プロプライエタリの Catalyst ドライバーから移行する場合、先に [[AMD Catalyst#アンインストール]] を読んでください。}} |
||
− | {{Pkg|xf86-video-amdgpu}} パッケージを[[インストール]]してください。2D アクセラレーションのための DDX ドライバーが含まれており、依存パッケージとして {{Pkg|mesa}} もインストールされます。mesa には 3D アクセラレーションのための DRI ドライバーが含まれています。 |
||
+ | {{Pkg|mesa}} パッケージを[[インストール]]してください。3D アクセラレーションのための DRI ドライバーが含まれています。 |
||
− | x86_64 環境で32ビットのサポートが必要な場合、[[multilib]] リポジトリから {{Pkg|lib32-mesa}} もインストールしてください。 |
||
− | + | * x86_64 環境で32ビットのサポートが必要な場合、[[multilib]] リポジトリから {{Pkg|lib32-mesa}} パッケージもインストールしてください。 |
|
+ | * {{Pkg|xf86-video-amdgpu}} パッケージには [[Xorg]] の 2D アクセラレーションのための DDX ドライバーが含まれています。 |
||
+ | * [[Vulkan]] のサポートが必要な場合は {{Pkg|vulkan-radeon}} パッケージをインストールしてください。 |
||
+ | |||
+ | [[#ビデオアクセラレーションの有効化|ビデオデコードのハードウェア支援]]機能は VA-API を使用する場合 {{Pkg|libva-mesa-driver}} と {{Pkg|lib32-libva-mesa-driver}} パッケージ、または {{Pkg|libva-vdpau-driver}} をインストールすることで使えます。VDPAU を使用する場合は {{Pkg|mesa-vdpau}} と {{Pkg|lib32-mesa-vdpau}} パッケージをインストールすることで使えます。 |
||
=== Southern Islands (SI) と Sea Islands (CIK) のサポートの有効化 === |
=== Southern Islands (SI) と Sea Islands (CIK) のサポートの有効化 === |
||
36行目: | 37行目: | ||
blacklist radeon |
blacklist radeon |
||
}} |
}} |
||
+ | |||
+ | また、カーネル 4.13 から {{ic|1=amdgpu.si_support=1 radeon.si_support=0}} または {{ic|1=amdgpu.cik_support=1 radeon.cik_support=0}} [[カーネルパラメータ]]の追加が必要になっています [http://www.phoronix.com/scan.php?page=article&item=linux-413-gcn101&num=1]。カーネルパラメータを追加しないと、AMDGPU は起動せず代わりに radeon が使われたり、起動時にディスプレイがフリーズします。 |
||
+ | |||
+ | === Vega 以前のカードで AMD DC を有効にする === |
||
+ | {{Note|AMD DC はカーネル 4.15 以上で使用できます。}} |
||
+ | |||
+ | AMD DC (ディスプレイコード) はアトミックなモードセッティングや HDMI/DP オーディオをサポートする新しいディスプレイスタックです。GCN5/Vega 以降のカードではデフォルトで有効になります。 |
||
+ | |||
+ | 旧式のカード (GCN2/CIK, GCN3/VI, GCN4/Polaris; GCN1/SI は未対応) で AMD DC を有効にするには {{ic|1=amdgpu.dc=1}} [[カーネルパラメータ]]を追加してください。詳しくは [https://www.phoronix.com/scan.php?page=news_item&px=AMDGPU-DC-Accepted こちらの記事] を参照。 |
||
=== AMDGPU PRO === |
=== AMDGPU PRO === |
||
41行目: | 51行目: | ||
{{Note| |
{{Note| |
||
*プロプライエタリな OpenCL コンポーネントだけを使いたい場合は {{AUR|opencl-amd}} パッケージをインストールしてください。 |
*プロプライエタリな OpenCL コンポーネントだけを使いたい場合は {{AUR|opencl-amd}} パッケージをインストールしてください。 |
||
− | *AMDGPU PRO を使うには {{pkg|linux}} ( |
+ | *AMDGPU PRO 17.10 を使うには {{pkg|linux}} (4.9) と [[Xorg]] (1.18) パッケージの[[ダウングレード]]が必要になります。 |
}} |
}} |
||
94行目: | 104行目: | ||
以下のオプションは {{ic|/etc/X11/xorg.conf.d/''20-amdgpu.conf''}} で設定します。 |
以下のオプションは {{ic|/etc/X11/xorg.conf.d/''20-amdgpu.conf''}} で設定します。 |
||
− | ドライバーオプションの設定について詳しくは {{ |
+ | ドライバーオプションの設定について詳しくは {{man|4|amdgpu}} を読んでください。 |
'''DRI''' は有効にする DRI のレベルを設定します。DRI2 の場合は ''2''、DRI3 の場合は ''3'' と設定します。Xorg バージョン 1.18.3 以上ではデフォルト値は ''3'' となっており、古いバージョンでは DRI2 が使われます: |
'''DRI''' は有効にする DRI のレベルを設定します。DRI2 の場合は ''2''、DRI3 の場合は ''3'' と設定します。Xorg バージョン 1.18.3 以上ではデフォルト値は ''3'' となっており、古いバージョンでは DRI2 が使われます: |
||
108行目: | 118行目: | ||
=== HDMI/DP の音声が出力されない === |
=== HDMI/DP の音声が出力されない === |
||
− | オープンソースの AMDGPU ドライバーは [https:// |
+ | オープンソースの AMDGPU ドライバーはカーネル 4.15 でマージされた [[#Vega 以前のカードで AMD DC を有効にする|DC]] (旧 ''DAL'') のコードを使用します [https://www.phoronix.com/scan.php?page=news_item&px=AMDGPU-DC-Accepted]。カーネル 4.15 が[[公式リポジトリ]]から使用できるようになるまでは、HDMI や DisplayPort の音声サポートは利用できません。HDMI や DisplayPort から音声出力を使用するには [[#AMDGPU PRO|AMDGPU PRO]] ドライバーを使用するか {{AUR|linux-amd-staging-drm-next-git}} (または linux-amd-*) カーネルを使用する必要があります。 |
=== HDMI で表示位置がおかしい === |
=== HDMI で表示位置がおかしい === |
||
124行目: | 134行目: | ||
Section "Screen" |
Section "Screen" |
||
+ | Identifier "Screen" |
||
DefaultDepth 24 |
DefaultDepth 24 |
||
SubSection "Display" |
SubSection "Display" |
2017年12月23日 (土) 21:52時点における版
関連記事
amdgpu は最新の AMD Radeon グラフィックカードのオープンソースグラフィックドライバーです。
現在のところ、amdgpu がサポートしているのは Volcanic Islands と Sea Islands と Southern Islands ファミリー以降のカードだけです。Southern Islands は実験的にサポートしています。GCN 以前の GPU をサポートする計画はありません。
サポートされていない AMD/ATI のビデオカードを利用している場合は Radeon オープンソースドライバーや AMD のプロプライエタリドライバーを使ってください。
インストール
mesa パッケージをインストールしてください。3D アクセラレーションのための DRI ドライバーが含まれています。
- x86_64 環境で32ビットのサポートが必要な場合、multilib リポジトリから lib32-mesa パッケージもインストールしてください。
- xf86-video-amdgpu パッケージには Xorg の 2D アクセラレーションのための DDX ドライバーが含まれています。
- Vulkan のサポートが必要な場合は vulkan-radeon パッケージをインストールしてください。
ビデオデコードのハードウェア支援機能は VA-API を使用する場合 libva-mesa-driver と lib32-libva-mesa-driver パッケージ、または libva-vdpau-driver をインストールすることで使えます。VDPAU を使用する場合は mesa-vdpau と lib32-mesa-vdpau パッケージをインストールすることで使えます。
Southern Islands (SI) と Sea Islands (CIK) のサポートの有効化
linux パッケージでは Southern Islands (SI) や Sea Islands (CIK) カードの AMDGPU サポートは有効になっています。カーネルを自分でビルド・コンパイルするときはコンフィグで CONFIG_DRM_AMDGPU_SI=Y
や CONFIG_DRM_AMDGPU_CIK=Y
を有効にしてください。
カーネルによる SI/CIK の AMDGPU サポートが有効になっていても、依然として AMDGPU ドライバーの代わりに radeon ドライバーが使われることがあります。
amdgpu
モジュールを強制的に使用するには radeon
モジュールをブラックリストに追加してください:
/etc/modprobe.d/radeon.conf
blacklist radeon
また、カーネル 4.13 から amdgpu.si_support=1 radeon.si_support=0
または amdgpu.cik_support=1 radeon.cik_support=0
カーネルパラメータの追加が必要になっています [1]。カーネルパラメータを追加しないと、AMDGPU は起動せず代わりに radeon が使われたり、起動時にディスプレイがフリーズします。
Vega 以前のカードで AMD DC を有効にする
AMD DC (ディスプレイコード) はアトミックなモードセッティングや HDMI/DP オーディオをサポートする新しいディスプレイスタックです。GCN5/Vega 以降のカードではデフォルトで有効になります。
旧式のカード (GCN2/CIK, GCN3/VI, GCN4/Polaris; GCN1/SI は未対応) で AMD DC を有効にするには amdgpu.dc=1
カーネルパラメータを追加してください。詳しくは こちらの記事 を参照。
AMDGPU PRO
AMD はオープンソースの AMDGPU カーネルドライバーの上で動作するバイナリのユーザーランドドライバー AMDGPU PRO を提供しています。AMDGPU PRO ドライバーは OpenGL, OpenCL, Vulkan, VDPAU をサポートしており、オープンソースドライバーよりも高い性能を発揮します。詳しくは 最初のリリースノート と Phoronix フォーラムでのアナウンス を参照してください。
公式の AMDGPU PRO ドライバーにパッチを適用したバージョンが amdgpu-proAUR パッケージでインストールできます。
ロード
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 をインストールすることでハードウェアアクセラレーションによる動画のエンコード・デコードを行うことができます。
ドライバーオプション
以下のオプションは /etc/X11/xorg.conf.d/20-amdgpu.conf
で設定します。
ドライバーオプションの設定について詳しくは amdgpu(4) を読んでください。
DRI は有効にする DRI のレベルを設定します。DRI2 の場合は 2、DRI3 の場合は 3 と設定します。Xorg バージョン 1.18.3 以上ではデフォルト値は 3 となっており、古いバージョンでは DRI2 が使われます:
Option "DRI" "3"
TearFree はハードウェアのページフリップ機能を使って、ちらつきを抑えます。オプションを設定すると、プロパティのデフォルト値が auto に設定され、回転などの RandR の操作で TearFree がオンになります:
Option "TearFree" "true"
トラブルシューティング
HDMI/DP の音声が出力されない
オープンソースの AMDGPU ドライバーはカーネル 4.15 でマージされた DC (旧 DAL) のコードを使用します [2]。カーネル 4.15 が公式リポジトリから使用できるようになるまでは、HDMI や DisplayPort の音声サポートは利用できません。HDMI や DisplayPort から音声出力を使用するには AMDGPU PRO ドライバーを使用するか linux-amd-staging-drm-next-gitAUR (または linux-amd-*) カーネルを使用する必要があります。
HDMI で表示位置がおかしい
amdgpu.audio=0
カーネルパラメータを使うことで (問題のある) HDMI の音声サポートを有効にしないようにできます [3]。
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" Identifier "Screen" DefaultDepth 24 SubSection "Display" Depth 24 EndSubSection EndSection
周波数を上げたときに画面が崩れる問題が起こる
ディスプレイの周波数を 120Hz 以上に設定したときにディスプレイに乱れが発生する場合、メモリクロックや GPU クロックが低すぎてディスプレイに応答できていません。
以下を実行することで解決できます [4]:
# echo high > /sys/class/drm/card0/device/power_dpm_force_performance_level
または:
# echo low > /sys/class/drm/card0/device/power_dpm_force_performance_level
radeon-profile-gitAUR や radeon-profile-daemon-gitAUR を使うことで GUI で "power_dpm" を管理することもできます [5]。