最近在使用MacBookPro時,覺得屏幕不夠大,外擴一個三星顯示器,使用HDMI接口連接至MBP,結果發現,三星顯示器畫面模糊或虛化嚴重,幾乎看不清的節奏。無法忍受,覺得是HDMI線材太差,但是換一臺T420筆記本(Windows 7)後,顯示器畫質正常(遠好於此時的MBP)。顯然,是MBP引起。
問題定位
MacBookPro外接第三方顯示器會被識別成電視,導致字體模糊,和字體渲染方式以及線材沒有關係。跟顏色空間的選擇有關,TV使用的是YCbCr空間,需要將其強制轉換爲RGB空間即可。
解決步驟
第一步:關閉系統保護
由於macOS默認啓用了System Integrity Protection(又稱爲rootless),因此我們需要暫時解除,一遍後面的步驟可以順利進行。要關閉rootless,需要重啓macOS,按住CMD+R
進入恢復模式。選擇Utilities菜單,打開終端Terminal,並輸入csrutil disable
。成功的話會提示“Successfully disabled System Integrity Protection”的字樣。然後重啓。
通過
csrutil status
可以查看當前的系統保護狀態。
第二步:生成DisplayVendorID文件夾
下載腳本到本地、解壓後得到patch-edid.rb
,在Terminal中輸入ruby patch-edid.rb
運行腳本,會產生一個DisplayVendorID-4c2d
文件夾,4c2d
是編號,不同的顯示器會有區別。
第三步:替換系統文件
先備份!備份!!備份!!! /System/Library/Displays/Contents/Resources/Overrides
文件夾!
然後,終端中輸入sudo cp -R DisplayVendorID-4c2d /System/Library/Displays/Contents/Resources/Overrides
。拷貝成功之後,拔掉顯示器接口,再接上,即可看到顯示效果明顯改進。然後必須執行下一步!
話說,如果沒有改進,說明此方法不能解決你的問題。可能是由於HDMI線材或其他因素導致。另外,如果拷貝文件時出現權限不允許,請重新檢查是否已經成功執行第一步。
第四步:【重要】重新啓用系統保護
在第一步中,我們禁用了系統保護,這是很危險的。完成第三步操作後,可以參照第一步的做法,將csrutil disable
改爲csrutil enable
即可。
參考鏈接
- http://www.mathewinkson.com/2013/03/force-rgb-mode-in-mac-os-x-to-fix-the-picture-quality-of-an-external-monitor
- http://osxdaily.com/2015/10/05/disable-rootless-system-integrity-protection-mac-os-x/