Ранее я установил CUDA 7.5 в Ubuntu 14.04, используя установку «deb (network)» из Nvidia. Он работал в течение нескольких месяцев, пока я не побежал сегодня. После этого я столкнулся со следующим
$ 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
ничем не отличается. Я не могу войти в режиме графического интерфейса пользователя (он просто возвращается к экрану входа после ввода пароля), но я могу получить доступ к терминалу.
Мне удалось восстановить графическую функциональность, однако после этого у меня возникают трудности с переустановкой 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-352
из репозиториев Nvidia. Однако теперь у меня нет возможности сделать это, потому что когда я запускаю 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.
У меня была подобная проблема. Смог решить это путем установки рекомендуемой версии драйвера Nvidia.
sudo apt-get install ubuntu-drivers-common
sudo ubuntu-drivers devices
sudo apt-get install <recommended version>