インストール - NVIDIAグラフィックドライバ
概要
パッケージ管理システムを使用して、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グラフィックドライバのアンインストール
パッケージ管理システム
- YaSTを起動して、[ソフトウェア] - [ソフトウェア管理]を選択する。
- [表示]タブ - [リポジトリ]から、nVidiaリポジトリを選択する。
- nVidiaリポジトリからインストールされているパッケージを削除する。
コンフリクトを無視して、"依存関係を壊す"を選択する。 - YaSTに戻り、[ソフトウェア] - [ソフトウェアリポジトリ]を選択する。
- 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を使用するため、以下の手順を行う。
- まず、Linuxをマルチユーザモード(ランレベル3)で起動する。
- nouveauドライバをアンインストールする。
または、/etc/modprobe.d/50-blacklist.confファイルに以下の設定を追記する。blacklist nouveau
- nVidiaグラフィックドライバをインストールする。
(上記のインストール手順を参照すること) - /etc/gdm/custom.confファイルに以下の設定を追記する。
WaylandEnable=false
- Linuxを再起動して、ディスプレイマネージャを起動する。
エラー : Unable to load info from any available system
パッケージ管理システムからnVidiaグラフィックドライバをインストールした時、このエラーが発生する原因は、
LinuxがnVidiaではなく別のグラフィックカードドライバを実行しているからである。
解決するには、openSUSE Primeをインストールして、グラフィックドライバとしてnVidiaを選択する必要がある。
- まず、openSUSE Primeをインストールする。
sudo zypper install opensuse-prime
- Linuxを再起動する。
- prime-selectコマンドを実行して、グラフィックドライバを切り替える。
sudo prime-select nvidia
- 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
- 設定を反映させるため、以下のコマンドを実行する。
sudo nvidia-xconfig
- Linuxを再起動する。