Linux
GPU

Ubuntuでログインループに陥った時の対処

解像度が急におかしくなり、かつUbuntuにログインできなくなってしまいました。具体的な症状としては、ログインしてもまたログインページに戻るという症状。調べたところ皆さんよく遭遇しているそうで、原因はほとんどがNvidiaのドライバーの不適合だそうです。基本的にはドライバーを再インストールすれば治るのですが、私の環境ではapt-getのインストールではデバイスがドライバを認識してくれませんでした。また、最新のドライバーでは治らず、古いドライバーをインストールすることで治りましたので、やったことのメモ。

0. 準備

PCに装着されているグラフィックカードの種類を調べておく。後ほどどラーバをダウンロードする際に必要になる。

dpkg -l | grep nvidia

1. ドライバをダウンロード

Nvidiaのサイトから旧バージョンのドライバーをダウンロード

https://www.nvidia.co.jp/Download/Find.aspx?lang=jp

2. パーミッション変更

適当なフォルダーに格納し、ダウンロードした .run (私の場合はNVIDIA-Linux-x86_64-384.90.run)をchmodで755にパーミッション設定.

sudo chmod 755 NVIDIA-Linux-x86_64-384.90.run

3. CUI切り替え

ctrl + alt + F1でGUIからCUIに切り替え

4. 現在インストールされているドライバーを削除

ドライバーを重複してインストールすると競合して不具合が起きる可能性があるため、現在インストールされているドライバは削除する

sudo apt-get --purge remove nvidia-*

5. ドライバーに必要なパッケージを事前にインストールしておく

私の場合、linux-headers-3.13.0-153-genericが無いと怒られたので、事前にインストールしておく

sudo apt-get install -y linux-headers-`uname -r`

6. ドライバーをインストール

先ほどダウンロードしたドライーバーをインストールする。その際、openglはインストールしない(openglが原因で起動しないケースがあるらしいので)
青い画面が立ち上がる。エラーが出ない限り、インストール続行で進めていくとドライバーがインストールされる。

sudo ./NVIDIA-Linux-x86_64-384.90.run --no-opengl-files

7. ドライバーが正しくインストールされたか確認する

書き込コマンドを打って、情報が表示されればインストールOK.

linux-headers-3.13.0-153-generic

Mon Sep 10 20:50:48 2018       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.90                 Driver Version: 384.90                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Quadro M5000        Off  | 00000000:02:00.0  On |                  Off |
| 38%   36C    P8    14W / 150W |    144MiB /  8118MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1779      G   /usr/bin/X                                   142MiB |
+-----------------------------------------------------------------------------+