Ubuntu에서 Anydesk + x11 + intel 그래픽 드라이버 + HDMI 조합일 때 끊김 발생

TL;DR

/etc/X11/xorg.conf 등, x11 설정 파일 또는 /usr/share/X11/xorg.conf.d/20-intel.conf 등의 파일에 아래와 같은 내용을 붙여 넣고 재부팅 (또는 x11 재시작)을 해본다

Section "Device"
  Identifier  "Device0"
  Driver      "intel"
  VendorName  "INTEL Corporation"
  Option "Hotplug" "false"
EndSection

문제 해결 과정

Anydesk로 Ubuntu를 원격 제어 시도시 약 2초마다 스터터링이 발생하는 문제가 발견됐다. 영어로 검색해도 “이러한 문제가 있어요” 하는 내용이 끝이고, 이렇다 할 무언가가 나오지 않았다. 그래서 삽질을 시작했다.

우선 Anydesk로 접속할 때만 문제가 발생된다는 점에서, Anydesk가 외부적으로 통신하는 것들을 확인해 보았다. Anydesk 접속시 새로 생기는 process id를 확인후, strace -f -p <process_id>를 실행해 보았다.

strace 결과에 따라, fd=13에 메세지를 보낼 때 마다 무언가 끊김이 발생하는것으로 파악했다. fd 13번이 무엇일까 확인 하기 위해 stat을 찍어보았다

ubuntu@ESUKMEAN:~$ stat /proc/4531/fd/13
  파일: /proc/4531/fd/13 -> socket:[112118]
  크기: 64              블록: 0          입출력 블록: 1024   심볼릭 링크
Device: 17h/23d Inode: 118262      Links: 1
접근: (0700/lrwx------)  UID: ( 1000/  ubuntu)   GID: ( 1000/  ubuntu)
접근: 2024-03-17 00:28:28.798219130 +0900
수정: 2024-03-17 00:28:06.542206045 +0900
변경: 2024-03-17 00:28:06.542206045 +0900
생성: -

fd=13은 112118번 소켓을 의미했다. lsof +E를 통해서, 이 소켓이 어디껀지를 알아보았다.

lsof 출력에 따라 Anydesk가 x11로 무언가 요청을 보내고 받으려는 시도를 하는것으로 판단됐다. 그래서 xorg 로그를 확인했다.

xorg 로그를 확인한 결과, 위와 같은 메세지가 계속해서 출력되고 있음을 확인할 수 있었다. 이것으로 미루어 볼 때, Anydesk가 모종의 신호를 x11쪽에 보냈는데, 이로 인해서 디스플레이에서 지원하는 해상도를 조회하는 기능이 작동 하는것으로 짐작했다.

간단히 말해서, 매 2초 정도마다 모니터 조회 및 지원하는 해상도를 조회하면서 순간적인 끊김이 발생하는것 같았다. (어디까지나 추측이다!)

혹시 몰라서 끊김이 없는 시스템에 Anydesk로 접속하고 xorg 로그를 확인해 볼 결과, modeset 까지는 같이 나왔으나 EDID vendor 정보와 HDMI max TMDS 와 같은 로그가 다르거나 없었다. (추측으로는, 모니터에서 해상도 정보를 조금 느리게 주는게 문제 같았다)

그래서, 맨 위 문단 처럼 인텔 그래픽 설정에 Hotplug 관련 옵션을 해제한 결과 끊김이 사라졌다. https://www.x.org/releases/current/doc/man/man4/intel.4.xhtml 에 따라서 DDC 기능도 꺼야하나… 했지만, 다행히도 DDC 기능을 끄지 않고도 문제가 해결됐다.

Section "Device"
  Identifier  "Device0"
  Driver      "intel"
  VendorName  "INTEL Corporation"
  Option "Hotplug" "false"
EndSection

리부팅을 통해서 x11 설정을 완료한 뒤에는 아래와 같은 xorg 로그만이 나왔다. 아마 EDID를 요청하는게 사라진것으로 보인다.

혹시나 비슷한 상황이 발생한다면 xorg 로그를 확인해 보자. xorg 로그에서 아까와 같은 메세지가 발생한다면 각자 사용하는 그래픽 드라이버에서 제공하는 옵션을 확인하여 관련된 기능을 꺼보는것을 시도해 보자.

이 장비는 서버 — HDMI —- KVM 구조로 연결되어 있다. KVM에서 해상도 또는 디스플레이 응답이 늦으면서 이런 문제가 발생했었을 수 있을것 같다. 일반 모니터에서는 이런 문제를 맞닥뜨리기 어렵지 않을까 생각된다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다