Posted at

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 |
+-----------------------------------------------------------------------------+