$ nvidia-smi Wed Nov 18 16:42:39 2020 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 440.33.01 Driver Version: 440.33.01 CUDA Version: 10.2 | 以下略
と表示されていたが、再起動後
$ nvidia-smi NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
となり、NVIDIA driverへ接続できなくなった。原因は、新しいLinuxのカーネル 5.4.0が勝手に?インストールされてしまい、起動時に最新のLinuxカーネルを使って起動したからのようだ。
今回の場合、Linux Kernel 5.4.0はNVIDIA Driver 440.33.01には対応していない。よって、解決方法としては
のどちらかである。新しいNVIDIA Driverをインストールできる自信もないし、どのバージョンが適切か即座に分からなかったので、今回はLinux Kernelを古い 5.3.0 へ戻すことにした。
起動時に紫色の画面になった瞬間にEsc
を押すと、GRUBの画面に行ける。Advanced options
を選択すると、インストールされている複数のLinuxカーネルから使うカーネルを選ぶことができる。
ここで、5.3.0-40-genericを選び起動すると、nvidia-smi
は成功した。
しかし、再起動するとLinuxカーネルバージョンは一番最新のものになってしまう。そこで、最後に起動したカーネルに固定するため、GRUBの設定ファイルを書き換えた。
この記事通りやればいいが、実際にやったのは下記の手順。
$ sudo pico /etc/default/grub
でGRUBの設定ファイルを開き、GRUB_DEFAULT
の値は書き換えて、GRUB_SAVEDEFAULT
を新しく追加する。
GRUB_DEFAULT=saved GRUB_SAVEDEFAULT="true"
最後にGRUBを更新すれば完了だ。
$ sudo update-grub
これで、手動でLinuxカーネルを別のものにしない限り、目的の5.3.0で起動されるだろう。
Linuxカーネルがサポートしているデバイスドライバーのバージョンは、刻々と変わる。古いドライバーはずっとは対応されないし、バグがあれば修正される。適切なLinuxカーネルを使うことが重要なようだ。