맥북 보라색 화면 - maegbug bolasaeg hwamyeon

구형 삼성 PAVV TV와 맥북 프로를 연결할 일이 있었다. 하지만 연결했더니 분홍색 화면으로 출력이 되어 매우 불편하였다. 처음에는 단순 케이블 문제인줄 알았는데 열심히 구글링해본 결과 그게 아니었다. 고생하며 해결하게 된 방법을 지금부터 이야기해보겠다.

환경

소프트웨어

  • MacOS : Catalina 10.15.2

하드웨어

  • 맥북 프로 13인치 USB-C type
  • HDMI to USB-C type 젠더 (1.4 버젼)
  • HDMI Cable (2.0 버젼)
  • 삼성 PAVV TV

원인

MacOS는 오래된 TV나 모니터를 아날로그 TV로 인식한다. 그로인해 출력을 RGB가 아닌 YCbCr로 주게 된다. RGB를 기다리고 있는 TV에게 YCbCr을 주니 화면이 분홍색으로 보이게 되는 것이다.

자세한 것은 RGB와 YCbCr을 읽어보자.

해결 방법

1. root 권한 얻기

시스템 내부에 RGB를 강제할 프로파일을 설치해야 하기 때문에 root 권한이 필요하다. 그런데 MacOS는 사용자에게 root 권한을 잘 주지 않는다. 하지만 한번 얻어보자.

  • 맥을 재부팅하면서 command + R을 꾹 눌러 Recovery OS로 접속하자. 액정 닦는 습관을 가지면 아래와 같이 본인을 볼 수 있다.

    맥북 보라색 화면 - maegbug bolasaeg hwamyeon
  • 접속에 성공했으면 비밀번호를 치고 로그인한다.

    맥북 보라색 화면 - maegbug bolasaeg hwamyeon
  • 왼쪽 위에 메뉴를 보면 유틸리티에 터미널이 있다. 실행하자.

    맥북 보라색 화면 - maegbug bolasaeg hwamyeon
  • csrutil disable을 입력하자. Sucessfully disable...이 출력으로 나올 것이다.

    맥북 보라색 화면 - maegbug bolasaeg hwamyeon
  • 재부팅

위와 같은 절차를 진행했으면 성공적으로 root 권한이 얻어졌을 것이다.

2. RGB 강제 프로파일 생성 프로그램 다운로드

https://gist.github.com/adaugherity/7435890

위 링크에 들어가면 Download Zip을 통해 프로그램을 받을 수 있다. 압축을 풀고 들어가보면 patch-edid.rb라는 파일을 만날 수 있다.

이때 모니터는 맥북과 연결되어 있는 상태여야 한다.

ruby patch-edid.rb

를 통해 현재 외장 모니터의 RGB 강제 프로파일을 생성해주자.

그러면 DisplayVendorID-4c2d와 같은 폴더가 생성될 것이다.

3. 프로파일을 시스템에 복사해주기

복사라고 해서 간단할 것 같지만 MacOS는 열어주지 않는다.

다른 글들과 달랐던 것이 Catalina 10.15.2가 업데이트 되면서 맥이 파티션을 두개 만들고 읽기전용으로 만들어버린다. 접근을 막아 보안성을 높이기 위한 장치로 보인다. 자세한 것은 여기를 읽어보길 바란다. 우리는 해결만 하면 된다.

sudo mount -uw /

위 명령어를 실행시 읽기 전용이었던 시스템을 마운트하며 읽을 수 있는 상태가 된다. 이제 복사하면 된다.

sudo cp -r DisplayVendorID-4c2d /System/Library/Displays/Contents/Resources/Overrides

주소가 복잡하지만 머 들어가보다보면 어렵지는 않다.

4. 재부팅

맥북 보라색 화면 - maegbug bolasaeg hwamyeon

위와 같이 Display with forced RGB mode (EDID override)가 생기면 된 것이다. 분홍화면과 안녕하자.


출처:
https://m.blog.naver.com/PostView.nhn?blogId=luckperson7&logNo=221198559241&proxyReferer=https%3A%2F%2Fwww.google.com%2F
https://m.blog.naver.com/PostView.nhn?blogId=yyj9301&logNo=221123905724&proxyReferer=https%3A%2F%2Fwww.google.com%2F

유용한 팁

[팁] 맥북 HDMI로 연결한 듀얼모니터의 색상이 이상하게 보일 때

저는 2012년식 맥북에어를 사용중인데 듀얼모니터로 기존에 사용하던 24인치 모니터를 연결했더니

붉은색이 강한 화면이 나와서 당황했습니다.

이리저리 찾아보니 모니터를 모니터라 인식하지 않고 (....홍길동?), TV로 인식해서 색공간을 다르게 표현하기 때문이라고...

보통 이런 현상은 hdmi로 연결 할 때 나타나는 것 같습니다. (mini DP to HDMI 컨버터를 이용한 경우에도) 

이럴 때는 TV대신 강제로 모니터로 인식하게 만들어주는 과정이 필요합니다.

일단 첨부파일로 올려둔 파일을 받으세요.

보통 Downloads 폴더로 받으시겠죠?

터미널을 켜서 다운로드 폴더로 이동합니다.

cd Downloads 를 입력하시고 엔터.

다운로드 폴더로 이동했으면 ruby patch-edid.rb 를 입력합니다.

그리고 엔터.

(맥은 기본적으로 루비가 설치되어있습니다.)

정상적으로 실행이 되면, 아래와 같은 화면이 나타납니다.

만약

patch-edid.rb:11:in `<main>': undefined method `[]' for nil:NilClass (NoMethodError) 

라는 에러가 나오면 외부모니터를 연결하지 않아서 나오는 메시지니깐 외부모니터를 연결한 뒤에 실행하면됩니다.

다음엔, Finder를 실행해서 Command + N을 눌러서 새 창을 띄웁니다.

새 창에서 이동 -> 폴더로 이동을 선택하거나 Command + Shift + G 를 눌러서 창이 뜨면

/System/Library/Displays/Overrides 를 입력하고 이동 버튼을 누릅니다.

그 다음 다운로드 폴더에 있는 이름이 DisplayVendorID로 시작하는 폴더를 Overrides 폴더로 이동합니다.

인증 버튼을 누릅니다.

암호를 입력하고 승인 버튼을 누릅니다.

과정은 완료되었습니다. 시스템을 재부팅하면 정상적으로 화면이 나옵니다.

만약 원상복구를 하고 싶으면 다운로드폴더에서 Overrides폴더로 이동했던 폴더를 제거하면 됩니다.