본문 바로가기

OS/Ubuntu

[Ubuntu] NVIDIA 드라이버 설치 (Install NVIDIA Driver on Ubuntu)

지금까지 에러를 수정하지 못하고 OS 재설치 후 환경 세팅으로만 버린 시간이 너무나 아까워서 기록한다.

[우분투에서 NVIDIA 드라이버 설치 방법]

우분투에서 NVIDIA GPU 드라이버를 설치하는 방법에 대한 설명.

1. 환경

우분투 데스크탑 버전이 아닌, GUI가 없는 서버 버전을 기준으로 설명한다고 나와있지만,
데스크탑 버전 터미널에서 그대로 실행해도 문제 없이 설치가 가능.
먼저 NVIDIA 드라이버가 이미 설치 되었는지 확인한다.

$ cat /proc/driver/nvidia/version
cat: /proc/driver/nvidia/version: No such file or directory

위의 내용과 같이 파일 또는 디렉토리가 없다고 나타나면 아직 드라이버가 설치되지 않은 것이다.

$ lspci -k

위의 명령어를 실행하면 상당히 많은 내용이 나타나는데 아래와 같이 NVIDIA GPU 모델과 정보만 확인하면 된다.
(내 데스크탑에는 1660Ti가 장착되어 있고, 드라이버 설치 후, 확인한 정보인데 왜 아래와 같이 뜨는지 잘 모르겠다.)

01:00.0 VGA compatible controller: NVIDIA Corporation Device 2182 (rev a1)
        Subsystem: NVIDIA Corporation Device 12e1
        Kernel driver in use: nvidia
        Kernel modules: nvidiafb, nouveau, nvidia_440, nvidia_440_drm

많은 NVIDIA 드라이버 설치 방법을 설명하는 글들에서 nouveau 모듈이 사용되지 않게 blacklist에 추가하는 명령어를 함께 실행한다.
하지만 이번 글에서는 현재 nouveau 커널 모듈이 사용중이더라도 설치 과정에서 자동으로 blacklist에 추가되므로 신경쓰지 않아도 된다.
(매번 tty로 들어가서 초록화면을 보다가 에러나면 상당한 스트레스를 받는다....)

아직 언어 설정이 되지 않았을 경우 설치에 필요한 언어셋, 로케일등 기본 패키지를 설치해준다.

$ sudo apt-get update && sudo apt-get install -y dialog language-pack-en
$ export LANGUAGE=en_US
$ export LANG=en_US.UTF-8
$ export LC_ALL=en_US.UTF-8
$ update-locale

그 다음 아래의 내용을 /etc/default/locale 에 추가해주면 된다.

LANG="en_US.UTF-8"
LANGUAGE="en_US"
LC_ALL="en_US.UTF-8"

다음은 패키지 Repository를 추가한다. Ubuntu 16.04 버전과 18.04 버전 모두 NVIDIA Repository가 지원된다. 따라서 버전에 공식 NVIDIA Repository를 추가하여 설치하는 방법을 설명한다.

현재 NVIDIA 공식 Repository에서 지원되는 배포판 종류는 우분투 16.04, 17.04, 18.04, 18.10 등이다.
이 배포판에 해당되는 우분투 버전을 사용하고 있는 경우, 아래의 공통 명령어로 패키지 리스트를 추가할 수 있다.

먼저 아래의 명령어로 현재 사용하고 있는 우분투 배포판 버전을 확인한다.

$ release="ubuntu"$(lsb_release -sr | sed -e "s/\.//g")
$ echo $release

만약 우분투 18.04 버전일 경우, ubuntu1804와 같이 출력될 것이고, 16.04일 경우, ubuntu1604로 출력이 나오게 된다.

위의 명령어로 배포판 이름이 $release 변수에 저장되게 하고, 아래의 명령어에서 해당 Repository로 추가될 수 있도록 사용한다.
따라서 꼭 위의 명령어를 실행 후에 아래의 명령오로 Repository를 추가한다.

$ sudo apt-get install sudo gnupg
$ sudo apt-key adv --fetch-keys "http://developer.download.nvidia.com/compute/cuda/repos/"$release"/x86_64/7fa2af80.pub"
$ sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/'$release'/x86_64 /" > /etc/apt/sources.list.d/nvidia-cuda.list'
$ sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/machine-learning/repos/'$release'/x86_64 /" > /etc/apt/sources.list.d/nvidia-machine-learning.list'
$ sudo apt-get update

 

2. 정보 확인

NVIDIA 하드웨어 모델에 따라서 지원되는 그래픽 카드(GPU) 드라이버 버전이 다르다.
따라서 아래의 페이지에 방문한 다음 설치하고자 하는 그래픽 카드에 맞는 최신 버전의 드라이버 버전을 확인해야 한다.

https://www.nvidia.co.kr/Download/index.aspx?lang=en-us

그리고 아래의 명령어를 실행하여 설치 가능한 드라이버 버전을 확인한다.

$ apt-cache search nvidia
...
nvidia-352-dev - Transitional package for nvidia-375-dev
nvidia-352-updates-dev - Transitional package for nvidia-375-dev
nvidia-352-updates - Transitional package for nvidia-375
nvidia-352 - Transitional package for nvidia-375
nvidia-361-updates-dev - Transitional package for nvidia-375-dev
nvidia-361-updates - Transitional package for nvidia-375
nvidia-367-dev - Transitional package for nvidia-387-dev
nvidia-367 - Transitional package for nvidia-387
nvidia-375-dev - Transitional package for nvidia-440-dev
nvidia-375-diagnostic - NVIDIA driver diagnostics utilities
nvidia-375 - Transitional package for nvidia-440
nvidia-384-diagnostic - NVIDIA driver diagnostics utilities
nvidia-384 - NVIDIA binary driver - version 384.183
nvidia-387-dev - NVIDIA binary Xorg driver development files
nvidia-387 - NVIDIA binary driver - version 387.26
nvidia-390-dev - NVIDIA binary Xorg driver development files
nvidia-390-diagnostic - NVIDIA driver diagnostics utilities
nvidia-390 - NVIDIA binary driver - version 390.116
nvidia-396-dev - NVIDIA binary Xorg driver development files
nvidia-396-diagnostic - NVIDIA driver diagnostics utilities
nvidia-396 - NVIDIA binary driver - version 396.82
nvidia-410-dev - NVIDIA binary Xorg driver development files
nvidia-410-diagnostic - NVIDIA driver diagnostics utilities
nvidia-410 - NVIDIA binary driver - version 410.129
nvidia-418-dev - NVIDIA binary Xorg driver development files
nvidia-418-diagnostic - NVIDIA driver diagnostics utilities
nvidia-418 - NVIDIA binary driver - version 418.87.01
nvidia-440-dev - NVIDIA binary Xorg driver development files
nvidia-440 - NVIDIA binary driver - version 440.33.01
...

nvidia-xxx로 나타나는 패키지 이름 중에서 설치 가능한 버전을 확인하면 된다.

NVIDIA 홈페이지에서 조회되는 버전과 우분투에서 패키지로 지원되는 버전이 일치하는 버전을 찾아서 설치하면 된다.
위의 경우에는 일치하는 최신 버전이 440 이기 때문에 nvidia-440을 설치하면 된다.

NVIDIA 드라이버 버전이 410 이상일 경우에는 nvidia-driver-410와 같이 패키지 이름이 변경되었다고 한다.

3. 드라이버 설치

위에서 확인한 드라이버 버전을 아래의 명령어로 설치 할 수 있다.

$ sudo apt-get install nvidia-driver-440

(**우분투 16.04 환경에서 nvidia-390 드라이버를 설치하다가 아래와 같은 오류가 발생할 수 있다고 함.
아마 특정 환경에서 특정 버전이 잘 안 맞는 경우가 종종 있는거 같음)

Errors were encountered while processing:
 nvidia-390
 libcuda1-390
 nvidia-opencl-icd-390
E: Sub-process /usr/bin/dpkg returned an error code (1)
Setting up nvidia-390 (390.30-0ubuntu1) ...
update-alternatives: using /usr/lib/nvidia-390/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf (x86_64-linux-gnu_gl_conf) in auto mode
update-alternatives: warning: skip creation of /usr/share/grub-gfxpayload-lists/blacklist/10_proprietary-graphics-drivers because associated file /usr/share/nvidia-390/nvidia-390.grub-gfxpayload (of link group x86_64-linux-gnu_gl_conf) doesn't exist
update-alternatives: error: error creating symbolic link '/usr/lib/nvidia/alternate-install-present.dpkg-tmp': No such file or directory
dpkg: error processing package nvidia-390 (--configure):
 subprocess installed post-installation script returned error exit status 2

위와 같은 오류가 발생할 경우 다음과 같이 nvidia 디렉토리를 생성 후, 다시 설치 명령어를 실행해주면 된다.

$ sudo mkdir /usr/lib/nvidia
$ sudo apt-get install nvidia-xxx

그리고 마지막으로 드라이버 버전에 상관 없이, 공통적으로 아래의 패키지를 함께 설치하면 된다.

$ sudo apt-get install dkms nvidia-modprobe

그리고 드라이버 모듈이 로드 될 수 있도록 reboot 명령어로 시스템을 재부팅한다.

$ sudo reboot

 

4. 확인

우분투에서 NVIDIA 드라이버 설치가 성공적으로 되었는지 확인하기 위해서 아래의 명령어를 실행한다.

$ sudo lspci -k

01:00.0 VGA compatible controller: NVIDIA Corporation Device 2182 (rev a1)
        Subsystem: NVIDIA Corporation Device 12e1
        Kernel driver in use: nvidia
        Kernel modules: nvidiafb, nouveau, nvidia_440, nvidia_440_drm

nvidia 커널 드라이버가 사용중으로 나타나고 있음을 알 수 있다.
그리고 아래의 /proc/driver/nvidia/version 파일의 내용을 확인하면 드라이버 버전을 확인할 수 있다.

$ sudo cat /proc/driver/nvidia/version

NVRM version: NVIDIA UNIX x86_64 Kernel Module 440.33.01 Wed Nov 13 00:00:22 UTC 2019
GCC version:  gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)

NVIDIA의 GPU 또는 그래픽카드를 사용하면 nvidia-smi 명령어로 시스템 정보를 확인할 수 있다.

$ nvidia-smi

Tue Feb 25 16:32:54 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.33.01    Driver Version: 440.33.01    CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 166...  Off  | 00000000:01:00.0  On |                  N/A |
|  0%   38C    P8    10W / 120W |    805MiB /  5943MiB |      6%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1116      G   /usr/lib/xorg/Xorg                           498MiB |
|    0      1975      G   compiz                                       305MiB |
+-----------------------------------------------------------------------------+

(** 필자는 CUDA까지 설치 완료 후에 포스팅 한거라 우측 상단에 CUDA 버전도 같이 떴음)

위의 내용과 같이 정보들이 올바르게 나타나면, 드라이버가 성공적으로 설치된 것이다.
다음글에는 CUDA와 cuDNN의 설치를 기록하겠다.

[Ubuntu] CUDA & cuDNN 설치 (Install CUDA & cuDNN on Ubuntu)

5. Reference

우분투에서 NVIDIA 드라이버 설치 방법 -Hiseon.me

https://hiseon.me/linux/ubuntu/install_nvidia_driver/

'OS > Ubuntu' 카테고리의 다른 글

[Ubuntu] CUDA & cuDNN 설치 (Install CUDA & cuDNN on Ubuntu)  (0) 2020.02.25
[Ubuntu] Anaconda 에러  (0) 2020.02.25
[Ubuntu] Chrome remote desktop 사용  (0) 2020.01.12