Priceless
[Linux] Ubuntu 설치 과정과 설치 이후 화면이 정상적으로 뜨지 않는 오류 본문
우선 결론
글에 적혀있는 설치 환경과 유사한 환경을 구성하려고 한다면 적지 않은 확률로 내장그래픽과 외장그래픽의 충돌로 인해 화면이 출력되지 않는 것이다. 우선 그래픽 드라이버를 설치하기 전에 인텔의 내장그래픽을 비활성화해야 한다. 이후 그래픽 카드 드라이버를 설치해야 한다. 그래픽카드가 너무 최신 제품이거나 유명하지 않다면 우분투에서 자동으로 인식하지 않는다. 직접 인식시켜 준 후 그에 맞는 그래픽카드 드라이버를 설치해서 해결한다.
이 문제의 원인을 찾고 해결하기까지 5일이 걸렸다.. 그러면서 촬영한 사진이 거의 없으니 글로 읽어주시길 바란다.
동기
데스크탑을 새로 산 이후 우분투를 설치하려 했다. 설치 과정에서 모든 경우의 수를 써도 결국에는 화면이 아예 나타나지 않거나 정상적으로 나타나지 않는 문제가 발생했다.
설치 환경
OS: Ubuntu 22.04
CPU: i5-12400 (내장그래픽 O)
GPU: RTX 4060ti 16GB
첨언 어쩌면 문제의 원인
그래픽 카드에 대한 조금의 이야기를 덧붙이자면 원래 4060 ti는 8GB로만 출시했다. 하지만 이후 16GB가 출시됐고 기존의 8GB 제품보다 성능이 부족하다는 평가를 받으며 인기가 없는 제품이다. 하지만 VRAM이 중요한 일부 개발자들에게는 RTX 4080, 3090과 같은 비싼 그래픽 카드의 대안으로 쓰일 수 있는 일종의 정말 틈새 시장을 위한 제품인 듯하다. 그러한 제품을 구입했다. 그래서 적절한 드라이버가 없을 수도 있을 것이라는 생각을 가지고 있었다.
문제1: 설치 & 설치 이후 부팅 시 검은 화면에 출력 로그: clean files blocks
USB에 Ubuntu 이미지를 받고 BIOS에서 USB 부팅 순서를 변경한 후 설치를 시작할 때나 clean files blocks 와 같은 로그가 모니터 구석에 출력되고 아무 것도 진행되지 않는다. 이 경우에는 일단 디스플레이를 출력해서 문제를 해결해야 하므로 디스플레이를 볼 수 있는 환경으로 설정해야 한다.
GNU bootloader에서 linux가 선택된 기본 상황에서 'e' 키를 눌러 grub 커널 코드를 수정한다.
'quiet splash' 뒤에 'nomodeset'을 추가한 후 실행한다.
이를 통해 인텔 내장 그래픽 카드를 비활성화 하여 충돌하는 현상을 막는다.
이후 설명하지만 ubuntu 설치를 마치고 첫 재부팅을 할 때도 혹시 모를 충돌을 대비해 다시 사용한다.
grub 부트로더에서 수정한 커널 코드는 부팅될 때마다 초기화된다.
참고
Manual "nomodeset" Kernel Boot Line Option for Linux Booting | Dell Iraq
Symptoms This article contains information about manually setting the nomodeset option for Linux booting. Manually Set "nomodeset" Intel Driver Option for Linux Booting YGeneric Canonical Ubuntu media (some OEM Dell media) or other Linux media does not boo
www.dell.com
문제2: 적절한 그래픽 드라이버를 찾지 못할 수 있다
USB를 통해 'install ubuntu'를 진행할 때 매우 최신의 그래픽 카드를 사용하거나 비주류 그래픽 카드를 사용한다면 Ubuntu가 그래픽 카드에 맞는 드라이버를 찾지 못할 수 있다.
그러므로 우선 additional software는 설치하지 말자. 이후 원하는 파티션을 선택하고 계정 생성까지 완료했다면 Ubuntu는 설치가 완료되었다. 여기서 재부팅할 때도 충돌이 발생할 수 있으므로 grub kernel을 수정하여 재부팅한다.
지금까지의 상황은 ubuntu가 설치되었고 그래픽 카드의 드라이버는 설치되지 않은 상황이다.
그렇다면 그래픽 카드 드라이버를 설치해야 하는데 이 글을 찾은 사람이라면 자동 설치를 해봤음에도 잘 되지 않았을 가능성이 높다. 실제로 자동 설치를 마치고 난 후 nvidia-smi 명령어를 사용해도 그래픽 카드가 활성화되지 않는다.
이 경우 현재 사용 중인 장치가 그래픽 카드를 인식하지 못한 상황일 확률이 높다.
현재 사용중인 그래픽카드 확인하기 위해 아래 명령어를 입력한다.
아래 명령어를 입력했을 때
Nvidia Cooperation 등이 나오지만
이후에 구체적인 모델명(RTX 4060 ti, RTX 3090 등)이 나오지 않는다면 정확한 정보를 받지 못하는 상황이다.
lshw -numeric -C display
이 경우 PCI ID repos의 업데이트를 통해 그래픽 카드의 정보를 받아오도록 하고
잘 인식되었는지 확인한다
sudo update-pciids
lspci -k
참고
https://min23th.tistory.com/23
[딥러닝 환경설정/ Linux] 1. 장착된 GPU 모델 확인 방법 (lspci -k 명령어로 모델명이 보이지 않을때
아래의 명령어를 이용하여 GPU 모델과 커널 모듈 정보를 확인 lspci -k 출력된 많은 코드 중에, 아래와 같이 VGA compatible controller: ~로 시작하는 코드가 보인다면 대괄호[ ] 안에 적혀 있는 것이 본인
min23th.tistory.com
문제 해결 완료: 그래픽 드라이버 설치 진행
이후 그래픽 카드를 정상적으로 인식한다면
드라이버 버전을 확인하고 안전하게 드라이버 버전을 수동으로 설치한다.
nvidia 드라이버 설치를 마친다면 nomodeset 설정 없이도 디스플레이가 정상적으로 출력되고
nvidia-smi 명령어를 입력하면 정상적으로 인식하는 것을 확인할 수 있다.
참고
[Ubuntu 20.04 LTS]Nvidia드라이버 설치하기
그래픽카드 정보 및 드라이버 확인하기 아래 3가지 명령어중 1가지만 터미널에 입력 후 엔터를 눌러줍니다. 그래픽카드 및 설치 가능한 드라이버 확인 ubuntu-drivers devices 현재 사용중인 그래픽카
pstudio411.tistory.com
CUDA 설치
사이트를 참고하여 프로젝트의 호환성 등을 고려해 원하는 버전의 쿠다를 선택한 후 설치한다다.
섣불리 최신 버전의 쿠다를 설치하면 많은 오류가 발생할 수 있다.
참고
01-3 CUDA toolkit 설치
YOLOX를 위한 CUDA toolkit 설치법입니다. CUDA 11.0 을 설치하겠습니다. ``` sudo apt update sudo apt upgrade ``` 제일…
wikidocs.net
이상입니다.