インストール - ATIグラフィックドライバ
概要
オープンソースおよびプロプライエタリのATI / AMDグラフィックドライバをインストールする手順を記載する。
グラフィックカードを交換する場合は、まず、ATI / AMDグラフィックドライバをアンインストールすることを推奨する。
NVIDIAグラフィックドライバをインストールする前に
まず、X11の設定をバックアップする。
sudo cp /etc/X11/xorg.conf.install /etc/X11/xorg.conf.install_org.conf sudo cp -r /etc/X11/xorg.conf.d /etc/X11/xorg.conf.d_org sudo cp -r /usr/share/X11/xorg.conf.d /usr/share/X11/xorg.conf.d_org
ATI / AMDグラフィックドライバのインストール
プロプライエタリのグラフィックドライバ
DKMSの署名サポートを利用する場合は、DKMS 2.8以降が必要となる。
しかし、SUSE Enterprise Linux 15 SP4 / openSUSE Leap 15.4以前では、DKMSのバージョンが古いため、DKMSが利用できない。
DKMSがユーザによって手動で更新されている場合、RHELと同じ方法で署名を使用することができるが、これは未検証であり、意図したとおりに動作しない可能性がある。
そのため、SUSE Enterprise Linux 15 SP4 / openSUSE Leap 15.4以前では自己責任で使用する。
DKMSのインストールは、以下の通りである。
sudo zypper install dkms
AMDグラフィックドライバのバージョンが21.40以降の場合
- AMT / ATIの公式Webサイトにアクセスして、プロプライエタリのドライバを手動で選択およびダウンロードする。
- ダウンロードしたAMDグラフィックドライバのリポジトリを登録する。
AMDグラフィックドライバをインストールする時、インストーラとAMD関連のリポジトリがシステムに追加される。
このリポジトリは、パッケージ管理システムからアクセスできるようになり、そのパッケージ管理システムはインストーラからも使用される。- RHEL
sudo dnf install ./amdgpu-install-<バージョン>.rpm
- SUSE
sudo zypper install ./amdgpu-install-<バージョン>.rpm
- 次に、AMDグラフィックドライバをインストールする。
上記のリポジトリを登録した時、併せて、AMDグラフィックドライバをインストールするamdgpu-install
コマンドが追加される。
例えば、Radeon RX550を使用している場合は、以下のオプションを付加してAMDグラフィックドライバをインストールする。amdgpu-install --usecase=graphics --opencl=legacy --vulkan=amdvlk
またはamdgpu-install --usecase=graphics --opencl=legacy --vulkan=amdvlk,pro
オプションの詳細については、以下の通りである。- OpenCLにおいて、利用可能な2つの
--opencl
オプションが存在する。
- PAL
- Vega 10を含めてそれ以降のハードウェアをサポートする。
--opencl=rocr
- legacy
- Vega 10より古いハードウェアをサポートする。
--opencl=legacy
- PALとlegacy
- 両方サポートする。
--opencl=rocr,legacy
- PAL
- 例えば、Radeon RX550の場合はVega 10より古いため、
--opencl=legacy
となる。 - また、
--headless
オプションは、ディスプレイに接続しない状態でもGPU演算を行う場合に使用する。 amdgpu-install --opencl=legacy
- Vulkanにおいて、利用可能な2つの
--vulkan
オプションが存在する。- AMDVLK
- オープンソースのVulkanをインストールする。
--vulkan=amdvlk
- PRO
- PRO Vulkan(プロプライエタリ)をインストールする。(EULAへの同意が必要)
--vulkan=pro
- AMDVLKとPRO
- 両方をサポートする。
--vulkan=amdvlk,pro
- AMDVLK
- ユースケースの指定
- グラフィック
これは、以前のバージョンでは、All-Open Variantと呼ばれていた。- All-Openコンポーネントをインストールする。
--usecase=graphics
- ワークステーション
これは、以前のバージョンでは、Pro Variantと呼ばれていた。--usecase=workstation
- グラフィック
- OpenCLにおいて、利用可能な2つの
AMD GPUドライバの詳細は、https://amdgpu-install.readthedocs.io/en/latest/ を参照すること。
※注意
OpenCLのROCrを使用するには、実行中のユーザに追加の権限が必要な場合がある。
一般的に、ユーザを"render"グループまたは"video"グループに追加しなければならない。
clinfo
コマンドやその他のopenCLを使用したソフトウェアが動作しない場合は、まず、レンダーノードの所有権とパーミッションを確認する。
ls -l /dev/dri/render*
次に、レンダーノードがrenderグループに所属している場合、かつ、全てのユーザが読み書きできない場合、現在のユーザをrenderグループに追加する。
sudo usermod -aG render $USER
また、レンダーノードがvideoグループに所属している場合、かつ、全てのユーザが読み書きできない場合、現在のユーザをvideoグループに追加する。
sudo usermod -aG video $USER
もし、AMD GPU ProのOpenGL部分を省いてOpenCL部分のみをインストールすることが望ましい場合、--headless
オプションを付加してインストールする。
AMDグラフィックドライバのバージョンが21.30以前の場合
- AMT / ATIの公式Webサイトにアクセスして、プロプライエタリのドライバを手動で選択およびダウンロードする。
- ダウンロードしたドライバを解凍する。
- tar -Jxvf amdgpu-pro-<バージョン>.tar.xz
- cd ~/Downloads/amdgpu-pro-<バージョン>
- グラフィックドライバをインストールする。
パッケージ管理システムからのメッセージを回避するために、-y
オプションの使用を推奨する。- OpenCLにおいて、利用可能な2つの
--opencl
オプションが存在する。
- PAL
- Vega 10以降のハードウェアをサポートする。
--opencl=rocr
- legacy
- Vega 10より古いハードウェアをサポートする。
--opencl=legacy
- PALとlegacy
- 両方サポートする。
--opencl=rocr,legacy
- PAL
- 例えば、Radeon RX550の場合はVega 10より古いため、
--opencl=legacy
となる。 - また、
--headless
オプションは、ディスプレイに接続しない状態でもGPU演算を行う場合に使用する。 sudo ./amdgpu-install --opencl=legacy
- OpenCLにおいて、利用可能な2つの
- もし、グラフィックドライバのインストール時において、DKMS関連のエラーが出力される場合は、
--no-dkms
オプションを付加してインストールする。
※ただし、これはAMD GPU Proでは動作しないことに注意すること。
sudo ./amdgpu-install --opencl=legacy --no-dkms
- 次に、以下のライブラリをインストールする。
sudo zypper install amdgpu amdgpu-dkms amdgpu-dkms-firmware
AMD GPUドライバの詳細は、https://amdgpu-install.readthedocs.io/en/latest/ を参照すること。
※注意
OpenCLのROCrを使用するには、実行中のユーザに追加の権限が必要な場合がある。
一般的に、ユーザを"render"グループまたは"video"グループに追加しなければならない。
clinfo
コマンドやその他のopenCLを使用したソフトウェアが動作しない場合は、まず、レンダーノードの所有権とパーミッションを確認する。
ls -l /dev/dri/render*
次に、レンダーノードがrenderグループに所属している場合、かつ、全てのユーザが読み書きできない場合、現在のユーザをrenderグループに追加する。
sudo usermod -aG render $USER
また、レンダーノードがvideoグループに所属している場合、かつ、全てのユーザが読み書きできない場合、現在のユーザをvideoグループに追加する。
sudo usermod -aG video $USER
もし、AMD GPU ProのOpenGL部分を省いてOpenCL部分のみをインストールすることが望ましい場合、--headless
オプションを付加してインストールする。
オープンソースのグラフィックドライバ
AMDGPUは、GCN1(Radeon HD 7000)以降のグラフィックボードにおいて、
グラフィックスコアネクストチップセットに基づく新しいAMD / ATI Radeon用の次世代のオープンソースドライバである。
ここでは、Radeon HD 7000以降のみに対応するAMD GPUオープンソースドライバをインストールする。
sudo zypper install xf86-video-amdgpu kernel-firmware-amdgpu
ATI / AMDグラフィックドライバのアンインストール
プロプライエタリのグラフィックドライバ
AMDグラフィックドライバのバージョンが21.40以降の場合
AMDグラフィックドライバの全てのコンポーネントを削除するには、まず、以下のコマンドを実行する。
amdgpu-uninstall # または amdgpu-install --uninstall
次に、AMDグラフィックドライバをアンインストールした後、PCを再起動する。
sudo systemctl reboot
最後に、パッケージ管理システムを使用して、amdgpu-installをアンインストールする。
# RHEL sudo dnf remove amdgpu-install # SUSE sudo zypper remove amdgpu-install
AMDグラフィックドライバのバージョンが21.30以前の場合
全てのコンポーネントを削除するには、任意の場所からアンインストールスクリプトを実行する。
All-OpenコンポーネントとProコンポーネントのどちらをインストールしたかに応じて、以下のいずれかのコマンドを実行する。
# All-Openコンポーネントをインストールしている場合 amdgpu-uninstall # Proコンポーネントをインストールしている場合 amdgpu-pro-uninstall
ドライバのアンインストール後、PCを再起動する。
オープンソースのグラフィックドライバ
Radeon HD 7000以降のみに対応するAMD GPUオープンソースドライバをアンインストールする。
sudo zypper remove xf86-video-amdgpu kernel-firmware-amdgpu
ドライバのアンインストール後、PCを再起動する。
ハイブリッドグラフィックス設定
個別のAMD GPUを搭載したラップトップPCでは、内蔵Intel GPUをプライマリとして使用して、特定のソフトウェアに対してのみAMD GPUをアクティブ化することができる。
これにより、バッテリ寿命を伸ばすことができる。これを、オフロードと呼ぶ。
(特に、ゲーム、エミュレータ、CAD等のソフトウェアで有利になる)
まず、[YaST] - [ブートローダ] - [カーネルパラメータ]タブを選択して、以下の設定を追記する。
amdgpu.si_support=1 radeon.si_support=0
上記の設定により、カーネルにAMD GPUドライバを使用して、Radeonドライバを使用しないようできる。
変更を保存して、PCを再起動する。
AMD GPUが利用可能であることを確認するには、以下のコマンドを実行する。
以下の出力において、2つの重要な点を確認する。
まず、プロバイダが2つあり、プロバイダ0はIntel GPU、プロバイダ1はAMD GPUである。
# 実行 xrandr --listproviders # 出力 Providers: number : 2 Provider 0: id: 0x69; cap: 0xf (Source Output, Sink Output, Source Offload, Sink Offload); crtcs: 3; outputs: 7; associated providers: 1; name: modesetting output eDP-1 output VGA-1 output HDMI-1 output DP-1 output HDMI-2 output DP-2 output HDMI-3 Provider 1: id: 0x3f; cap: 0xd (Source Output, Source Offload, Sink Offload); crtcs: 0; outputs: 0; associated providers: 1; name: AMD Radeon HD 8600M Series @ pci:0000:01:00.0
AMD GPUが適切に使用可能であることを確認するには、以下のコマンドを実行する。
# 実行 DRI_PRIME=1 glxinfo | grep “OpenGL renderer” # 出力 OpenGL renderer string: AMD Radeon HD 8600M Series (HAINAN / DRM 3.23.0 / 4.16.8-1-default, LLVM 6.0.0)
特定のソフトウェアに対して、グラフィック処理をAMD GPUにオフロードするには、DRI_PRIME=1
を付加して実行する。
例えば、端末からIntel GPUではなく、AMD GPUを使用してSteamを実行するには、以下のように実行する。
DRI_PRIME=1 Steam
また、デスクトップエントリファイルを作成して、AMD GPUにオフロードするソフトウェアに対してDRI_PRIME=1
を付加して実行してもよい。
セキュアブートの使用
セキュアブートが有効化されているLinuxでは、署名されていないカーネルモジュールのロードを拒否する。
セキュアブートシステムへのATIグラフィックドライバのインストール中において、MOKキーペアが作成され、作成された秘密鍵でカーネルモジュールが署名されている。
作成された証明書(公開鍵)は、/var/lib/nvidia-pubkeysディレクトリ内のファイルにあるが、登録されるMOK pubkeysのリストにインポートする必要がある。
最初の再起動後、この証明書は簡単にMOKデータベースに登録することができる。(EFIツール mokutilが自動的に起動する)
以下に、MOKデータベースの証明書の登録手順を示す。
- EFIツールにおいて、[Enroll MOK] - [Continue] - [Yes]を選択する。
- パスワードは、Linuxの管理者パスワード(USキーボードレイアウトに注意すること)を使用する。
これにより、証明書がMOKデータベースに追加されて(信頼されているとみなされる)、一致する署名を持つカーネルモジュールをロードできるようになる。 - [Reboot]を選択して、EFIツールを終了する。
- もし、初回再起動後に証明書登録の設定を行っていない場合は、以下のコマンドを実行して、証明書を再インポートできる。
sudo mokutil --import /var/lib/amd-pubkeys/MOK-*.der --root-pw
- 次に、Linuxを再起動して、上記の証明書を登録する。
セキュアブートに問題がある場合に備えて、自己責任でカーネルモジュールの検証を無効にすることができる。
sudo mokutil --disable-validation