macOS 에서 외장 모니터 레터박스 문제 해결

2015년에 나온 맥북을 델 U2713H 에 연결하니 화면 꽉차도록 출력하는게 아니라 주변이 검게 레터박스처럼 나오더라.

모니터 주변부가 화면 출력없이 검게 나온 상태

해상도를 잘못 설정하고 있나 봤는데, 우선 위 사진에서 처럼 정상적인 해상도고 모니터 상태 정보에서도 원하는 해상도 (2560 × 1440 @ 60㎐) 로 나오고 있다.

흔히 생각하는 케이블 문제는 아니고 — 얼마 전에 썼던 글에서 새로 구입한 케이블과 동일한 HDMI 2.0 스펙의 케이블을 구매했다 — 뭐가 문제일까 어리둥절. 혹시나 하는 마음으로 화면을 한 번 90도 돌려봤다.

왜죠. 화면이 가득 차더라. 그래서 트위터와 IRC에서 지인들에게 의견을 구하니 몇 가지 조언이 나왔다.

  • macOS 버전 문제일 수 있다. 최근 업데이트 후에 썬더볼트 디스플레이 색상 문제가 수정되었다 => HDMI 연결이고 최신 OS라 이건 문제가 아님.
  • 모니터에 오버스캔하는 기능이 있을 것이다 => 모니터가 그런 기능이 없는 저가 버전.
  • HDMI 케이블 문제 => 아님
  • … 오버스캔을 OS 수준에서 할 수 있는게 아닐까하고 구글 검색을 해봤다. 내가 겪는 문제의 해결법이 있다고 하는 글을 발견! 특정 모니터에 대한 설정이 언더스캔으로 되어있을 수 있다는 것. 위 글에서 언급한 /var/db/.com.apple.iokit.graphics 파일을 확인해보니 실로 그런 설정이 한 개 있더라. 아래 과정을 거쳐서 수정했다.
  1. 해당 파일 위치가 macOS의 시스템 무결성 보호 (System Integrity Protection; SIP) 기능으로 보호받는 영역이다. 그래서 우선 맥북을 끄고 Command + R을 누르면서 전원을 켠다.
  2. 유틸리티로 터미널을 실행하고 csrutil disable 명령을 입력해서 SPI 기능을 끈다. (정말로 꺼졌는지는 csrutil status명령으로 확인할 수 있다)
  3. 이제 저 파일을 열고 pscn 값이 10000 (=100%)이하인 항목을 찾아서 10000 으로 수정하고 저장.
  4. 다시 SPI를 활성화 한다. csrutil clear명령을 쓰고, 재부팅한다. 이러고 나면 아래처럼 내가 원하는데로 화면이 꽉차게 보인다. 별 이상한 내용으로 엄하게 삽질하다니 Orz