Create TOC

2022년 4월 18일

Debian/HDMI 로 TV 연결했지만 화면이 나오지 않을 때

HDMI 로 TV를 연결했는데 TV가 연결되지 않고 /var/log/kern.log에서 아래와 같은 오류로그가 보인다.

[drm:dc_link_detect_helper [amdgpu]] *ERROR* No EDID read.

TV 제조사에 따라 다르지만 EDID를 제대로 알려주지 않은 경우 문제가 발생한다. 아래와 같은 순서로 문제를 해결할 수 있다.

  1. https://github.com/akatrevorjay/edid-generator/를 이용해서 EDID binary를 만든다(TV 해상도에 맞는 bin 파일이 있으면 파일을 받는다(이후 1920x1080.bin).
  2. bin 파일을 /usr/lib/firmware/edid/에 복사해 넣는다.
  3. initramfs를 다시 만든다.
    $ sudo update-initramfs -k all -c
  4. xrandr명령으로 포트 이름을 확인한다.
    $ xrandr
    Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
    eDP connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
       1920x1080     60.04*+
       1680x1050     60.04  
       1280x1024     60.04  
       1440x900      60.04  
       1280x800      60.04  
       1280x720      60.04  
       1024x768      60.04  
       800x600       60.04  
       640x480       60.04  
    HDMI-A-0 disconnected (normal left inverted right x axis y axis)
    
  5. /etc/grub/default 파일에서 GRUB_CMDLINE_LINUX_DEFAULT에 아래 값을 추가한다.
    drm.edid_firmware=HDMI-A-1:edid/1920x1080.bin
    만일 부팅할때 부터 HDMI에 출력하고 싶다면 아래 값을 추가한다.
    video=HDMI-A-1:e
  6. update-grub를 실행한다.
    $ sudo update-grub
  7. 재부팅한다.
부팅 후 HDMI로 TV와 연결하면 화면이 나오는 것을 확인할 수 있다.