本ブログの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
サスペンドモードから正常に復帰できたら完了です。
お疲れ様でした!