Problemy ze sterownikiem graficznym Nvidia i CUDA po aktualizacji apt-get

9

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 upgradedzisiaj. 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-sminie 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.listaby usunąć wszystkie linie, a następnie zrobienie

$ sudo apt-get install nvidia-352

i ponowne uruchomienie systemu. Po tym nvidia-smiznowu 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.lista 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-smidrukuje powyższy komunikat o błędzie, a po zbudowaniu i uruchomieniu deviceQuerypojawia 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-352pakietu z repozytoriów Nvidii. Jednak teraz nie wydaje mi się to możliwe, ponieważ po uruchomieniu sudo apt-get install cudaautomatycznie aktualizuje nvidia-352pakiet:

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-0ubuntu1zamiast 352.63-0ubuntu0.14.04.1tego

$ sudo apt-get install nvidia-352=352.63-0ubuntu1

to wystarczy, aby przerwać logowanie graficzne i spowodować nvidia-smiwyś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
pterojacktyl
źródło

Odpowiedzi:

6

Miałem podobny problem. Był w stanie rozwiązać ten problem, instalując zalecaną wersję sterownika NVIDIA.

sudo apt-get install ubuntu-drivers-common

sudo ubuntu-drivers devices

sudo apt-get install <recommended version>
Prateek Dorwal
źródło
3
Musiałem wydać polecenie „sudo modprobe nvidia” po powyższych poleceniach, wtedy wszystko działało
MAREK
@MARK Otrzymuję błąd przez modprobe: BŁĄD: nie można wstawić „nvidia_396”: Wymagany klucz jest niedostępny. Jakieś wskazówki?
Aerin
4

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)

$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt-get install nvidia-364

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.

pterojacktyl
źródło