Ubuntu16.04 GUI復活までの道のり
環境
OS: Ubuntu16.04
CPU: Xeon
GPU: GTX1080Ti✖️2
NVIDIAドライバ: 430
結論を先に言うと
NVIDIAドライバをaptで入れるのではなく、nvidia.comからGPUで検索し、.runファイルをダウンロード・インストールする
あらまし
5月に14.04から16.04アップデートした。
すんなりとアップデートがいったわけではなかったが、カーネルを変更するなどして普通に使っていた。しかし、それからしばらく経ってから何かの拍子でNVIDIAドライバまたはCUDAのバージョンが変わってしまったらしく、nvidia-smi
が実行できない状態に陥った.
さらに、nvidia-dockerで使いたいcudaに対して、ドライバのバージョンが満たされていない状態だった。そこで、apt remove nvidia-*
で一度nvidiaドライバを削除したのちapt install nvidia-430
で再びNVIDIAドライバを入れた。しかしここで、デスクトップ画面が正常に表示されない(画面左上で_が点滅)状況に陥った。ただし、ssh接続ののちnvidia-smi
は実行されると言う不思議なことがおこった。
ここで、GUIソフトウェアの問題、もしくはcudaのせいかと思い、色々とXorgなどのコンフィグをいじったり、cudaを削除しようとするのだがうまくいかない。
最終的には、NVIDIAドライバをapt
で入れるのではなく、nvidia.comからGPUで検索し、.run
ファイルをダウンロード・インストールするとGUIが復帰した。
aptでインストールした時とrunファイルでインストールした時で、430.**
の**のバージョンが異なっていた。同じ430系でもaptとrunファイルでは異なるバージョンとなるようだ。
作業手順
NVIDIAドライバとCUDAを削除する
$ sudo apt-get --purge remove nvidia-*
$ sudo apt-get --purge remove cuda-*
NVIDIAドライバのダウンロード
NVIDIAのドライバダウンロードから該当するGPUのドライバを検索し、リンクを取得しwgetでダウンロードする
$ wget [リンクURL]
例えばこんな感じ
$ wget http://jp.download.nvidia.com/XFree86/Linux-x86_64/430.34/NVIDIA-Linux-x86_64-430.34.run
blacklist-nouveau.confの確認
blacklist-nouveau.confを以下のようにする
$ cat /etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
options nouveau modeset=0
ドライバのインストール
$ chmod +x NVIDIA-Linux-x86_64-430.34.run
$ sudo service lightdm stop
$ sudo service gdm stop
$ sudo ./NVIDIA-Linux-x86_64-430.34.run
なおこの時、"The distribution-provided pre-install script failed! Are you sure you want to continue?"
のメッセージが出てきたが、インストールはコンティニューした。その後もWould you like to register the kernel module sources with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later.
などいくつかYes or Noを選択する項目があるので、選んでいく。
リブート
$ sudo reboot