Проблеми з графічним драйвером Nvidia та CUDA після оновлення apt-get


9

Раніше я встановив CUDA 7.5 на Ubuntu 14.04 за допомогою установки "deb (network)" від Nvidia. Він працював кілька місяців, поки я не побіг 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.

Спроба перевстановити 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

Відповіді:


6

У мене була схожа проблема. Вдалося вирішити це, встановивши рекомендовану версію драйвера nvidia.

sudo apt-get install ubuntu-drivers-common

sudo ubuntu-drivers devices

sudo apt-get install <recommended version>

3
Мені довелося видавати команду "sudo modprobe nvidia" після вищезазначених команд, тоді вся справа працювала
БЕРЕЗЕНЬ

@MARK Я отримую помилку від modprobe: ПОМИЛКА: не вдалося вставити 'nvidia_396': Необхідний ключ недоступний. Якісь поради?
Ерін

4

Друг зміг вирішити це за мене!

Рішення, яке він мені показав, було (після видалення всіх пакетів nvidia, як і раніше)

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

тоді завантажте інсталятор.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.