![실패한 Nvidia 드라이버 로딩을 복구하는 방법은 무엇입니까?](https://linux55.com/image/157318/%EC%8B%A4%ED%8C%A8%ED%95%9C%20Nvidia%20%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B2%84%20%EB%A1%9C%EB%94%A9%EC%9D%84%20%EB%B3%B5%EA%B5%AC%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
독점 Nvidia 드라이버가 설치된 서버(Debian 9 Stretch 실행)가 있습니다. 과학 컴퓨팅에는 머리가 없습니다.
따라서 CUDA를 사용하기 위해 Nvidia 드라이버를 설치하게 됩니다(Nvidia 홈페이지에서 다운로드한 패키지 파일을 이용하여 CUDA를 설치하는 중 cuda_10.0.130_410.48_linux.run
). 예전에는 잘 작동했어요.
이틀 전에 하이퍼스레딩을 비활성화하기 위해 시스템을 BIOS로 재부팅했습니다. 재부팅 후 Nvidia 드라이버가 로드되지 않습니다. 시스템을 여러 번 다시 시작해도 여전히 같은 문제가 발생합니다.
어떻게 다시 가져올 수 있나요?
다음은 참고할 수 있는 몇 가지 정보입니다.
# lspci -v|grep VGA
05:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 6G
B] (rev a1) (prog-if 00 [VGA controller])
# nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Ma
ke sure that the latest NVIDIA driver is installed and running.
# modprobe nvidia
modprobe: FATAL: Module nvidia not found in directory /lib/modules/4.9.0-9-amd64
# nvidia-settings
ERROR: libgtk-3.so.0: cannot open shared object file: No such file or directory
libnvidia-gtk3.so: cannot open shared object file: No such file or
directory
libgtk-x11-2.0.so.0: cannot open shared object file: No such file or
directory
libnvidia-gtk2.so: cannot open shared object file: No such file or
directory
ERROR: A problem occured when loading the GUI library. Please check your
installation and library path. You may need to specify this library when
calling nvidia-settings. Please run `nvidia-settings --help` for usage
information.
답변1
이 경우 Nvidia 웹사이트에 제공된 스크립트에서 Nvidia 독점 드라이버를 설치해서는 안 됩니다. 당신은프랑켄데비안당신이 그것을 깨뜨 렸습니다.
데비안에 필요한 패키지를 설치하고 GPU의 CUDA 기능을 사용하는 가장 쉽고 안전한 방법은 리포지토리의 공식 독점 드라이버와 Nvidia 툴킷을 contrib
사용 하는 것입니다.non-free
최신 버전을 얻을 수 없기 때문에 이것은 큰 단점처럼 보입니다. (그러나 다음을 사용하여 얻을 수 있습니다.)backports
저장소), 그러나 CUDA의 경우, 특히 헤드리스 서버에서는 의미가 있습니다.
따라서 서버를 백업하고 실행하려면(더 안정적인 것은 말할 것도 없고) Nvidia 웹사이트에서 이전에 설치한 드라이버를 제거하고 Nvidia 드라이버와 CUDA 툴킷이 패키지된 데비안 커뮤니티 패키지를 설치하는 것이 좋습니다.
1) 이전 드라이버, CUDA 및 기타 연결된 Nvidia 패키지를 제거합니다.
# apt purge nvidia-*
2) Debian 저장소를 시스템에 추가합니다 contrib
(아직 수행하지 않은 경우). 다음과 같아야 합니다.non-free
/etc/apt/sources.list
deb http://deb.debian.org/debian stretch main contrib non-free deb-src
http://deb.debian.org/debian stretch main contrib non-free
deb http://deb.debian.org/debian-security/ stretch/updates main contrib non-free
deb-src http://deb.debian.org/debian-security/ strech/updates main contrib non-free
deb http://deb.debian.org/debian stretch-updates main contrib non-free
deb-src http://deb.debian.org/debian stretch-updates main contrib non-free
저장소를 원하면 backports
나머지 뒤에 다음을 추가하세요.
deb http://deb.debian.org/debian stretch-backports main contrib non-free
deb-src http://deb.debian.org/debian stretch-backports main contrib non-free
3) apt
캐시 업데이트:
# apt update
4) Nvidia 독점 드라이버(및 커널 헤더 파일)를 설치합니다.
# apt install linux-headers-$(uname -r|sed 's/[^-]*-[^-]*-//') nvidia-driver
최신 버전을 원하고 backports
저장소의 버전(현재 버전은 각각 375.66 및 390.48)을 사용하려는 경우,이전 명령 대신 이 명령을 사용하십시오.:
# apt-get install -t stretch-backports nvidia-driver
5) CUDA 툴킷을 설치합니다:
# apt-get install nvidia-cuda-dev nvidia-cuda-toolkit
이는 CUDA 8에서만 지원되며 gcc 5.3.1
컴파일 하려면 명령줄 에 stretch
추가해야 합니다 .-ccbin clang-3.8
nvcc
CUDA 9를 사용하려면 backports
설치하기 전에 했던 것처럼 저장소의 버전을 사용할 수 있습니다 nvidia-driver
.
# apt-get install -t stretch-backports nvidia-cuda-dev nvidia-cuda-toolkit
무엇이 사용되었는지 보려면 변경 로그를 확인하는 것이 좋습니다 backports
.
6) 기계를 다시 시작하십시오
이 시점에서는 눈에 띄는 성능 영향 없이 모든 것이 이전과 마찬가지로 정상적으로 실행되어야 합니다.