インストール - ATIグラフィックドライバ

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動

概要

オープンソースおよびプロプライエタリの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以降の場合
  1. AMT / ATIの公式Webサイトにアクセスして、プロプライエタリのドライバを手動で選択およびダウンロードする。
  2. ダウンロードしたAMDグラフィックドライバのリポジトリを登録する。
    AMDグラフィックドライバをインストールする時、インストーラとAMD関連のリポジトリがシステムに追加される。
    このリポジトリは、パッケージ管理システムからアクセスできるようになり、そのパッケージ管理システムはインストーラからも使用される。
    RHEL
    sudo dnf install ./amdgpu-install-<バージョン>.rpm
    SUSE
    sudo zypper install ./amdgpu-install-<バージョン>.rpm

  3. 次に、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

    例えば、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

    ユースケースの指定
    • グラフィック
      これは、以前のバージョンでは、All-Open Variantと呼ばれていた。
      All-Openコンポーネントをインストールする。
      --usecase=graphics
    • ワークステーション
      これは、以前のバージョンでは、Pro Variantと呼ばれていた。
      --usecase=workstation


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以前の場合
  1. AMT / ATIの公式Webサイトにアクセスして、プロプライエタリのドライバを手動で選択およびダウンロードする。
  2. ダウンロードしたドライバを解凍する。
    tar -Jxvf amdgpu-pro-<バージョン>.tar.xz
    cd ~/Downloads/amdgpu-pro-<バージョン>

  3. グラフィックドライバをインストールする。
    パッケージ管理システムからのメッセージを回避するために、-yオプションの使用を推奨する。
    OpenCLにおいて、利用可能な2つの--openclオプションが存在する。
    • PAL
      Vega 10以降のハードウェアをサポートする。
      --opencl=rocr
    • legacy
      Vega 10より古いハードウェアをサポートする。
      --opencl=legacy
    • PALとlegacy
      両方サポートする。
      --opencl=rocr,legacy

    例えば、Radeon RX550の場合はVega 10より古いため、--opencl=legacyとなる。
    また、--headlessオプションは、ディスプレイに接続しない状態でもGPU演算を行う場合に使用する。
    sudo ./amdgpu-install --opencl=legacy

  4. もし、グラフィックドライバのインストール時において、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データベースの証明書の登録手順を示す。

  1. EFIツールにおいて、[Enroll MOK] - [Continue] - [Yes]を選択する。
  2. パスワードは、Linuxの管理者パスワード(USキーボードレイアウトに注意すること)を使用する。
    これにより、証明書がMOKデータベースに追加されて(信頼されているとみなされる)、一致する署名を持つカーネルモジュールをロードできるようになる。
  3. [Reboot]を選択して、EFIツールを終了する。
  4. もし、初回再起動後に証明書登録の設定を行っていない場合は、以下のコマンドを実行して、証明書を再インポートできる。
    sudo mokutil --import /var/lib/amd-pubkeys/MOK-*.der --root-pw
    次に、Linuxを再起動して、上記の証明書を登録する。


セキュアブートに問題がある場合に備えて、自己責任でカーネルモジュールの検証を無効にすることができる。

sudo mokutil --disable-validation