반응형

이 글을 쓰는 현 시점 우분투 LTS의 최신 버전은 22.04.1이다.

그런데, 이 우분투에서 Nvidia를 제대로 사용하는 건 의외로 전혀 쉽지 않다.

 

그냥저냥 적당히 쓰기만 하는 것도 어렵고, 제대로 드라이버를 다 설치하려면 고난의 길이 기다린다.

 

문제점

기본 오픈소스 드라이버인 Nouveau의 문제

우분투와 함께 설치되는 Nvidia GPU 오픈 소스 드라이버(Nouveau)는 Cuda를 활용하지 못하고 성능도 떨어진다.
게다가, Nouveau가 설치된 상태에서는 Nvidia 정식 드라이버를 설치할 수도 없다.

강제로 Nouveau를 uninstall할 수는 있으나, uninstall하면 부팅이 제대로 이루어지지 않는다.

여기서 멈춰버림

 

우분투 22.xx대의 yellow screen bug

Ubuntu 22.xx대는 Nvidia 그래픽 어댑터가 설치되어 있으면 화면이 노랗게 뜨는 오류가 있다.

이 버그는 꽤 유명한 버그이며, 내 경우에는 여러번의 설치 시도에도 이 오류는 동일하게 발생했다.

 

해결 절차

아쉽게도(?) 이 문제에 대해서는 모든 걸 해결하는 마법의 탄환 같은 건 없다.

서로서로 다른 해결책으로 성공해낸 사례들이 있고 그 중 자신에게 맞는 솔루션을 찾아야 한다.

일단 내가 성공한 방법은 아래와 같다.

 

우분투 20.04.5 설치

우분투 22.x는 결국 포기하고 20.04.5를 설치했다.

좀 더 해보면 할 수 있을 것 같기도 하지만, yellow screen bug는 모니터를 바라보는 것 자체가 너무 피곤해서 포기.

 

Nvidia 정식 드라이버 다운

https://nvidia.com에서 받으면 된다.

다운 받은 파일의 확장자는 .run 인데, 터미널에서 실행이 가능하도록 권한을 미리 수정해둔다.

chmod 777 NVIDIA*****

 

재부팅 후 Booting시 정확한 타이밍에 ESC를 눌러 GRUB 진입

GRUB에 진입하는 것부터 쉽지 않았다.

일반 PC와 달리 워크스테이션은 부팅 시간이 길이서 더 길고 힘든 싸움이 진행된다.
여기서 말한 정확한 타이밍이란 부팅 후 UEFI화면이 떴다가 사라진 직후 잠시를 의미하며, ESC는 단 1회만 눌러야 한다.
GRUB 화면에서 다시 ESC를 누르면 GRUB 명령행으로 진입함에 유의할 것

 

GRUB 메뉴에서 root ( recovery mode ) 실행

GRUB 메뉴에서 recovery mode 메뉴를 실행하고 그 다음 화면에 root를 선택하여 실행한다.

 

Nvidia 드라이버 전부 삭제

다음 명령을 입력하여 Nvidia의 드라이버를 전부 삭제한다.

sudo apt-get purge nvidia*

 

다음으로 nano 등의 편집기로 /etc/modprobe.d/blacklist.conf 하단에 아래 내용을 추가한다.

blacklist amd76x_edac
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv

 

확인 차원에서 Nvidia 관련 툴을 다시 한 번 삭제한다.

sudo apt-get remove --purge nvidia-*

 

드라이버 설치

앞에서 다운받은 드라이버를 관리자 권한으로 실행하여 설치한다.

설치가 완료되었으면 nvidia-smi를 실행하여 동작여부까지 확인해본다.

sudo NVIDIA...run
nvidia-smi

 

참고 사이트: Nvidia driver autoinstall 이후 부팅 시 블랙스크린 (clean, files, blocks)

 

참고사항/실패사례

GRUB으로 부팅할 때 ESC 또는 shift 키를 누르면 GRUB 메뉴로 들어가는데, 우리 W/S에서는 ESC만 동작함

Shift를 열심히 눌러봤지만 동작하지 않았음


로그인 화면에서 Ctrl+Alt+F2 를 누르면 순수한 명령행 화면으로 진입 가능한데, 생각보다 이 작업이 잘 진행되지 않았음

 

터미널 화면에서 lightdm을 종료하면 명령창만 실행되는 상태로 진입함

sudo /etc/init.d/lightdm stop

이 상태에서 드라이버 삭제/재설치를 하면 될 것 같은데, 역시 잘 되지 않았음

 

GRUB 명령창으로 빠져버렸다면 다음의 명령을 수행하여 부팅 시퀀스를 진행할 수 있으나, 복구 모드로 진입하지는 못했음

ls (hd0,gpt2)/boot
set root=(hd0,gpt2)
linux /boot/lmlinuz root=/dev/nvme0n1p2
initrd /boot/initrd.img
boot

여기서 hd0,gpt2 및 nvme0n1p2 는 우리 W/S의 현재값이며, 시스템에 따라 다를 수 있음

 


GRUB 명령창에서 다음의 명령을 수행하여 부팅 시퀀스를 진행할 수 있으나, 역시 복구 모드 진입은 실패함

ls (hd0,gpt2)/boot/grub
set prefix=(hd0,gpt2)/boot/grub
set root=(hd0,gpt2)
insmod linux
insmod normal
normal
boot

여기서도 hd0,gpt2는 우리 W/S의 현재값이며 hd0,2 로 적어도 됨

 

Ubuntu만 설치된 상태에서 다음 명령어만으로 최신 드라이버를 설치할 수 있다는데, 역시 이후 진행에는 실패함

sudo ubuntu-drivers autoinstall
sudo reboot

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band