すんなりいかなかったので記事として残すことにしました。
nouveauの無効化
デフォルトでインストールされているNVIDIAのオープンソースなドライバ。
今回はプロプライエタリなNVIDIAのドライバとそれをインストールして使えるようになるツールでさっとデュアルディスプレイにしたかったので無効化します。
nouveauの存在を確認
$ sudo su -
$ lsmod | grep -l nouveau
/etc/modprobe.d/に.confファイルを作成しnouveauを無効にする設定を書く
blacklist nouveau
options nouveau modeset=0
blacklistに登録したのでブートイメージファイルに設定を反映させます。
$ update-initramfs -u
initramfsについてはAbout initramfs
Qiitaにある日本語で書かれた記事だとinitramfsについて - Qiitaがわかりやすかったです。
GPUのモデルと推奨されているドライバのバージョンを確認
自動でインストールしてくれるsudo ubuntu-drivers autoinstall
が失敗したので、推奨されているドライバーのバージョンを確認してインストールしていきます。
$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001C82sv00001043sd0000862Abc03sc00i00
vendor : NVIDIA Corporation
model : GP107 [GeForce GTX 1050 Ti]
driver : nvidia-driver-390 - distro non-free
driver : nvidia-driver-418 - third-party free recommended
driver : nvidia-driver-415 - third-party free
driver : nvidia-driver-396 - third-party free
driver : nvidia-driver-410 - third-party free
driver : xserver-xorg-video-nouveau - distro free builtin
今回は
driver : nvidia-driver-418 - third-party free recommended
nvidia-driver-418をインストールすることにしました。
PPAリポジトリからドライバーのインストール
公式のリポジトリではなくPPA(Personal Package Archive)からインストールします。
PPAという言葉の通り個人やコミュニティにより提供されるソースパッケージを扱うリポジトリなので動作保証や安全性の保証はなく自己責任です。
※参考
How to install the NVIDIA drivers on Ubuntu 18.04 Bionic Beaver Linux - LinuxConfig.org
Nvidiaドライバ(Version 410)の更新 Ubuntu18.04 - Kinaconの技術ブログ
$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt update
$ sudo apt install nvidia-driver-418
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。
というエラーメッセージが返ってきました。
aptitudeで壊れた変更禁止パッケージに対処する
aptitudeを使ってインストールしようとすると壊れたパッケージを修正するための改善案を提案してくれます。
ユースケースに応じてこの変更禁止の問題を無視しても問題ないか確認するようにしてください。
私はバックアップした後に、UbuntuをインストールしたPCにSteam game platformを導入するつもりがなかったこと、デュアルディスプレイ以外にグラフィックボードの使用用途がなかったことを理由に、ば変更禁止の問題を無視してaptitudeの提案を受け入れてインストールをすすめることにしました。
sudo apt install aptitude
sudo aptitude install nvidia-driver-418
インストール時にUEFIセキュアブートを有効にしているとインストール後にこのようなメッセージを返します。
指示に従って、パスワードの入力、sudo reboot、OSの起動前の選択肢のなかからEnroll MOKを選択、先のパスワードを入力、の順に行ってドライバーのインストールを完了します。
1度目、これを読まずにEnroll MOKを選ばず通常のbootをcontinueという選択肢を選んでnvidia-smi
と入力すると以下のようなエラーメッセージが返ってきてやり直しになりました。
$ nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.
Make sure that the latest NVIDIA driver is installed and running
UEFIセキュアブートを無効にする
セキュアブートは起動時にOSやドライバの署名をチェックしてくれる機能です。コンピュータのBIOS/UEFIのレベルでセキュアブートを有効にすると署名なしのドライバーをカーネルがロードしてくれません。
最後に、私はUbuntuとWindowsのデュアルブート構成ではないので無効にしました。セキュアブートに対応しているWindowsとのデュアルブート構成になっている場合は、ファームウェアごとに対処法が違うとのことなので適宜対応してください。
※参考
ubuntu16でNVIDIAのドライバインストールでハマった時 - Qiita
私の環境でのセキュアブートの無効化の方法
OS起動後BIOS画面に移動して、Advanced Mode > Secure Boot -> OS Type
Windows UEFI mode
からOther OS
に変更
nvidia-smiで確認
Sat Apr 13 14:52:00 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.56 Driver Version: 418.56 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 105... Off | 00000000:01:00.0 On | N/A |
| 30% 26C P8 N/A / 75W | 280MiB / 4036MiB | 16% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1000 G /usr/lib/xorg/Xorg 145MiB |
| 0 1262 G /usr/bin/gnome-shell 87MiB |
| 0 1869 G ...quest-channel-token=2493526721621155102 45MiB |
+-----------------------------------------------------------------------------+
最後に
適切でない表現やより良い解決の方法があるかと思います。その際はコメントでご指摘いただけるとありがたいです。