広告 OS Ubuntu Debian

3 Ubuntu24.04.1LTSにnVidiaのドライバをInstallする

本ブログのUbuntu24.04.1の初期Install段階では、
「推奨するプロプライエタリなソフトウェアのインストール」ではチェックを入れずに「Next」としてください。
と推奨しています。実はこのビデオドライバが、うまく行く場合と行かない場合があるためなのです。
プロプライエタリでないドライバとしてはnouveauというドライバがインストールされます。一般的には問題なく使えるのですが、僕が使っているディスプレイ推奨リフレッシュレート60Hzなのに、nouveauドライバはリフレッシュレート30Hzまでしか対応しておらず、ディスプレイが時々ちらつくトラブルが発生しました。

そこで、nVidiaが提供するnon-freeのドライバをインストールしてみました。現時点では問題なく使えたので、この記事にnVidiaのドライバを導入する手順について説明します。

Nouveauドライバの無効化

NVIDIAのグラフィックカードの場合,デフォルトでnouveauというドライバが使用されています。

lsmod | grep -i nouveau

このコマンドで何も表示されなかった場合、すでにnouveauドライバは無効になっています。
次のnVidiaドライバのインストールに移動してください。

もし下記のような画面が表示されたらnouveauドライバが有効になっていす。

このドライバはNVIDIAのドライバと競合する恐れがあるので、先に無効化しておく必要があります。


まず、/etc/modprobe.d/blacklist-nouveau.confを作成します。下記ではviエディタを使用してます。
(viエディタの使い方については、別の記事を参照してください。)

sudo vi /etc/modprobe.d/blacklist-nouveau.conf

ファイルの中身は下記のようにしてください。

blacklist nouveau
options nouveau modeset=0

カーネルモジュールをblacklistに追加した後,再読み込みを実行します。

sudo update-initramfs -u

ここで再起動してください。再起動後にディスプレイ解像度が落ちることでNouveauが無効化されることが実感できます。
念の為に、コマンド(lsmod | grep -i nouveau)で、ドライバが動いてないか、確認した方が安心ですね。

nVidia製ドライバーのインストール

Ubuntuには「追加のドライバー」というアプレットが付属しています。これは「ソフトウェアのアップデート」の「追加のドライバー」カラムを開くアイコンとしても提供されています。これもうまく行かない場合があるようです。(誰か一度試してみてください。)
今回は無難にaptを用いた方法を説明します。

aptでnvidia-driverをインストール

Ubuntuの公式リポジトリにはnvidia-driverというパッケージが登録されています。現在、このパッケージはaptからもアクセスできます。

まずは以下のコマンドを入力。

sudo ubuntu-drivers devices

このコマンドの実行により、組み込まれているグラフィックボードを自動検知して最適なドライバーを探してきてくれます。

udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
== /sys/devices/pci0000:40/0000:40:01.3/0000:41:00.0 ==
modalias : pci:v000010DEd00001B06sv00001043sd000085EAbc03sc00i00
vendor   : NVIDIA Corporation
model    : GP102 [GeForce GTX 1080 Ti]
driver   : nvidia-driver-470 - distro non-free
driver   : nvidia-driver-535 - distro non-free
driver   : nvidia-driver-550 - distro non-free recommended
driver   : nvidia-driver-535-server - distro non-free
driver   : nvidia-driver-470-server - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

ここで注意するべきは、「Recommended」と表示されたバージョンの「-open」と書かれていないバージョンを選択する点です。

得られた情報をもとに、以下のコマンドを入力します。

sudo apt update
sudo apt install nvidia-driver-550

「nvidia-driver-550」は僕のグラフィックボードに適合する最新バージョンなので、異なる結果が表示されることがあります。適切なドライバの名称を入力してください。

パソコンを再起動する

ドライバーを適用させるため、ここで一旦再起動します。

サスペンドできるようにする

過去に、サスペンドモードが無効になっており、トラブルになった事例があったようです。

systemdのnvidia-suspend.service等のサービスの状態を確認する

以下のコマンドを入力します。

systemctl list-unit-files --type=service | grep -i nvidia

このコマンドはsystemdに登録されているサービスからnvidiaを含む行を絞ってリスト表示するものです。
下記のように表示されたら、問題ありません。

nvidia-hibernate.service                     enabled         enabled
nvidia-persistenced.service                  static          -
nvidia-resume.service                        enabled         enabled
nvidia-suspend.service                       enabled         enabled

もし、disabled と表示されたら、対応が必要です。

nvidia-hibernate.service      disabled
nvidia-resume.service         disabled
nvidia-suspend.service        disabled

この状態ではNVIDIA側が提供したサスペンド用スクリプトを利用できず、サスペンド状態から復帰ができません。

以下のコマンドを入力してこれらサービスを有効化します。

systemctl enable nvidia-hibernate.service nvidia-resume.service nvidia-suspend.service

正常に実行できたら、再び再起動します。

サスペンドを実行して確認

デスクトップ環境側のサスペンドボタンを使うのもありですが、ここでは以下のコマンドを入力します。

systemctl suspend

サスペンドモードから正常に復帰できたら完了です。

お疲れ様でした!

-OS Ubuntu Debian