AMDGPU
関連記事
amdgpu は最新の AMD Radeon グラフィックカードのオープンソースグラフィックドライバーです。
現在のところ、amdgpu がサポートしているのは Volcanic Islands と Sea Islands ファミリーのカードだけですが、近い将来に古いカードもサポートすることを AMD は約束しています。
サポートされていない 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 パッケージをインストールすることで使えます。
設定
Xorg は自動的にドライバーをロードしてモニターの EDID を認識して最大解像度を設定します。必要な設定はドライバーのチューニングだけです。
手動で設定したい場合、/etc/X11/xorg.conf.d/20-amdgpu.conf
を作成して、以下を記述してください:
Section "Device" Identifier "AMD" Driver "amdgpu" EndSection
上記のセクションを使って、ドライバーの設定を変更したり機能を有効にすることができます。
ロード
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
変更は再起動後に適用されます。
パフォーマンスチューニング
ビデオアクセラレーションの有効化
VA-API や VDPAU をインストールすることでハードウェアアクセラレーションによる動画のエンコード・デコードを行うことができます。
Sea Islands カードで amdgpu を使用する
amdgpu
は Sea Islands (CI) のカードを実験的にサポートしていますが、デフォルトでは無効になっています。AMD はユーザー空間の Vulkan ドライバーは新しい amdgpu
スタックしかサポートしないと公言しているため [1]、Vulkan を使うには radeon から amdgpu
に切り替える必要があります。また、XDC のプレゼンテーション で触れられている新しい OpenCL ドライバーを使いたい場合も amdgpu
が必須です。amdgpu
で Sea Islands のサポートを有効にして使用したい場合、カーネルを再コンパイルしなくてはなりません。カスタムカーネルを作成する一番簡単な方法はおそらく ABS でしょう。カーネル/コンパイル/Arch Build System を見てください。"Enable amdgpu support for CIK parts" を "yes" に設定してから、カーネルをコンパイル・インストールしてください:
CONFIG_DRM_AMDGPU_CIK=Y
radeon
がロードされないように、Kconfig でモジュールを無効化するか radeon
モジュールをブラックリストに入れてください:
/etc/modprobe.d/amdgpu.conf
blacklist radeon