SDB:NVIDIA drivers

移動先: 案内, 検索

テンプレート:SDB navbar

Process-stop.png
警告!
お使いのグラフィックカードを最新のものに買い換える場合は、ハードウエアをアップグレードする前にドライバをアンインストールしておく (nouveau ドライバに戻しておく) ことをお勧めします。


Situation

公式の NVIDIA ドライバをインストールする場合は、 ZYpp (YaST, YaST2, Zypper) をお使いください。

NVIDIA が公式で公開している Linux 向けの .run ファイルを実行する方法については、 "面倒な方法" をお読みください。

手順

YaST や Zypper でインストールを行なうには、まず root で作業を行なう必要があります。

Nivida リポジトリの追加

NVIDIA ドライバは ライセンス 上の理由から、 openSUSE には同梱することができません。ですが、 NVIDIA 社では、ダウンロードしてインストールすることのできる openSUSE 向けリポジトリが用意されています。

(注釈) どのバージョンがサポートされているかは、レポジトリを直接見ると良いでしょう。 https://download.nvidia.com/opensuse/leap/


YaST

  1. YaST を開いて "ソフトウエアリポジトリ" を選択します。
  2. 左下の "追加" ボタンを押し、 "コミュニティリポジトリ" を選択します。
  3. "NVIDIA Graphics Drivers" を選択して OK を押します。

ターミナル(CLI)

Leap すべて
# zypper install openSUSE-repos-Leap-NVIDIA
または
# zypper addrepo --refresh 'https://download.nvidia.com/opensuse/leap/$releasever' NVIDIA
Tumbleweed または Slowroll
# zypper install openSUSE-repos-Tumbleweed-NVIDIA
# zypper install openSUSE-repos-Slowroll-NVIDIA
または
# zypper addrepo --refresh https://download.nvidia.com/opensuse/tumbleweed NVIDIA

ハードウエア情報の取得

端末から:

# lspci | grep VGA
# lscpu | grep Arch

それ以外の方法:

# hwinfo --gfxcard | grep Model
# hwinfo --arch

YaST2 -> ハードウエア情報 からも表示することができます。

インストール

適切なドライバを見つけたい場合は、 Nvidia が提供する検索エンジン を利用する方法があります。そのほかにも、 シリーズ情報 (英語) から検索する方法もあります。グラフィックカードの種類が判明したら、あとはパッケージを検索するだけです。 YaST のソフトウエアマネージャを起動するか、下記のコマンドを実行して、利用可能なパッケージを検索します:

# zypper se -s nvidia-gl-G06
または
# zypper se -s x11-video-nvidiaG0*
S  | Name                | Type    | Version               | Arch   | Repository
---+---------------------+---------+-----------------------+--------+-----------
   | nvidia-gl-G06       | package | 550.107.02-lp156.26.1 | x86_64 | NVIDIA
   | nvidia-gl-G06       | package | 550.100-lp156.25.1    | x86_64 | NVIDIA
   | nvidia-gl-G06       | package | 550.90.07-lp156.23.1  | x86_64 | NVIDIA
   | nvidia-gl-G06       | package | 550.78-lp156.22.1     | x86_64 | NVIDIA
   | nvidia-gl-G06       | package | 550.67-lp156.20.1     | x86_64 | NVIDIA
   | nvidia-gl-G06-32bit | package | 550.107.02-lp156.26.1 | x86_64 | NVIDIA
   | nvidia-gl-G06-32bit | package | 550.100-lp156.25.1    | x86_64 | NVIDIA
   | nvidia-gl-G06-32bit | package | 550.90.07-lp156.23.1  | x86_64 | NVIDIA
   | nvidia-gl-G06-32bit | package | 550.78-lp156.22.1     | x86_64 | NVIDIA
   | nvidia-gl-G06-32bit | package | 550.67-lp156.20.1     | x86_64 | NVIDIA
# zypper se -s x11-video-nvidia
S  | Name                      | Type    | Version               | Arch   | Repository
---+---------------------------+---------+-----------------------+--------+-----------
   | x11-video-nvidiaG05       | package | 470.256.02-lp156.62.1 | x86_64 | NVIDIA
   | x11-video-nvidiaG05       | package | 470.256.02-lp156.61.1 | x86_64 | NVIDIA
   | x11-video-nvidiaG05       | package | 470.256.02-lp156.60.1 | x86_64 | NVIDIA
   | x11-video-nvidiaG05       | package | 470.239.06-lp156.60.1 | x86_64 | NVIDIA
   | x11-video-nvidiaG05       | package | 470.239.06-lp156.59.1 | x86_64 | NVIDIA
   | x11-video-nvidiaG05-32bit | package | 470.256.02-lp156.62.1 | x86_64 | NVIDIA
   | x11-video-nvidiaG05-32bit | package | 470.256.02-lp156.61.1 | x86_64 | NVIDIA
   | x11-video-nvidiaG05-32bit | package | 470.256.02-lp156.60.1 | x86_64 | NVIDIA
   | x11-video-nvidiaG05-32bit | package | 470.239.06-lp156.60.1 | x86_64 | NVIDIA
   | x11-video-nvidiaG05-32bit | package | 470.239.06-lp156.59.1 | x86_64 | NVIDIA
(旧バージョンでの Summary の表記)
S | Name                | Summary                                                 | Type   
--+---------------------+---------------------------------------------------------+--------
  | x11-video-nvidiaG04 | NVIDIA graphics driver for GeForce 400 series and newer | package
  | x11-video-nvidiaG05 | NVIDIA graphics driver for GeForce 600 series and newer | package

YaST

  1. YaST コントロールセンターから "ソフトウエア管理" を選択します。
  2. 表示 > リポジトリ > NVIDIA を選択します。
  3. 適切なドライバを選択します (x11-video-nvidiaG04 または x11-video-nvidiaG05)
  4. "了解" を押します。
  5. 最後にコンピュータを再起動します。

Zypper

# zypper in <x11-video-nvidiaG04 もしくは x11-video-nvidiaG05 または nvidia-gl-G06>

完了したらコンピュータを再起動します。

Secureboot

openSUSE Leap 15.2 では SecureBoot 機能が有効化されている場合、署名のされていないカーネルモジュールを読み込むことができなくなっています。

そのため、 SecureBoot 機能が有効化されているシステムに NVIDIA ドライバをインストールする場合、 MOK 鍵対が作成され、その鍵を利用してカーネルモジュールに署名が設定されるようになっています。作成された証明書 (公開鍵) はお使いのシステム内の /var/lib/nvidia-pubkeys 内に保管されますが、 MOK 公開鍵の一覧に取り込むこともできます。

インストール後の初回の再起動であれば、 MOK データベース内に取り込むのは簡単です。 EFI ツールがそれを検出して自動的に開始されるためです。ツールが表示されたら、 "Enroll MOK", "Continue", "Yes" の順に選択していってください。このとき、 root のパスワードを入力する必要があります (ただしキーボード配列がアメリカ英語になっていることに注意) 。これで MOK データベース内に証明書が取り込まれますので、この鍵で署名されたカーネルモジュールは正しく読み込まれるようになります。あとは "Reboot" を選択してください。

Nvidia-secureboot-enrollKey.jpg

初回の再起動時に鍵の取り込みを行なわなかった場合でも、下記のコマンドを実行することで鍵の取り込みを行なうことができます:

# mokutil --import /var/lib/nvidia-pubkeys/MOK-nvidia-gfxG0<X>-<ドライババージョン>-<カーネル種別>.der --root-pw

あとはマシンを再起動すると EFI ツールが開始されますので、上述の手順のとおりに作業を行なってください。

ドライバ更新

ドライバ更新を使用する場合、登録されている古い公開鍵や使用されていない公開鍵を MOK データベースから削除する必要があるかもしれません。そのため、 EFI ツールのメニューには "Enroll MOK" (MOK の登録) のほかに "Delete MOK" (MOK の削除) という項目が用意されています。 MOK データベースから鍵の削除を行なうにには、 "Delete MOK", "Continue", "Yes" の順に選択していってください。このとき、鍵を登録した際と同様に root のパスワードを入力する必要があります (ただしキーボード配列がアメリカ英語になっていることに注意) 。また、 "View Key X" の項目を選択すると証明書と公開鍵の説明を表示することができます。これにより誤って必要な鍵を削除しないようにしてください。その画面からは何かキーを押すことで戻ることができます。

Nvidia-secureboot-deleteKey.jpg

NVIDIA ドライバのアンインストール

YaST

  1. YaST を起動して "ソフトウエア" -> "ソフトウエア管理" を選択します。
  2. '表示' でリポジトリを選択します。
  3. NVIDIAリポジトリを選択します。
  4. このリポジトリからインストールしたパッケージを全て削除するよう選択して、 '了解' を押します。矛盾に関するメッセージが表示された場合は、無視して続行してください。
  5. 再度 YaST から "ソフトウエア" -> "ソフトウエアリポジトリ" を選択します。
  6. NVIDIAリポジトリを選択して '無効' にします。このとき、削除を行なってしまうと、再度有効化する場合に面倒になってしまいます。

NVIDIA ドライバをアンインストールすると、インストール前に /etc/X11/xorg.conf ファイルが存在していた場合は、そのファイルが元に戻ります。インストール前とハードウエアが異なるような場合は、必要に応じて修正してください。

Zypper

 # zypper rm <x11-video-nvidiaG04 もしくは x11-video-nvidiaG05>

上記ではドライバパッケージのみを削除します。それ以外のパッケージも表示したい場合は、下記のように入力して実行します:

 # zypper se -ir NVIDIA

もしくは、下記のように実行してもかまいません:

 # zypper lr
 # zypper se -ir <リポジトリ番号>

パッケージをアンインストールしたら、下記を実行する必要があるでしょう:

 # mkinitrd

トラブルシューティング

参照

外部リンク