以前に、Nvidiaからの「deb(ネットワーク)」インストールを使用して、Ubuntu 14.04にCUDA 7.5をインストールしました。 Sudo apt-get upgrade
を今日実行するまで、それは数ヶ月間機能していました。これを行った後、私は以下に遭遇しました
$ nvidia-smi
modprobe: ERROR: ../libkmod/libkmod-module.c:809 kmod_module_insert_module() could not find module by name='nvidia_352'
modprobe: ERROR: could not insert 'nvidia_352': Function not implemented
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
Sudo nvidia-smi
を実行しても同じです。 GUIモードでログインできません(パスワードを入力するとログイン画面に戻ります)が、ターミナルにアクセスできます。
グラフィカル機能を復元することができましたが、その後CUDAを再インストールするのが困難です。手伝ってもらえますか?
を実行することで、グラフィックを再び機能させることができることがわかりました
$ Sudo apt-get remove --purge nvidia*
$ Sudo apt-get autoremove
そして/etc/apt/sources.list.d/cuda.list
を編集してすべての行を削除してから、
$ Sudo apt-get install nvidia-352
システムを再起動します。この後、nvidia-smi
は再び機能します。ただし、CUDAを再インストールする必要があります。
/etc/apt/sources.list.d/cuda.list
の内容を復元してからSudo apt-get install cuda
を実行しようとしました。このエラーメッセージに気付きました。
Loading new nvidia-352-352.93 DKMS files...
Building only for 3.13.0-68-generic
Building for architecture x86_64
Building initial module for 3.13.0-68-generic
ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/nvidia-352.0.crash'
Error! Bad return status for module build on kernel: 3.13.0-68-generic (x86_64)
これを実行すると、システムは最初の動作に戻ります。たとえば、nvidia-smi
は上記のエラーメッセージを出力し、deviceQuery
をビルドして実行した後、同様のエラーが表示されます。
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
modprobe: ERROR: ../libkmod/libkmod-module.c:809 kmod_module_insert_module() could not find module by name='nvidia_352'
modprobe: ERROR: could not insert 'nvidia_352': Function not implemented
cudaGetDeviceCount returned 38
-> no CUDA-capable device is detected
Result = FAIL
CUDAを最初にインストールしたとき、Nvidiaリポジトリからnvidia-352
パッケージを更新せずにCUDAをインストールした場合にのみ機能することを思い出すようです。ただし、Sudo apt-get install cuda
を実行するとnvidia-352
パッケージが自動的にアップグレードされるため、これを行うオプションがないようです。
Unpacking nvidia-352 (352.93-0ubuntu1) over (352.63-0ubuntu0.14.04.1) ...
バージョンを明示的に設定しようとすると、
$ Sudo apt-get install cuda-drivers nvidia-352=352.63-0ubuntu0.14.04.1 nvidia-352-dev=352.63-0ubuntu0.14.04.1
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies.
cuda-drivers : Depends: nvidia-352 (>= 352.93) but 352.63-0ubuntu0.14.04.1 is to be installed
Depends: nvidia-352-dev (>= 352.93) but 352.63-0ubuntu0.14.04.1 is to be installed
E: Unable to correct problems, you have held broken packages.
実際、次のようにして352.63-0ubuntu1
の代わりにバージョン352.63-0ubuntu0.14.04.1
を使用しようとすると
$ Sudo apt-get install nvidia-352=352.63-0ubuntu1
これでグラフィカルログインが中断され、nvidia-smi
に上記のエラーメッセージが表示されるようになります。
$ lspci | grep -i vga
01:00.0 VGA compatible controller: NVIDIA Corporation GM200 [GeForce GTX TITAN X] (rev a1)
$ dpkg -l | grep -i nvidia
ii bbswitch-dkms 0.7-2ubuntu1 AMD64 Interface for toggling the power on nVidia Optimus video cards
ii libcuda1-352 352.93-0ubuntu1 AMD64 NVIDIA CUDA runtime library
ii nvidia-352 352.93-0ubuntu1 AMD64 NVIDIA binary driver - version 352.93
ii nvidia-352-dev 352.93-0ubuntu1 AMD64 NVIDIA binary Xorg driver development files
ii nvidia-352-uvm 352.93-0ubuntu1 AMD64 Transitional package for nvidia-352
ii nvidia-modprobe 352.93-0ubuntu1 AMD64 Load the NVIDIA kernel driver and create device files
ii nvidia-opencl-icd-352 352.93-0ubuntu1 AMD64 NVIDIA OpenCL ICD
ii nvidia-prime 0.6.2 AMD64 Tools to enable NVIDIA's Prime
ii nvidia-settings 352.93-0ubuntu1 AMD64 Tool for configuring the NVIDIA graphics driver
友人は私のためにそれを解決することができました!
彼が私に示した解決策は、(以前のようにすべてのnvidiaパッケージを削除した後)でした
$ Sudo add-apt-repository ppa:graphics-drivers/ppa
$ Sudo apt-get install nvidia-364
次に、.run CUDAインストーラー(私にとってはcuda_7.5.18_linux.run)をNvidiaからダウンロードし、CUDAにパッケージ化されたドライバーをインストールするかどうかを尋ねられたときに「no」を選択するよう注意してください。
同様の問題がありました。推奨バージョンのnvidiaドライバーをインストールすることで、これを解決できました。
Sudo apt-get install ubuntu-drivers-common
Sudo ubuntu-drivers devices
Sudo apt-get install <recommended version>