본문 바로가기
Linux/Ubuntu

Ubuntu(우분투) nvidia 드라이버 설치, 화면 부팅 안되는 현상

by ahsung 2020. 1. 3.

 

ubuntu에서 nvidia driver를 설치하는 많은 이유는 개발환경에 필요하기 때문일텐데요

특히 요즘에는 많은 인공지능 패키지, 오픈소스를 사용하기위해 cuda가 필요합니다.

 

cuda는 nvidia 그래픽카드에서 돌아갈 수 있는 프로그램들을 개발하고 구동할 수 있게 해주는 tool입니다.

 

많은 인공지능 분야에서 성능을 높히기 위해 그래픽카드,tpu등의 하드웨어 보조를 받고있고

tensorflow, pytorch와 같은 오픈소스들도 cuda를 사용하여 만들곤 합니다.

 

 

하지만 각 패키지, 오픈소스들은 다른 버전의 cuda로 만들어졌기 때문에 cuda-version에 종속적인 경우가 대부분입니다.

 

또한 nvidia 그래픽카드에 따라 설치가능한 드라이버 버전의 상한이 존재하고 드라이브 버전에 따라 cuda를 설치 할 수 있는 버전도 상한이 존재하므로 자신이 설치 가능한 버전을 파악후 알맞는 오픈소스버전(tensorflow, pytorch)을 사용바랍니다.

 

예로

pytorch -> cuda 9.2버전 +

tensorflow > =1.3  ->  cuda 10.0

tensorflow < 1.3  -> cuda 9.0

 

정확한 version 체크는 공식 사이트에서 쉽게 확인 가능합니다.

 

그래픽카드 종류에 따라 설치할 수 있는 cuda의 상한이 존재하므로 어떤 오픈소스를 사용하실지 혹은 cpu버전을 설치할지 고민이 필요합니다.

sudo apt-cache search ^nvidia-driver

apt 저장소에서 설치가능한 드라이버 패키지를 찾아봅니다.

하지만 모두 설치한다고 다 사용 할 수 있는건 아닙니다. 또한 apt 저장소에 없는 버전을 설치하고 싶다면 직접 nvidia 사이트에서 자신의 운영체제에 알맞는 것으로 직접 설치하시길 바랍니다.

 

lspci | grep -i VGA

 

현재 장착된 그래픽카드 확인

 

https://www.nvidia.co.kr/Download/Find.aspx?lang=kr

 

NVIDIA Driver 다운로드 - 고급 검색

SD Studio 드라이버 Studio 드라이버는 핵심 주요 크리에이티브 애플리케이션에 최상의 경험을 제공합니다. NVIDIA는 최고의 크리에이티브한 애플리케이션에 중점을 둔 광범위한 테스트를 시행하며, 최고 수준의 성능, 안정성, 기능을 제공할 수 있도록 보장합니다.

www.nvidia.co.kr

설치 가능한 드라이버를 확인후 그 중에서 웬만하면 가장 높은 버전으로 설치해 줍시다.

 

저는 390이 가장 높은 버전이므로

위에서  sudo apt-cache ^nvidia-driver로 확인한 패키지중 390을 설치하겠습니다.

 

sudo apt-get install <설치할 패키지명>

설치할 패키지명은 위에서 확인한 이름으로 하시면 됩니다.

 

reboot 후 !

간단하게 설치끝!!

 

nvidia-smi

확이 가능하면 설치완료

access할 수 없다는 오류가 나왔다면 설치가 안됬거나 버전이 맞지 않는다거나 여러 이유로 드라이버가 실행이 안되고 있는 것입니다.

아래 사진은 390을 잘 사용하다가 다운그레이드 해야할 일이 있어서 나중에 찍은 사진입니다.

 

재부팅후 검은 화면에서 더 이상 켜지지 않는 경우

저도 겪었던 오류인데, 화면이 더 이상 진행되지 않고 검은화면에 글씨만 나오는 상태가 지속됩니다.

이는 드라이버가 제대로 실행되지 않을때 발생하는 오류 현상입니다.

 

ssh로 원격에서 접속했을 때 멀쩡하게 컴퓨터 내부는 잘 돌아가고 있는 상황에서 화면만 부팅이 되지 않습니다. 

(근본적인 원인은 driver가 GPU 장치를 정확하게 인지 못하는 것이 아닐까..?)

로컬 콘솔에서 ctrl + F2로 터미널 접속도 가능합니다. 

 

  security boot가 enalbe 되어 있을 때 생기는 오류로 bios창으로 들어가  security boot를 disable로 해주세요

( 이건 저도 안해봤지만.. 해결되지 않으면 , 혹시 driver가 booting time에 제대로 인식을 못했을 가능성도 있으므로 그외 boot 설정도 한번 off...)

 

만일 이래도 고쳐지지 않는다면 일단은..ssh 원격으로 접속하고

(ctrl + F2 로 터미널 접속도 가능합니다.)

 

sudo apt-get purge <설치했던 드라이버 패키지> 

 

삭제하면 다시 원상 복귀는 가능합니다.

 

그래도 안된다면 새로운 그래픽 드라이버를 설치해주세요.

더 낮은 버전의 그래픽카드 혹은 nouveau(우분투 기본 그래픽드라이버)가 있다면 활성화, 없다면 설치...

 

 

-----------------------------------------------------------------------------------------------------------------------------

저의 경우 nvidia-390이 잘되다가 어느날 갑자기  GUI 화면이 부팅되지 않아 nvidia-340으로 그냥 쓰던 도중

새로운 커널을 사용하다가 다시 커널을 삭제하고 원래 커널로 돌아 왔더니 다시 nvidia-390 driver가 잘 되기도 했습니다. 

위 해결방법들로도 해결이 안된다면 커널을 바꾸거나 커널 환경을 한번 초기화해보는 것도 방법인거 같습니다.

sudo apt-get update
sudo apt-get upgrade

업데이트 할 커널버전이 있으면 위 명령어로도 자동으로 업그레이드 됬을지도 모르겠군요.

 

직접 리눅스 사이트에서 커널을 설치하게되면 현 우분투 버젼과 커널 버전이 맞지 않아 GUI등 몇가지 기능이 실행이 되지 않을 수 있으므로 웬만하면 apt 저장소에서 제공하는 커널로 설치해주세요. 

$ apt-cache search linux-image

 

설치 가능한 리눅스 커널 버전을 찾아봅니다.

$ uname -a

현재 커널을 버전을 확인 가능하므로 동일버전으로 다시 설치해보거나 다른버젼을 설치해봅시다.

 

저처럼 새로운 커널을 쓰다 원래 커널로 돌아오는 법은 위 방법대로 아무 커널이나 설치하셨다가.

sudo dpkg -l | grep linux-image

검색하셔서 방금 전에 새로 설치했던 커널버전을 삭제 해주시면 원래 커널을 지우지만 않았다면 리부팅했을때 자동으로 돌아와 있습니다.

댓글