본문으로 바로가기

2017-01-15 날씨 맑음


배경

오늘은 Ubuntu 데스크탑 버전에 Nvidia 드라이버 설치 공유기를 적을까 한다.

배경이지만, 최근 딥러닝이 많이 떠오르면서 Tensorflow를 배워보려는 사람들이 많이 늘었다. 

하지만 CPU 기반에서 뭔가를 돌리기에는 며칠씩 걸리는 처리속도에 다들 GPU에 대한 목마름이 생긴다.

cifar-10 이라고 작은 이미지 파일을 분리하는데 맥북 프로로 돌려도 2일이상 걸린다 하니...  CPU에서 뭔가를 해보려는 사람들에게는 부담이 아닐 수 없다.

필자도 최근 GPU 기반의 딥러닝을 돌리고자 그래픽 카드를 데스크탑에 설치했는데, 우분투에 엔비디아 그래픽 카드를 잡는다는게 정말 너무 까다로웠다.

오늘은 그 삽질기를 최대한 줄여 공유할까 한다.



환경


먼저 Tensorflow를 구동하려면 CUDA 기반의 엔비디아를 구매해야 한다.

필자가 구매한 PC와 GPU 사양은 아래와 같다.


  • CPU : Intel core i7 6세대 6700

  • OS : Ubuntu-16.04.1 LTS,  window10 멀티부트 환경

  • 그래픽카드 : Nvidia GTX1070 아머, MSI 지포스 


먼저 윈도우를 설치했고 그 위에 Ubuntu를 멀티부트 환경으로 올렸다.
Ubuntu를 설치하면 요상한 에러와 함께 화면이 상당히 크게 나온다.
이는 드라이버가 정상적으로 잡히지 않아서 생기는 문제다.

일부 Nvidia 드라이버를 설치기를 보면 단순히 드라이버를 download 받아서 실행하라고만 되어 있는데 
그럴경우 기존에 Ubuntu 에 설치되어 있던 드라이버와 충돌 탓인지 재부팅 이후 로그인이 안되는 현상이 발생한다. 
로그인 하고 패스워드 입력하라는 곳에서 계속 무한 반복하니 그런 손쉬운(?) 방식으로 접근했다가는 필자처럼 여러차례 OS를 재설치 해야 할 것이다.


설치

설치 방법은 그저 아래를 따라하면 된다.

1) 먼저 엔비디아 드라이버를 다운 받는다.
   




2) 다운 받은 파일을 각자의 home 디렉토리로 옮긴다.
   $mv NVIDIA-Linux-x86_64-375.26.run /user/home/. 

   옮기는 이유는 보통 다운로드 받으면 "다운로드" 페이지로 들어가게 되는데 한글 경로명에 접근하기가 어려울 때가 있기 때문이다.

3) 파일에 실행 권한을 부여한다.
   $chmod 755 NVIDIA-Linux-x86_64-375.26.run

4) 이전에 설치되어 있는 그래픽 카드를 삭제 한다.
   $sudo apt-get remove nvidia* && sudo apt-get autoremove

   위 과정이 생략될 경우 엔비디아 드라이버 설치할 때 기존 설치내용이 있다는 오류가 나올 수 있다.
   그리고 전체 과정을 하다가 잘못되었을 경우 재설치를 하려면 다시 위 명령어를 치고 설치과정을 반복하면 된다.

5) nouveau 를 정지시킨다.
   $ echo options nouveau modeset=0
  
6) lightdm을 정지시킨다.
   $ sudo service lightdm stop

7) NVIDIA 드라이버를 설치한다.
   $ sudo sh NVIDIA-Linux-x86_64-375.26.run

   이 다음부터는 전부 YES를 누른다.

   만약 에러 로그중에 기존 설치된 드라이버가 있다거나 configuration 관련 오류를 주는 경우 4) 과정을 다시 한다.

   설치 과정에 대한 캡쳐 화면은 아래 포스팅에 잘 나와 있으니 참고해도 좋을 듯 하다.

   필자의 설치과정 일부 화면 캡쳐...   사실 설치하는데 급급해서 사진도 다 못찍었다. ;;

   


   

   



8) 리부팅 한다. 
   $ sudo reboot 

이후 로그인 하면 화면이 정상적으로 나올 것이다.

혹!!
여기까지 완료해도 일부 다른 과정을 반복하는 중에 드라이버가 제대로 안 잡히는 경우가 있을텐데
필자의 경우 USB 무선랜 드라이버를 같이 올리면 엔비디아랑 뭔가 충돌이 생기는지 그래픽 드라이버가 전부 원복되었다. ;;
정확한 원인은 아직가지 파악하지 못했으나 무선랜 드라이버 설치하면서 뭔가 꼬인 것으로 추정할 뿐이다.


참고로 픽자의 USB 무선랜 드라이버는 IpTime 2000AU 제품이다. 
여담인데 IpTime 2000AU 이 제품도 우분투에서 드라이버 잡는게 여간 까다로운게 아니다. ;; 
우분투에서 IpTime 2000AU 제품 설치는 IpTime 에 공지된 드라이버로는 설치가 안된다.
꼭 설치해야 한다면 
https://kjvvv.kr/399899 의 글을 참고해서 아래 site에 적힌대로 해야 잡히니 참고하기 바란다.



댓글을 달아 주세요