본문 바로가기

Computer Vision/개발

Nvidia driver autoinstall 이후 부팅 시 블랙스크린 (clean, files, blocks)

논문 리뷰는 안하고 맨날 혼자 삽질하고 혼자 해결하는 듯 하지만

닐스 보어가 하는 말이 나에게 위로를 준다

 

 

그러므로 오늘도 나의 실수를 남긴다...

 

환경)

ubuntu 18.04

Geforce rtx 3070 ti gpu

 

RTX 3070 ti 라는 좋은 GPU를 새로 받고, 야심차게 장착했다.

컴퓨터도 새로 도착해서 아예 우분투부터 새로 까는 짓을 시작했는데, GPU 장착 후 우분투를 설치하고 그래픽 드라이버를 깔았다.

 

그래픽 드라이버 설치에는 여러 방법이 있는데,

470버전을 설치한다는 전제 하에

 

sudo apt-get install nvidia-driver-470 로 깔거나

 

ubuntu-drivers devices 로 권장 드라이버 확인한 후

ubuntu-drivers autoinstall 로 권장 드라이버 자동설치 하는 방법

 

혹은 우분투 소프트웨어 & 업데이트 => 추가 드라이버 에서 설치하는 방법

등이 있다

 

이런 방식으로 여태까지 잘 설치해왔는데 RTX 계열이랑 뭔가 호환이 안되는건지 내 우분투가 뭔가 이상한건지

아무튼 저렇게 깔고 nvidia-smi를 하면 couldn't communicate with nvidia drvier 에러가 떴고

그상태에서 재부팅하면

 

출처: https://askubuntu.com/questions/977437/getting-dev-sda1-clean-after-update-rc-d

부팅시 위와 같은 블랙스크린이 뜨면서 부팅이 안됐다.

 

처음에는 드라이버 버전을 잘못 깔았나 싶었는데

자기 GPU에 꼭 알맞는 드라이버 버전은 nvidia 공식 홈페이지에서 확인할 수 있다.

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

 

NVIDIA 드라이버 다운로드

 

www.nvidia.co.kr

 

검색해서 확인하니, 내 GPU에는 470 버전이 호환되는 것 맞는데 어떤 방법을 써도 부팅시 저 블랙스크린이 떴고

사실은 저 화면 자체로는 에러가 아니고 저 상태에서 부팅이 진행되면서 로그인 화면이 떠야 맞는건데

나는 저 화면에서 stuck 되었다고 할 수 있겠다.

 

일단 저 stuck을 벗어나려면 부팅시에 recovery 모드에 진입해야 한다.

부팅될 때 shift 혹은 esc (컴터마다 다름, 나의 경우 esc 였음) 를 누르면 되는데 계속 누르고 있다가 grub bash 모드로 진입할 수 있으니 딱 타이밍 맞춰 누르는게 중요했다... 

 

ESC혹은 shift를 누르면 GNU grub에 진입 가능하고, 여기서 Advanced options for Ubuntu 메뉴로 가면

(recovery mode) 라고 쓰인 우분투가 있을 텐데 거기로 진입하면 된다.

 

리커버리 모드 진입한 후 

리커버리 모드에 진입하면 위와 같은 창이 보이는데, root로 이동하면 된다.

 

root를 들어가면 터미널을 사용할 수 있을텐데, 여기서 모든 nvidia 그래픽 드라이버 관련된 걸 삭제하면 된다.

 

sudo apt-get purge nvidia*

이후 재부팅하면 다시 로그인 창을 볼 수 있다

reboot

 

암튼 나는 내 gpu에 맞는 드라이버를 설치해야 하니까 다시 삽질을 시작했다

결론부터 말하자면 위의 nvidia 공식 홈페이지에서 직접 run file을 다운받아서 실행하니 잘 설치되었다.

 

다음 ask ubuntu link를 참고하여 작성

https://askubuntu.com/questions/481414/install-nvidia-driver-instead-of-nouveau

 

Install Nvidia driver instead of nouveau

I've installed Ubuntu 14.04 and I'm experiencing a fuzzy/blurry screen and bad support for multiple screens. I realized that Ubuntu installs nouveau as default, but I need to install nvidia driver...

askubuntu.com

 

먼저 ubuntu는 기본 내장 그래픽 드라이버를 nouveau 로 설정하는데, 이를 대신해 nvidia driver를 깔아야 한다.

 

1. 터미널에 다음을 입력한다

sudo gedit /etc/modprobe.d/blacklist.conf

gedit이 없다면 vim을 이용해도 됨

 

해당 파일을 열어서 맨 마지막에 아래와 같이 추가한다

# this one might not be required for x86 32 bit users.
blacklist amd76x_edac
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv

 

위 blacklists 중 이미 있는 blacklist가 있다면 중복할 것 없이 빼고 삽입하면 된다.

저장하고 나간다

 

2. 다시한번 nvidia 관련 툴을 모두 삭제

터미널에 다음과 같이 입력한다

sudo apt-get remove --purge nvidia-*

 

3. 다운받은 Nvidia driver run file을 home으로 이동시킨다

Downloads 폴더에 있어도 상관은 없지만 곧 gui 디스플레이를 잠깐 끄고 터미널 모드에서 저걸 실행할 예정이기 때문에... 혹시 한글로 다운로드 라는 폴더에 위치하고 있다면 더더욱 home으로 이동시켜주면 좋다. 간혹 터미널모드 들어가면 한글이 이상하게 써지는 경우가 --;;

 

4. 위에서 사용한 터미널들 말고, (걔네는 gui를 지원하는 터미널이다.) 텍스트 모드 터미널로 진입한다.

컴별로 다르지만 Ctrl+Alt+F1 혹은 Ctrl+Alt+F2 를 누르면 텍스트 모드 터미널이 빡 열린다.

갑자기 모니터가 까매지면서 텍스트모드로 바뀌니까 당황말기...

텍스트모드에 들어가면 처음에 유저 아이디와 패스워드를 요구하는데, 입력해주면 된다.

 

아이디 패스워드 입력 후 비로소 터미널에 명령을 입력할 수 있다.

 

5. 기존 디스플레이 매니저를 정지한다.

보통 우분투는 lightdm이 디폴트 디스플레이 매니저이다. 

sudo service lightdm stop

라고 터미널에 입력한다.

 

6. 다운받아놓은 드라이버 run file을 실행한다.

sudo ./NVIDIA-Linux-x86-260.19.44.run

 

만약 실행이 안되면 실행가능하게 바꾸고 다시 실행

chmod +x  NVIDIA-Linux-x86-260.19.44.run

sudo ./NVIDIA-Linux-x86-260.19.44.run

 

7. 설치가 완료되었다면 다시 gui 모드로 바꾼다.

먼저 정지해놨던 lightdm start 시키고

sudo service lightdm start

Ctrl + Alt + F7 이 나의 경우에 gui 모드 진입키였다.

 

reboot 하지말고 바로 gui 모드 가서 nvidia-smi 해보면 잘 동작한다.

야호~!