Wcześniej instalowałem CUDA 7.5 na Ubuntu 14.04, używając instalacji „deb (sieć)” z Nvidii. Działało przez kilka miesięcy, aż do sudo apt-get upgrade
dzisiaj. Po wykonaniu tego napotkałem następujące kwestie
$ 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.
Bieganie sudo nvidia-smi
nie jest inne. Nie mogę się zalogować w trybie GUI (po wprowadzeniu hasła wraca do ekranu logowania), ale mogę uzyskać dostęp do terminala.
Udało mi się przywrócić funkcjonalność graficzną, jednak później mam problem z ponownym zainstalowaniem CUDA. Możesz mi pomóc?
Przywracanie grafiki
Przekonałem się, że mogę ponownie uruchomić grafikę
$ sudo apt-get remove --purge nvidia*
$ sudo apt-get autoremove
a następnie edycja, /etc/apt/sources.list.d/cuda.list
aby usunąć wszystkie linie, a następnie zrobienie
$ sudo apt-get install nvidia-352
i ponowne uruchomienie systemu. Po tym nvidia-smi
znowu działa. Jednak nadal muszę ponownie zainstalować CUDA.
Próbuję ponownie zainstalować CUDA
Próbowałem przywrócić zawartość, /etc/apt/sources.list.d/cuda.list
a następnie zrobić sudo apt-get install cuda
. Zauważyłem ten komunikat o błędzie:
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)
Po wykonaniu tej czynności system powraca do pierwotnego zachowania. Na przykład nvidia-smi
drukuje powyższy komunikat o błędzie, a po zbudowaniu i uruchomieniu deviceQuery
pojawia się podobny błąd:
./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
Wydaje mi się, że pamiętam, że kiedy po raz pierwszy zainstalowałem CUDA, działałoby to tylko wtedy, gdy zrobiłbym to bez aktualizacji nvidia-352
pakietu z repozytoriów Nvidii. Jednak teraz nie wydaje mi się to możliwe, ponieważ po uruchomieniu sudo apt-get install cuda
automatycznie aktualizuje nvidia-352
pakiet:
Unpacking nvidia-352 (352.93-0ubuntu1) over (352.63-0ubuntu0.14.04.1) ...
Jeśli spróbuję jawnie ustawić wersje, otrzymam
$ 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.
W rzeczywistości, jeśli spróbuję użyć wersji 352.63-0ubuntu1
zamiast 352.63-0ubuntu0.14.04.1
tego
$ sudo apt-get install nvidia-352=352.63-0ubuntu1
to wystarczy, aby przerwać logowanie graficzne i spowodować nvidia-smi
wyświetlenie powyższego komunikatu o błędzie.
Diagnostyka
$ 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
Znajomy był w stanie rozwiązać to dla mnie!
Rozwiązaniem, które mi pokazał, było (po usunięciu wszystkich pakietów nvidii jak poprzednio)
następnie pobierz instalator .run CUDA (dla mnie był to cuda_7.5.18_linux.run) z Nvidii i uważaj, aby wybrać „nie”, gdy zostaniesz zapytany, czy chcesz zainstalować sterownik dostarczony z CUDA.
źródło