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

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

概要

パッケージ管理システムを使用して、nVidiaグラフィックドライバをインストールすることを推奨する。
nVidiaの公式WebサイトにあるnVidiaグラフィックドライバに関する情報は、「難しい方法」を参照すること。

グラフィックカードを交換する場合は、まず、nVidiaグラフィックドライバをアンインストールすることを推奨する。


nVidiaリポジトリの追加

nVidiaグラフィックドライバは、ライセンスの関係でSUSEの公式リポジトリに入っていない。
しかし、nVidiaの公式Webサイトにリポジトリが存在するため、追加およびダウンロードすることができる。

以下のコマンドを実行して、nVidiaリポジトリを追加する。

# SLE 15 SP2
sudo zypper addrepo --refresh 'https://download.nvidia.com/suse/sle15sp2' NVIDIA

# SLE 15 SP3
sudo zypper addrepo --refresh 'https://download.nvidia.com/suse/sle15sp3' NVIDIA

# openSUSE 15.2
sudo zypper addrepo --refresh 'https://download.nvidia.com/opensuse/leap/15.2' NVIDIA



nVidiaグラフィックドライバのインストール

現在、PCに挿入しているグラフィックカードの情報を表示する。

sudo lspci | grep VGA
sudo  lscpu | grep Arch
または
hwinfo --gfxcard | grep Model
hwinfo --arch


適切なnVidiaグラフィックドライバを決定する方法を以下に2つ示す。

  • nVidiaの公式Webサイトから、使用しているnVidiaのグラフィックカードを探す。
  • パッケージ管理システムまたは以下のコマンドを実行して、利用可能なパッケージを確認する。
    sudo zypper se x11-video-nvidiaG0*
    または
    sudo zypper se -s x11-video-nvidiaG0*


次に、以下のコマンドを実行して、nVidiaグラフィックドライバをインストールする。

sudo zypper install x11-video-nvidiaG04
または
sudo zypper install x11-video-nvidiaG05


インストール完了後、Linuxを再起動する。


注意

セキュアブートが有効化されているLinuxでは、署名されていないカーネルモジュールのロードを拒否する。

セキュアブートシステムへのnVidiaグラフィックドライバのインストール中において、
MOKキーペアが作成され、作成された秘密鍵でカーネルモジュールが署名されている。

作成された証明書(公開鍵)は、/var/lib/nvidia-pubkeysディレクトリ内のファイルにあるが、
登録されるMOK pubkeysのリストにインポートする必要がある。

最初の再起動後、この証明書は簡単にMOKデータベースに登録することができる。(EFIツール mokutilが自動的に起動する)
EFIツールにおいて、[Enroll MOK] - [Continue] - [Yes]を選択する。
パスワードは、ルートパスワード(USキーボードレイアウトに注意すること)を使用する。
これにより、証明書がMOKデータベースに追加されて(信頼されているとみなされる)、一致する署名を持つカーネルモジュールをロードできるようになる。

EFIツールを終了するには、"Reboot"を選択する。

もし、初回再起動後に証明書登録の設定を行っていない場合は、以下のコマンドを実行して、証明書を再インポートできる。

sudo mokutil --import /var/lib/nvidia-pubkeys/MOK-nvidia-gfxG0<X>-<driver_version>-<kernel_flavor>.der --root-pw


次に、Linuxを再起動して、上記の証明書を登録する。

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

sudo mokutil --disable-validation



nVidiaグラフィックドライバのアップデート

ドライバの更新において、古い公開鍵が登録されて使用されなくなった場合は、MOKのデータベースから削除される。
そのため、Linuxを再起動すると、[Enroll MOK]メニュー項目に加えて[Delete MOK]項目がEFIツールに表示される。

MOKデータベースから削除するには、[Delete MOK] - [Continue] - [Yes]を選択する。
パスワードは、ルートパスワード(USキーボードレイアウトに注意すること)を使用する。
間違ったキーを削除しないように、[View Key X]を選択すると、公開鍵の証明書 / 説明を表示することができる。
この時、任意のキーを押下すると、そこから先に進むことができる。


nVidiaグラフィックドライバのアンインストール

パッケージ管理システム

  1. YaSTを起動して、[ソフトウェア] - [ソフトウェア管理]を選択する。
  2. [表示]タブ - [リポジトリ]から、nVidiaリポジトリを選択する。
  3. nVidiaリポジトリからインストールされているパッケージを削除する。
    コンフリクトを無視して、"依存関係を壊す"を選択する。
  4. YaSTに戻り、[ソフトウェア] - [ソフトウェアリポジトリ]を選択する。
  5. nVidiaリポジトリを無効に設定する。
    次回において、リポジトリがサーバと同期された時に有効に戻るため、削除しないこと。


プロプライエタリなドライバをアンインストールすると、以前のX設定ファイル/etc/X11/xorg.confファイルがあれば復元される。
その間にハードウェアが変更されている場合は、このファイルを手動で編集する必要がある。

手動

以下のコマンドを実行して、nVidiaグラフィックドライバをアンインストールする。

sudo zypper remove x11-video-nvidiaG04
または
sudo zypper remove x11-video-nvidiaG05


もし、全てのパッケージが削除されない場合、以下のコマンドを実行する。

sudo zypper se -ir NVIDIA
または
sudo zypper lr
sudo zypper se -ir <リポジトリ番号>


また、nVidiaグラフィックドライバのインストーラが、ブラックリストにnouveauを追加している可能性がるため、
modeset DDXドライバやnouveau DDXドライバを再び実行できるようにする。
/etc/modprobe.dディレクトリ内のファイルにおいて、blacklist nouveauという単語を含むファイルがないことを確認する。

アンインストール後、以下のコマンドを実行する必要がある。

sudo mkinitrd



トラブルシューティング

GDM(GNOME)を使用している場合、nVidiaのプロプライエタリドライバのインストール後、
OSのログイン画面の前にコンピュータがフリーズする時は、/etc/gdm/custom.confファイルに以下を追記する。

 WaylandEnable=false


nVidiaグラフィックドライバが正常に読み込まれているか確認するには、以下のコマンドを実行する。(数値は無視する)

lsmod | grep nvidia

# 出力
nvidia_drm <数値> <数値>
nvidia_modeset <数値> <数値> nvidia_drm
nvidia_uvm <数値> <数値>
nvidia <数値> <数値> nvidia_uvm、nvidia_modeset
drm_kms_helper <数値> <数値> nvidia_drm、i915
drm <数値> <数値> drm_kms_helper、nvidia_drm、i915


WaylandとnVidiaグラフィックドライバ

nVidiaリポジトリ( https://download.nvidia.com/opensuse または https://download.nvidia.com/suse )を通じて提供されるドライバは、
Waylandディスプレイプロトコル(2020年8月現在)と互換性が無いため、GDM等を起動する場合、ハングする可能性がある。

回避策として、nVidiaグラフィックドライバを使用して、Waylandの代わりにXorgを使用することを推奨する。
これにより、nouveauドライバよりも多くの3Dグラフィックサポートが可能になる。

Xorgを使用するため、以下の手順を行う。

  1. まず、Linuxをマルチユーザモード(ランレベル3)で起動する。
  2. nouveauドライバをアンインストールする。
    または、/etc/modprobe.d/50-blacklist.confファイルに以下の設定を追記する。
    blacklist nouveau
  3. nVidiaグラフィックドライバをインストールする。
    (上記のインストール手順を参照すること)
  4. /etc/gdm/custom.confファイルに以下の設定を追記する。
    WaylandEnable=false
  5. Linuxを再起動して、ディスプレイマネージャを起動する。


エラー : Unable to load info from any available system

パッケージ管理システムからnVidiaグラフィックドライバをインストールした時、このエラーが発生する原因は、
LinuxがnVidiaではなく別のグラフィックカードドライバを実行しているからである。

解決するには、openSUSE Primeをインストールして、グラフィックドライバとしてnVidiaを選択する必要がある。

  1. まず、openSUSE Primeをインストールする。
    sudo zypper install opensuse-prime
  2. Linuxを再起動する。
  3. prime-selectコマンドを実行して、グラフィックドライバを切り替える。
    sudo prime-select nvidia
  4. X11関連のディレクトリおよびファイルのバックアップを作成する。
    sudo cp /etc/X11/xorg.conf.install /etc/X11/xorg.conf.install_org.conf
    code>sudo cp /etc/X11/xorg.conf.d /etc/X11/xorg.conf.d_org
  5. 設定を反映させるため、以下のコマンドを実行する。
  6. sudo nvidia-xconfig
  7. Linuxを再起動する。