「AMDGPU」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(適切なドライバーの選択を翻訳して追加)
(→‎インストール: 実験的を翻訳して追加)
33行目: 33行目:
   
 
[[#ビデオアクセラレーションの有効化|ビデオデコードのハードウェア支援]]機能は VA-API を使用する場合 {{Pkg|libva-mesa-driver}} と {{Pkg|lib32-libva-mesa-driver}} パッケージ、または {{Pkg|libva-vdpau-driver}} をインストールすることで使えます。VDPAU を使用する場合は {{Pkg|mesa-vdpau}} と {{Pkg|lib32-mesa-vdpau}} パッケージをインストールすることで使えます。
 
[[#ビデオアクセラレーションの有効化|ビデオデコードのハードウェア支援]]機能は VA-API を使用する場合 {{Pkg|libva-mesa-driver}} と {{Pkg|lib32-libva-mesa-driver}} パッケージ、または {{Pkg|libva-vdpau-driver}} をインストールすることで使えます。VDPAU を使用する場合は {{Pkg|mesa-vdpau}} と {{Pkg|lib32-mesa-vdpau}} パッケージをインストールすることで使えます。
  +
  +
=== 実験的 ===
  +
  +
一部のユーザーにとっては、 mesa のアップストリーム実験ビルドを使用して、標準の mesa パッケージに含まれていない AMDNavi の改善などの機能を有効にする価値があるかもしれません。
  +
  +
{{AUR|mesa-git}} パッケージをインストールします。これは 3D アクセラレーション用の DRI ドライバーを提供します。
  +
  +
* 32 ビットアプリケーションをサポートする場合は、 ''mesa-git'' リポジトリまたは [[AUR]] から {{AUR|lib32-mesa-git}} パッケージもインストールします。
  +
* DDX ドライバー ([[Xorg]] で 2D アクセラレーションを提供) の場合は、 {{AUR|xf86-video-amdgpu-git}} パッケージをインストールします。
  +
*以下の ''mesa-git'' リポジトリを使用した [[Vulkan]] サポートについては、''vulkan-radeon-git'' パッケージをインストールしてください。オプションで、32 ビットアプリケーションをサポートするために ''lib32-vulkan-radeon-git '' パッケージをインストールします。 AUR から {{AUR|mesa-git}} をビルドする場合、これは必要ありません。
  +
  +
{{Note|X を起動するには、 LibLLVM をシンボリックリンクする必要がある場合があります。例:{{ic|ln -s /usr/lib/libLLVM-10git.so /usr/lib/libLLVM-10svn.so}}}}
  +
  +
{{Tip| {{AUR|mesa-git}} パッケージのコンパイルプロセスを実行したくないユーザーは、[[非公式ユーザーリポジトリ#mesa-git|mesa-git]] 非公式リポジトリを使用できます。}}
   
 
=== Southern Islands (SI) と Sea Islands (CIK) のサポートの有効化 ===
 
=== Southern Islands (SI) と Sea Islands (CIK) のサポートの有効化 ===

2020年12月18日 (金) 23:19時点における版

関連記事

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

現在のところ、amdgpu がサポートしているのは Volcanic IslandsSea IslandsSouthern Islands ファミリー以降のカードだけです。Southern Islands は実験的にサポートしています。GCN 以前の GPU をサポートする計画はありません。

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

適切なドライバーの選択

お持ちのカードに応じて、 Xorg#AMD で適切なドライバーを見つけてください。 このページには、AMDGPU および AMDGPUPRO の説明があります。 現在、Southern Islands(AI)カードを介したSouthern Islands(SI) のXorg radeon ドライバーサポートがあります。 AMD は GCN 以前の GPU をサポートする予定はありません。 サポートされていない GPU の所有者は、オープンソースの radeon または AMD Catalyst ドライバーを使用できます。

インストール

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

mesa パッケージをインストールしてください。3D アクセラレーションのための DRI ドライバーが含まれています。

  • x86_64 環境で32ビットのサポートが必要な場合、multilib リポジトリから lib32-mesa パッケージもインストールしてください。
  • xf86-video-amdgpu パッケージには Xorg の 2D アクセラレーションのための DDX ドライバーが含まれています。
  • Vulkan のサポートが必要な場合は vulkan-radeon パッケージをインストールしてください。

ビデオデコードのハードウェア支援機能は VA-API を使用する場合 libva-mesa-driverlib32-libva-mesa-driver パッケージ、または libva-vdpau-driver をインストールすることで使えます。VDPAU を使用する場合は mesa-vdpaulib32-mesa-vdpau パッケージをインストールすることで使えます。

実験的

一部のユーザーにとっては、 mesa のアップストリーム実験ビルドを使用して、標準の mesa パッケージに含まれていない AMDNavi の改善などの機能を有効にする価値があるかもしれません。

mesa-gitAUR パッケージをインストールします。これは 3D アクセラレーション用の DRI ドライバーを提供します。

  • 32 ビットアプリケーションをサポートする場合は、 mesa-git リポジトリまたは AUR から lib32-mesa-gitAUR パッケージもインストールします。
  • DDX ドライバー (Xorg で 2D アクセラレーションを提供) の場合は、 xf86-video-amdgpu-gitAUR パッケージをインストールします。
  • 以下の mesa-git リポジトリを使用した Vulkan サポートについては、vulkan-radeon-git パッケージをインストールしてください。オプションで、32 ビットアプリケーションをサポートするために lib32-vulkan-radeon-git パッケージをインストールします。 AUR から mesa-gitAUR をビルドする場合、これは必要ありません。
ノート: X を起動するには、 LibLLVM をシンボリックリンクする必要がある場合があります。例:ln -s /usr/lib/libLLVM-10git.so /usr/lib/libLLVM-10svn.so
ヒント: mesa-gitAUR パッケージのコンパイルプロセスを実行したくないユーザーは、mesa-git 非公式リポジトリを使用できます。

Southern Islands (SI) と Sea Islands (CIK) のサポートの有効化

linux パッケージでは Southern Islands (SI) や Sea Islands (CIK) カードの AMDGPU サポートは有効になっています。カーネルを自分でビルド・コンパイルするときはコンフィグで CONFIG_DRM_AMDGPU_SI=YCONFIG_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 はカーネル 4.15 以上で使用できます。

AMD DC (ディスプレイコード) はアトミックなモードセッティングや HDMI/DP オーディオをサポートする新しいディスプレイスタックです。GCN5/Vega 以降のカードではデフォルトで有効になります。

旧式のカード (GCN2/CIK, GCN3/VI, GCN4/Polaris; GCN1/SI は未対応) で AMD DC を有効にするには amdgpu.dc=1 カーネルパラメータを追加してください。詳しくは こちらの記事 を参照。

AMDGPU PRO

警告: Arch Linux は公式にはサポートされていません。
ノート:
  • プロプライエタリな OpenCL コンポーネントだけを使いたい場合は opencl-amdAUR パッケージをインストールしてください。
  • AMDGPU PRO 17.10 を使うには linux (4.9) と Xorg (1.18) パッケージのダウングレードが必要になります。

AMD はオープンソースの AMDGPU カーネルドライバーの上で動作するバイナリのユーザーランドドライバー AMDGPU PRO を提供しています。AMDGPU PRO ドライバーは OpenGL, OpenCL, Vulkan, VDPAU をサポートしており、オープンソースドライバーよりも高い性能を発揮します。詳しくは 最初のリリースノートPhoronix フォーラムでのアナウンス を参照してください。

公式の AMDGPU PRO ドライバーにパッチを適用したバージョンが amdgpu-proAUR[リンク切れ: パッケージが存在しません] パッケージでインストールできます。

ロード

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

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

Xorg の設定

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

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

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

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

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

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

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

ドライバーオプション

以下のオプションは /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-gitAURradeon-profile-daemon-gitAUR を使うことで GUI で "power_dpm" を管理することもできます [5]