HDMI 로 TV를 연결했는데 TV가 연결되지 않고 /var/log/kern.log에서 아래와 같은 오류로그가 보인다.
[drm:dc_link_detect_helper [amdgpu]] *ERROR* No EDID read.
TV 제조사에 따라 다르지만 EDID를 제대로 알려주지 않은 경우 문제가 발생한다. 아래와 같은 순서로 문제를 해결할 수 있다.
- https://github.com/akatrevorjay/edid-generator/를 이용해서 EDID binary를 만든다(TV 해상도에 맞는 bin 파일이 있으면 파일을 받는다(이후 1920x1080.bin).
- bin 파일을 /usr/lib/firmware/edid/에 복사해 넣는다.
- initramfs를 다시 만든다.
$ sudo update-initramfs -k all -c
- 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)
- /etc/grub/default 파일에서 GRUB_CMDLINE_LINUX_DEFAULT에 아래 값을 추가한다.
만일 부팅할때 부터 HDMI에 출력하고 싶다면 아래 값을 추가한다.drm.edid_firmware=HDMI-A-1:edid/1920x1080.bin
video=HDMI-A-1:e
- update-grub를 실행한다.
$ sudo update-grub
- 재부팅한다.