Eu instalei anteriormente o CUDA 7.5 no Ubuntu 14.04 usando a instalação "deb (network)" da Nvidia. Ele funcionou por alguns meses, até que eu corri sudo apt-get upgrade
hoje. Depois de fazer isso, encontrei o seguinte
$ 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.
A execução de sudo nvidia-smi
não é diferente.
Não consigo fazer login no modo GUI (basta voltar à tela de login após inserir minha senha), mas posso acessar o terminal.
Eu consegui restaurar a funcionalidade gráfica, no entanto estou tendo dificuldade em reinstalar o CUDA depois disso. Você pode por favor me ajudar?
Restaurando gráficos
Descobri que posso fazer com que os gráficos funcionem novamente ao fazer
$ sudo apt-get remove --purge nvidia*
$ sudo apt-get autoremove
e, em seguida, editar /etc/apt/sources.list.d/cuda.list
para remover todas as linhas e, em seguida, fazer
$ sudo apt-get install nvidia-352
e reinicializando o sistema. Depois disso, nvidia-smi
está funcionando novamente. No entanto, ainda preciso reinstalar o CUDA.
Tentando reinstalar o CUDA
Eu tentei restaurar o conteúdo de /etc/apt/sources.list.d/cuda.list
e, em seguida, fazer sudo apt-get install cuda
.
Eu notei esta mensagem de erro:
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)
Depois de fazer isso, o sistema retorna ao seu comportamento no início.
Por exemplo, nvidia-smi
imprime a mensagem de erro acima e, após criar e executar deviceQuery
, recebo um erro semelhante:
./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
Eu pareço lembrar que quando instalei o CUDA pela primeira vez, ele só funcionaria se eu fizesse isso sem atualizar o pacote nvidia-352
dos repositórios da Nvidia.
No entanto, agora eu não pareço ter a opção de fazer isso, porque quando eu executo sudo apt-get install cuda
ele atualiza automaticamente o nvidia-352
package:
Unpacking nvidia-352 (352.93-0ubuntu1) over (352.63-0ubuntu0.14.04.1) ...
Se eu tentar definir as versões explicitamente, obtenho
$ 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.
De fato, se eu tentar usar a versão 352.63-0ubuntu1
em vez de 352.63-0ubuntu0.14.04.1
fazendo
$ sudo apt-get install nvidia-352=352.63-0ubuntu1
então isso é suficiente para quebrar o login gráfico e fazer com que nvidia-smi
exiba a mensagem de erro acima.
Diagnóstico
$ 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