Masalah dengan driver grafis Nvidia dan CUDA setelah upgrade apt-get

9

Saya sebelumnya menginstal CUDA 7.5 pada Ubuntu 14.04 menggunakan "deb (network)" install dari Nvidia. Itu telah bekerja selama beberapa bulan, sampai saya berlari sudo apt-get upgradehari ini. Setelah melakukan ini, saya menemui yang berikut

$ 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.

Berlari sudo nvidia-smitidak berbeda. Saya tidak dapat masuk dalam mode GUI (hanya kembali ke layar masuk setelah saya memasukkan kata sandi), tetapi saya dapat mengakses terminal.

Saya telah dapat mengembalikan fungsionalitas grafis, namun saya mengalami kesulitan menginstal ulang CUDA setelah itu. Bisakah kamu membantuku?

Memulihkan grafik

Saya telah menemukan bahwa saya dapat membuat grafik berfungsi lagi dengan melakukan

$ sudo apt-get remove --purge nvidia*
$ sudo apt-get autoremove

dan kemudian mengedit /etc/apt/sources.list.d/cuda.listuntuk menghapus semua baris, lalu lakukan

$ sudo apt-get install nvidia-352

dan me-reboot sistem. Setelah ini, nvidia-smibekerja kembali. Namun, saya masih perlu menginstal ulang CUDA.

Mencoba menginstal ulang CUDA

Saya mencoba mengembalikan konten /etc/apt/sources.list.d/cuda.listdan kemudian melakukan sudo apt-get install cuda. Saya perhatikan pesan kesalahan ini:

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)

Setelah melakukan ini, sistem dikembalikan ke perilakunya di awal. Misalnya, nvidia-smimencetak pesan kesalahan di atas, dan setelah membangun dan menjalankan deviceQuerysaya mendapatkan kesalahan yang sama:

./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

Sepertinya saya ingat bahwa ketika saya pertama kali menginstal CUDA, itu hanya akan berfungsi jika saya melakukannya tanpa memperbarui nvidia-352paket dari repositori Nvidia. Namun, sekarang saya tampaknya tidak memiliki opsi untuk melakukan itu, karena ketika saya menjalankannya sudo apt-get install cudasecara otomatis meningkatkan nvidia-352paket:

Unpacking nvidia-352 (352.93-0ubuntu1) over (352.63-0ubuntu0.14.04.1) ...

Jika saya mencoba mengatur versi secara eksplisit, saya mengerti

$ 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.

Bahkan, jika saya mencoba menggunakan versi 352.63-0ubuntu1alih-alih 352.63-0ubuntu0.14.04.1dengan melakukan

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

maka ini cukup untuk memecah login grafis dan menyebabkan nvidia-smiuntuk menampilkan pesan kesalahan di atas.

Diagnostik

$ 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
sumber

Jawaban:

6

Saya punya masalah serupa. Mampu menyelesaikan ini dengan menginstal versi nvidia driver yang direkomendasikan.

sudo apt-get install ubuntu-drivers-common

sudo ubuntu-drivers devices

sudo apt-get install <recommended version>
Prateek Dorwal
sumber
3
Saya harus mengeluarkan perintah "sudo modprobe nvidia" setelah perintah di atas maka semuanya bekerja
MARK
@MARK Saya mendapatkan kesalahan dengan modprobe: ERROR: tidak bisa memasukkan 'nvidia_396': Kunci yang diperlukan tidak tersedia. Ada tips?
Aerin
4

Seorang teman bisa menyelesaikannya untuk saya!

Solusi yang dia tunjukkan kepada saya adalah (setelah menghapus semua paket nvidia seperti sebelumnya)

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

kemudian unduh installer .run CUDA (bagi saya itu adalah cuda_7.5.18_linux.run) dari Nvidia dan berhati-hati untuk memilih "tidak" ketika ditanya apakah Anda ingin menginstal driver yang dikemas dengan CUDA.

pterojacktyl
sumber