Linux: Nvidia -> AMD 로 교체후 생긴 문제 바로 잡기.

역시나 꽃삽질.
리눅스를 쓰고 나서는 AMD(Ati)를 거의 써보지 않았던 듯 한데.. 그게 맞다면, AMD 로 무려 14년쯤만에 회귀한 셈이 된다. (내게 Radeon 이란 상표는 익숙지 않다. 내겐 첫 경험(?)이었던 Ati Wonder 가 훨씬 강하게 남아있다. 도대체 언제적이냐..)
사실, 코로나가 시작되기 바로 전, 2019년 말에 AMD 로 바꾸려고 했었는데, 당시 갑자기 암호화폐가 뜨면서 그래픽 카드 값이 그야 말로 하늘을 뚫을 듯..? 당시 찍어놓았던게 Rx 500 계열 중 하나였는데, 차일 피일 미루는 새 도저히 내가 감당할 수 없는 수준으로 값이 올라버렸었다.

그리고.. 시간은 지나, 약 3년이 흘러, 중고로 Rx 570을 구했다. 그저 순전히, Hackintosh 를 위해서..


이 글은, Nvidia (Proprietary 드라이버) 그래픽 카드를 쓰다가 AMD 로 바꿨을 경우 생겨날 수 있는 문제점을 다룬다.

발생 가능한 문제점들?

  1. GUI 로 진입 불가
  2. 해상도 설정 불가
  3. 절전(suspend) 불가
  4. smplayer 비디오 드라이버: gpu vs vaapi

위 문제들 모두 이전 파일(드라이버, 설정등)이 남아있어서 생긴다.

nvidia 드라이버 지우기

그래픽 카드를 교체하기 전에, nvidia 관련 꾸러미들은 모두 삭제한다. 물론, 교체하고 부팅한 뒤 해도 되지만, 미리 해놓으면 문제 여지를 줄일 수 있다. ArchLinux 든, KDE Neon 이든 마찬가지.

설정 파일 지우기

/etc/X11/xorg.conf 나, /etc/X11/xorg.conf.d 에 nvidia 관련 설정이 있다면 지운다. xorg.conf 에 nvidia 설정만 있다면 파일 자체를 지워도 된다. 최근 방식은 xorg.conf 가 아니고, xorg.conf.d 에 세부 설정을 넣게끔 돼 있다.

/etc, /usr/lib 등을 nvidia 로 검사하여, 남은 파일이 있는지 확인한다.
특히, service 파일이 남아있을 수 있다.

이제, 카드를 교체하고 부팅해본다!
만약, 부팅은 성공했으나 GUI 진입이 안된다면, xorg.conf 때문일 가능성이 크다. 제대로 삭제했는지 확인한다. 이때, ctrl + alt + F2 로 콘솔로 진입한 후 작업한다.

기타, 세부 사항은 ArchLinux 문서 참고.

suspend 가 안된다???

Nvidia 때도 suspend 에 크고 작은 문제가 있었지만, AMD 로 바꿨더니 아예 suspend 가 되질 않는다. 화면이 꺼지는 듯 했으나, 바로 다시 로그인 화면이 되어 버린다.

이 문제를 해결하기 위해, 한 반나절 이상 삽질을 했었나보다.. 사실, 이 문제 역시 초기에 읽은 문서에 답이 이미 있었는데.. 그게 답인 줄 몰랐었지!!

맨 먼저, ArchLinux 에서 추천한 글에 있는 방법대로, suspend 가 작동하는지 확인한다.

$ sudo sh -c 'echo mem > /sys/power/state'

이게 작동한다면, 절전엔 아무 문제가 없다. 이전 그래픽 카드 설정이 아직 남아있어서 그게 문제를 일으킬 가능성이 높다.

다음, GUI 에서 사용하는 절전 명령인 systemctl suspend 를 내려본다. 여기는 sudo 가 아니고, 그냥 일반 사용자로 한다.
이게 제대로 작동하지 않는다면, 이제 내게 구세주가 됐던 명령어를 내려볼 차례다.

$ systemctl status systemd-logind.service

내 경우, 미처 지우지 못했던 nvidia 관련 서비스를 찾을 수 없다는 오류(/etc/systemd/system/systemd-suspend.service.requires/nvidia-suspend.service)가 나왔었다. 해당 파일을 지워주고 나니!! 드디어 절전모드로!!

최근 커널 6.x 로 올라가면서, nvidia 는 절전에서 돌아올 때 GUI 가 죽는 현상이 심심찮게 생겨났었다. 적어도 1시간 이상 절전 상태에 있다가 돌아오면, 정상 작동을 하지 않는 경우가 꽤 잦았다. 그럴 땐 콘솔로 가서 재부팅등 명령을 내렸어야 했는데, AMD 는 오늘 꽤 오랜 시간(3시간 이상?) 시험을 해봤지만, 잘 작동한다.
리눅스를 처음 시작했을 때만해도, 리눅스에는 Nvidia 라는 공식같은게 있었는데, 이젠 그렇지 않다는걸 내 스스로 겪을 수 있었다. 게다가 독점 드라이버도 필요없다. 그냥 오픈 소스인데도 아무런 불편함이 없다. 이러면 더 좋은거 아녀?? 들리는 얘기로는 Wayland 에선 AMD 쪽이 훨씬 잘 된다던데??

** Hibernation 도 안되는데..?
이건 AMDGPU 와는 무관. Nvidia 때도 안됐었다. 해법은 있고, 성공했다.

smplayer 하드웨어 가속?

ArchLinux 에선 libva-mesa-driver 와 mesa-vdpau 를 설치하면 된다. 사실, mesa-vdpau 는 없어도 될 듯 한데..
아무튼, 설치하고, smplayer 설정에서 vaapi 가 아닌 gpu 를 선택하면 된다. 그러면 알아서 vaapi 가 선택된다.
이게 잘 작동하는지 알아보려면, mpv 로그를 봐도 되고, 간단하게 htop 명령등을 사용해도 된다. vaapi 가 제 역할을 할 경우, CPU 점유율이 낮아지고(10% 정도?), 그렇지 않을 경우 수십퍼센트에서 100% 를 넘을 때도 있다.

또, gpu 가 아닌 vaapi 를 선택하니 어떤 파일에선 문제가 없지만, 어떤 파일은 재생을 못하고 그냥 죽어버리는 경우도 있었다. 따라서 그냥 gpu 로 해주는게 속편한 방법이다!

Author: 아무도안

안녕하세요. 글 남겨주셔서 고맙습니다.