Lubuntu 16.04 カーネル更新時の Nvidia ドライバ更新手順!

マイニングマシンとして Linux 端末に 4 枚ほど GT1030 を挿して省エネマイニングをしています。Nvidia のドライバは利用カーネルに合わせてビルドする方式になっているため、カーネルを更新すると同時に Nvidia のドライバもリビルドする必要があるのでついでに最新ドライバにするようにしています。ただ、Nvidia のドライバのビルドは CLI モードじゃないと動作しないので X を利用している場合は一旦 runlevel 3 に落としてから作業する必要があります。何回かやっていて毎回忘れているので備忘録としてメモしておくことにします。

カーネルの更新

apt upgrade を実施した際に、以下のように linux-headers, linux-image, linux-image-extra などのパッケージが更新が含まれている場合、カーネルが更新されます。

$ sudo apt upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
以下のパッケージが新たにインストールされます:
  linux-headers-4.10.0-40 linux-headers-4.10.0-40-generic linux-image-4.10.0-40-generic
  linux-image-extra-4.10.0-40-generic
以下のパッケージはアップグレードされます:
  dnsmasq-base klibc-utils libdb5.3 libdb5.3++ libdb5.3++-dev libdb5.3-dev libklibc linux-generic-hwe-16.04
  linux-headers-generic-hwe-16.04 linux-image-generic-hwe-16.04
アップグレード: 10 個、新規インストール: 4 個、削除: 0 個、保留: 0 個。
64.5 MB のアーカイブを取得する必要があります。
この操作後に追加で 308 MB のディスク容量が消費されます。
続行しますか? [Y/n] y

ランレベル3に変更

次回起動時に、新しいカーネルイメージがロードされるので、再起動前に runlevel 3 にしておきます。このコマンドが新しくなっていて忘れてしまいます。。symlink 張り替えているだけみたいです。

$ sudo systemctl set-default multi-user.target

最新の Nvidia ドライバをダウンロード

次回起動時にすぐ作業できるように予め最新ドライバをダウンロードしておきます。ブラウザ利用できたほうが取得しやすいと思います。ダウンロードリンクは以下のような URL になるので wget などであとからダウンロードするもよしお好みで。
http://jp.download.nvidia.com/XFree86/Linux-x86_64/384.98/NVIDIA-Linux-x86_64-384.98.run

OS 再起動を実施(1回め)

$ sudo shutdown -r now

ランレベル3でドライバのビルド

ダウンロードしておいたバイナリを実行するだけです。

$ sudo bash ./NVIDIA-Linux-x86_64-384.98.run

ランレベル5に戻す

作業が完了したら再起動前にランレベルを元に戻しておきます。

$ sudo systemctl set-default graphical.target

不要ファイル削除

$ apt autoremove

OS 再起動を実施(2回目)

$ sudo shutdown -r now
スポンサーリンク