Fedora NVIDIA Proprietary Driver

はじめに

長いこと CentOS7 を使っていたためか,これまで NVIDIA の公式ページからドライバをダウンロードしてインストールしていた.Fedora を使い始めて設定を漁っていると RPM Fusion でこのプロプリエタリドライバを用意してくれていることが分かったので,これを導入する.

DNF で導入

NVIDIA ドライバをインストールする手段は3つ.今回は3番目で行く.

  1. 公式ページからドライバを DL してインストール
  2. ソフトウェアセンターからリポジトリを有効化して GUI からインストール
  3. /etc/yum.repos.d からリポジトリを有効化して dnf でインストール

リポジトリを有効化してアップデート.

$ cat /etc/yum.repos.d/rpmfusion-nonfree-nvidia-driver.repo 
[rpmfusion-nonfree-nvidia-driver]
name=RPM Fusion for Fedora $releasever - Nonfree - NVIDIA Driver
#baseurl=http://download1.rpmfusion.org/nonfree/fedora/nvidia-driver/$releasever/$basearch/
metalink=https://mirrors.rpmfusion.org/metalink?repo=nonfree-fedora-nvidia-driver-$releasever&arch=$basearch
enabled=1
type=rpm-md
gpgcheck=1
repo_gpgcheck=0
gpgkey=file:///usr/share/distribution-gpg-keys/rpmfusion/RPM-GPG-KEY-rpmfusion-nonfree-fedora-$releasever
skip_if_unavailable=True

$ sudo dnf update

カーネルモジュールをインストールして再起動する.

$ sudo dnf install akmod-nvidia
$ sudo reboot

再起動後,ログイン画面までは正常に起動できたが,ログイン後ブラックアウトしたので,もう一回再起動したら正常にログインできた.

ソフトウェアセンター使いたい人のための備忘

ソフトウェアセンターを使う場合は設定からリポジトリ有効化して,NVIDIA Linux Graphics Driver をインストールすれば OK.

akmod vs kmod

リポジトリ上には akmod と kmod の2種類がある.これらの違いについて日本語の情報がほぼなさそうなので,違いをメモしとく.

$ dnf search nvidia
=========================================================== 名前 & 概要 一致: nvidia ===========================================================
akmod-nvidia.x86_64 : Akmod package for nvidia kernel module(s)
akmod-nvidia-470xx.x86_64 : Akmod package for nvidia-470xx kernel module(s)
kmod-nvidia.x86_64 : Metapackage which tracks in nvidia kernel module for newest kernel
kmod-nvidia-470xx.x86_64 : Metapackage which tracks in nvidia-470xx kernel module for newest kernel
libva-nvidia-driver.i686 : A VA-API implemention using NVIDIA's NVDEC
libva-nvidia-driver.x86_64 : A VA-API implemention using NVIDIA's NVDEC
nvidia-gpu-firmware.noarch : Firmware for NVIDIA GPUs
nvidia-modprobe.x86_64 : Load the NVIDIA kernel module and create NVIDIA character device files
nvidia-query-resource-opengl.x86_64 : Querying OpenGL resource usage of applications using the NVIDIA OpenGL driver
nvidia-query-resource-opengl-lib.i686 : Library for nvidia-query-resource-opengl

$ dnf info akmod-nvidia kmod-nvidia
利用可能なパッケージ
名前         : akmod-nvidia
エポック     : 3
バージョン   : 545.29.06
リリース     : 1.fc39
Arch         : x86_64
サイズ       : 40 k
ソース       : nvidia-kmod-545.29.06-1.fc39.src.rpm
リポジトリー : rpmfusion-nonfree-nvidia-driver
概要         : Akmod package for nvidia kernel module(s)
URL          : https://www.nvidia.com/
ライセンス   : Redistributable, no modification permitted
説明         : This package provides the akmod package for the nvidia kernel modules.

名前         : kmod-nvidia
エポック     : 3
バージョン   : 545.29.06
リリース     : 1.fc39
Arch         : x86_64
サイズ       : 11 k
ソース       : nvidia-kmod-545.29.06-1.fc39.src.rpm
リポジトリー : rpmfusion-nonfree-nvidia-driver
概要         : Metapackage which tracks in nvidia kernel module for newest kernel
URL          : https://www.nvidia.com/
ライセンス   : Redistributable, no modification permitted
説明         : This is a meta-package without payload which sole purpose is to require the
             : nvidia kernel module(s) for the newest kernel,
             : to make sure you get it together with a new kernel.

RPM Fusion のページにはこんな説明が書いてある.

If a kmod is not found then akmods tries to rebuild kmod.srpms found in a certain place in the filesystem; if that works it will install the rebuilt kmod into the running kernel automatically.

https://rpmfusion.org/Packaging/KernelModules/Akmods

RPM Fusion ではコンパイル済みのカーネルモジュール(kmod)を提供しているが,カーネルをセルフビルドしたり,新しすぎるカーネルを使っていたりするとコンパイル済みのカーネルモジュールが利用できない.akmod では kmod を自動的にリビルドする.

なので,とりあえず akmod 入れとけば自動的にカーネルモジュールリビルドしてくれるので安牌.カーネルいじって遊ばなければ kmod でもいい.

おわりに

これで気兼ねなく dnf update できる.

2024/01/11 追記

nouveau は周期的なゆらぎがあるが,NVIDIA ドライバではきれいに描画できている.

コメント

タイトルとURLをコピーしました