備忘録:UbuntuへのNVIDIAドライバのインストール
今回は昨今話題のNVIDIAのドライバのインストールについての備忘録である. 時間がほぼ1日溶けたので書かずにはいられなかった.
概要
NVIDIAを搭載した高スペックPCにUbuntuをインストールして諸々機械学習を試したい場合,おそらく本記事が参考になる. 以前にどうにかしてUbuntuをインストールしNVIDIAドライバもインストールした状態のPCで YOLOを試そうと思い,セットアップをした時に本問題が起こった. YOLOの設定手順の中にはCUDAをインストールする手順があるが,このCUDAのインストールによってNVIDIAドライバが置き換えられてしまい PCがおかしくなってしまったのである.
本記事では,NVIDIA搭載のパソコンにUbuntuをインストールした後,無事にNVIDIAドライバをインストールする手順を記す. なお,Ubuntuは18.04LTS(bionic)を対象とする.
環境
- NVIDIA搭載高スペックPC ( Windowsインストール済,Ubuntuをデュアルブートさせる )
- Ubuntu 18.04 LTS ( OS )
Ubuntuのインストール
インストールのための領域はWindowsにログインし事前に用意しておく. USBメディアの作成などインストールには以下のリンクが参考になった.
Windows10とUbuntu18.04をデュアルブートする。
なお,SSDを搭載している場合にSSDの領域にインストールしたい場合はUbuntuをUSBからブートしてインストールする前に以下の手順をBIOSにて実施しておく.
- RAID=>AHCIにする
- セキュアブートをオフにする
Ubuntuのインストール後の現象の確認
BIOSからUSBブートを選択してUbuntuをUSBブートし,インストールを実施した後,再起動する.この時再起動ボタンをクリックしたあとPCがフリーズするが 気にせずに電源ボタン長押しで強制シャットダウンする. その後,USBを抜き,再度電源をONにし,ブートメニューからUbuntuを選択する.
さて,この時点でUbuntuが起動しない,もしくはログイン画面をクリアしても画面が真っ暗,そのうちにPCが猛烈なファンの音を回して電源が落ちる, といった現象が見られる.
原因
調べてみるとこれはNVIDIAのドライバが原因であることが分かる.
Fixing Ubuntu Freezing at Boot Time
上記手順を参考にNVIDIAのドライバを無効にする.
リカバリーモードでUbuntuを起動
再度電源をオンにし,以下の手順を実施する.
- ブートメニューから(Advanced Option for Ubuntu)を選択
- リカバリーモードを選択
- メニュー画面からrootを選択し,シェル上でgrubのパラメータを修正しPCを再起動
root# cd /etc/default
root# cp -p grub grub.org
root# vi grub
--> 以下のパラメータを修正
Before :
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
After :
GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"
# grubの更新
root# update-grub
# 再起動
root# reboot
NVIDIAドライバのインストール
ここまでの手順を実施すると,ログイン画面が表示されるが,画質がとても粗くなっているはず. これは,さきほどのgrubのパラメータの修正により,グラフィックスの描画にNVIDIAを使用していないことに起因している. ひとまずこのままログインし,GUI画面を進めてセットアップを完了させる.
その後,インターネットに接続し 以下のコマンドによりNVIDIAドライバをインストールする.
user$ sudo apt update
user$ sudo apt upgrade
user$ sudo ubuntu-drivers autoinstall
インストール完了後,先の手順で修正したgrubファイルを元に戻して再起動する. なお,この時点ではNVIDIAコマンドを打っても情報は出ない.
nvidia-detector devices
--> none
nvidia-smi
--> not displayed
# grubファイルを元に戻して再起動
root# sudo su -
root# cd /etc/default
root# cp -p grub.org grub
root# update-grub
root# reboot
再起動後,ログイン画面が粗くなくなっていることを確認しログインする. この時PCの挙動が不安定だったりするが,何回か再起動を試みると良い.
ログイン後,以下のコマンドを実施し,ドライバが無事にインストールされていることを確認する.
nvidia-detector devices
--> none
nvidia-smi
Tue Sep 3 22:07:55 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.26 Driver Version: 430.26 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| 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 1060 Off | 00000000:01:00.0 Off | N/A |
| N/A 41C P8 3W / N/A | 168MiB / 6078MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1534 G /usr/lib/xorg/Xorg 95MiB |
| 0 1665 G /usr/bin/gnome-shell 70MiB |
+-----------------------------------------------------------------------------+
最後に
NVIDIAドライバのインストールには他にも色々なやり方があるが(おまけ参照),自分が試したところうまくいかなかった. 上記のやり方でさえ,1度目はNVIDIAドライバのインストールと引き換えに,再起動したらWifiアダプタが消えているといった現象が起き 再度同じ手順を繰り返した問題なくWifiアダプタが表示されるという,正直よくわからない挙動を示した. Ubuntuのインストールやセットアップ,ソフトウェアのアップグレードやNVIDIAドライバのインストールには時間がかかるため 本記事を参考にして少しでも時間短縮していただければ幸いである.
おまけ
NVIDIAドライバのインストール方法に関して
他にも下記のようなインストール方法があったが,上手くいかなかったので上記のやり方がおすすめ.
# この手順では上手くインストールできなかった. 原因は不明
user$ nvidia-detector devices
--> none
user$ sudo add-apt-repository ppa:graphics-drivers/ppa
user$ sudo apt update
user$ nvidia-drivers devices
--> check available version
user$ sudo apt install nvidia-driver-430
user$ sudo reboot
NVIDIAドライバのインストール後,Wifiアダプタが消える現象
NVIDIAドライバが無事にインストールされたと思ったらWifiアダプタが認識されていないといった事態に遭遇した. lspciの結果にもWifiアダプタの情報は記載されていなかった. 原因は不明だが再度,Ubuntuのインストールから手順を再実施したところWifiアダプタが認識された.