MacBook Pro の外部ディスプレイの色味がおかしいときの対策
タイトルが長い。
2020/02/08 追記
まとめ
- MacBook Pro の外部ディスプレイ出力は DisplayPortで
HDMI I問わず(DPだけかも) 色味がおかしくなることがある。 - 直すには xml を作って特定の場所に置く必要がある
- /System 以下の場所なので、Catalina (正確には El Capitan 以降すべて)ではリカバリーモードのターミナルを起動して設置するのがよい。
- ただしリカバリーモードのターミナルは強力な権限をもっているので、注意して作業を行うこと。この対処方法でなんらかの不利益がおきたとしても補償できません。
状況
MacBook Pro 13inch 2017 から Philips の 328P6VJEB/11 という 32インチ 4k 対応のディスプレイに、usb-c → displayport 変換ケーブルで接続している。4k 解像度を 60Hz で表示できているが、色味がおかしい。色味がおかしいといいうのは全体に白っぽく、階調がやたら狭い。どういういことが起きるかと言うと薄い水色のような明るい色がほぼ白に見えてしまう。輝度が高すぎるような感じにも見えるがディスプレイ側で輝度を最低にしても暗くなるだけで改善しない。
対応方法
RGB で出力すべきところが、YCbCr で出力されているのが問題らしく、これを訂正する。他サイトの解説では System Integrity Protection (SIP) の解除が必要と書いてある場合もあるが、リカバリーモードを使うことで SIP の解除は不要。
- 問題が起きているディスプレイを MacBook Pro に接続する
- 訂正用の xml を出力するruby スクリプトを取得して動かす
$ cd #/Useres/<YOUR_ID> で作業する前提 $ curl -O https://gist.githubusercontent.com/ejdyksen/8302862/raw/5a1b27ff53ef738d5a977d2a06bb6575935b5914/patch-edid.rb $ ruby patch-edid.rb # DisplayVendorID-XXXX みたいなディレクトリができる
- MacBook を再起動してすぐに Ctrl-R を押しっぱなしにして、リンゴマークが出たら指をはなす。この手順でリカバリーモードに入る。
- リカバリーモードは画面上部のメニューからターミナルを開けるのでターミナルを開く。このターミナルは強い権限をもつので操作には十分注意すること。
- 開いたターミナルで、先程作成した xml をディレクトリごと移動する
$ cp -r /Volumes/Macintosh\ HD/System/Library/Displays/Contents/Resources/Overrides/DisplayProductID-XXXX /Volumes/Macintosh\ HD/Users/<YOUR_ID>/DisplayProductID-XXXX.back # すでに存在する場合のバックアップ。存在しないなら不要 $ cp -r /Volumes/Macintosh\ HD/Users/<YOUR_ID>/DisplayProductID-XXXX /Volumes/Macintosh\ HD/System/Library/Displays/Contents/Resources/Overrides/ $ exit
- メニューバーから再起動する。
- うまくいけばきれいな出力になっているはず
- Mojave 以降フォントのアンチエイリアスが切られており、PPIが低いディスプレイだと今度はそちらが気になるかも。アンチエイリアス有効化については以下を参考に。https://qiita.com/tanakahisateru/items/0634816d2d843b56e3d0
参考文献
- https://www.mathewinkson.com/2013/03/force-rgb-mode-in-mac-os-x-to-fix-the-picture-quality-of-an-external-monitor
- 一番初期に、詳細に書かれた状況説明のように見える。直し方も乗っているが若干古いのでこれには従ってない
- https://gist.github.com/ejdyksen/8302862
- https://spin.atomicobject.com/2018/08/24/macbook-pro-external-monitor-display-problem/
- 状況をよく説明している解説
- https://discussions.apple.com/thread/250732856
- 最新の訂正手順。上の対応方法はこのスレッドに従っている
ここにいたる物語
もともとこの Philips のディスプレイ 328P6VJEB/11 を買ったのは数年前で、当時も MacBook Pro 2013 あたりをつなごうとして挫折したのであった。当時は 4k@60Hz を出す方法が微妙で、うまく行っても不安定だったりして結局 Windows マシンにつないで利用していた。そんな折にふと手元にある MacBook 2018 で接続してみたところ動作は安定しているが色味がとんでもないということに気づいた。価格コムの当該ディスプレイの口コミにもこの問題が話されており、概ねそのスレッドを読めば問題が把握できる。ケーブルのせいにミスリードされている気もしてちょっともったいない。とはいえ、本当にケーブルの問題で、DP接続をあきらめHDMIにすれば解決する場合もあるのかもしれず一概に間違いということはできないだろう。その後出力を RGB に直すべく関連情報を漁っていると、ファイルの移動に SIP の解除が必要とか不要とか最近の OSX の仕様変更に関係する問題が出てきて、最終的にはSIPを解除しない上のような手順がみつかった。しかしこれが2013年から解決していない問題というのはなかなかつらい。OS Updateで直るという報告もないわけではないのだが。
そして解決しても今度はアンチエイリアスの効かない世界が待っており、4k ならバラ色だぜとは行かないのがまた悲しい。かつて OS X はwindows とちがってフォントにアンチエイリアスが効くのが売りだったのに。最近の Apple は Retina 前提でアンチエイリアスを切るように変更をしてきているように見え、これに従うならば最新の Pro Display XDR (税込み 582,780円)を買うしか外部ディスプレイの道はない。と思ったけどLG UltraFine 5K Display (税込み159,280円) みたいな 27インチ5kという手もあるか。24インチ4kでは200ppi に届かないから iMac は21.5 インチ4kなんだね。そして MacBook のディスプレイは ppi が高いだけじゃなくて色域も広くて結構良いディスプレイなんで、これに遜色ない外部ディスプレイを手に入れようとするとなかなか存在しないということもよくわかった。MacBook 高いよと思いつつ、ディスプレイのために買っているんだと思えば少しは許せるかもしれない。
などと無駄にディスプレイに詳しくなる週末であった。