Trước đây tôi đã cài đặt CUDA 7.5 trên Ubuntu 14.04 bằng cách sử dụng cài đặt "deb (mạng)" từ Nvidia. Nó đã làm việc được vài tháng, cho đến khi tôi chạy sudo apt-get upgrade
hôm nay. Sau khi làm điều này, tôi gặp phải những điều sau đây
$ 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.
Chạy sudo nvidia-smi
cũng không khác. Tôi không thể đăng nhập ở chế độ GUI (nó chỉ quay lại màn hình đăng nhập sau khi tôi nhập mật khẩu), nhưng tôi có thể truy cập vào thiết bị đầu cuối.
Tôi đã có thể khôi phục chức năng đồ họa, tuy nhiên tôi gặp khó khăn khi cài đặt lại CUDA sau đó. Bạn có thể giúp tôi không?
Khôi phục đồ họa
Tôi đã thấy rằng tôi có thể làm cho đồ họa hoạt động trở lại bằng cách làm
$ sudo apt-get remove --purge nvidia*
$ sudo apt-get autoremove
và sau đó chỉnh sửa /etc/apt/sources.list.d/cuda.list
để xóa tất cả các dòng, sau đó thực hiện
$ sudo apt-get install nvidia-352
và khởi động lại hệ thống. Sau này, nvidia-smi
đang làm việc trở lại. Tuy nhiên, tôi vẫn cần cài đặt lại CUDA.
Đang cố gắng cài đặt lại CUDA
Tôi đã cố gắng khôi phục lại nội dung /etc/apt/sources.list.d/cuda.list
và sau đó làm sudo apt-get install cuda
. Tôi nhận thấy thông báo lỗi này:
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)
Sau khi làm điều này, hệ thống được trả lại hành vi của nó khi bắt đầu. Ví dụ: nvidia-smi
in thông báo lỗi ở trên và sau khi xây dựng và chạy, deviceQuery
tôi gặp một lỗi tương tự:
./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
Tôi dường như nhớ lại rằng khi tôi cài đặt CUDA lần đầu tiên, nó sẽ chỉ hoạt động nếu tôi làm điều đó mà không cập nhật nvidia-352
gói từ kho lưu trữ của Nvidia. Tuy nhiên, bây giờ tôi dường như không có tùy chọn để làm điều đó, bởi vì khi tôi chạy, sudo apt-get install cuda
nó sẽ tự động nâng cấp nvidia-352
gói:
Unpacking nvidia-352 (352.93-0ubuntu1) over (352.63-0ubuntu0.14.04.1) ...
Nếu tôi cố gắng thiết lập các phiên bản một cách rõ ràng, tôi sẽ nhận được
$ 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.
Trong thực tế, nếu tôi cố gắng sử dụng phiên bản 352.63-0ubuntu1
thay vì 352.63-0ubuntu0.14.04.1
làm
$ sudo apt-get install nvidia-352=352.63-0ubuntu1
sau đó điều này là đủ để phá vỡ đăng nhập đồ họa và gây ra nvidia-smi
để hiển thị thông báo lỗi ở trên.
Chẩn đoán
$ 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