Mac 外接非 Apple 认证的显示器其实一直是有色彩问题的,有的情况是整体颜色发灰,有的情况是绿色特别绿,微信的绿色变成接近荧光绿那种绿色。这是 Mac 的奇葩设计导致的,需要修改系统配置解决。今天升级了 Big Sur,之前在 Catalina 已经配置过的显示器失效了,又需要重新配置,为了以后配置能更快完成,故写下本篇博文。
原因
Mac 系统外接显示器色彩不正确的问题,是因为 Mac 对于未识别的显示器,默认使用 ycbcr 的色彩空间来驱动,而 Windows 会默认使用 RGB 的色彩空间来驱动,而大部分显示器是不支持 ycbcr 色彩空间的,这个色彩空间主要是用在电视上,也就是说 macOS 上,未识别的显示器统一认为是电视。而 Mac 不像 Windows,会积极适配各种外接硬件,macOS 原生可以识别的显示器十分有限,这也就导致 Mac 外接第三方显示器基本上都是会有色彩问题的。
对于 TypeC 接口的 Mac,有没有这个问题取决于转接头,有的转接头会兼容,有的转接头不兼容。
对于 M1 芯片的 Mac 这个问题暂时无法通过修改系统配置来解决,解决方法同 TypeC 接口的 Mac,使用不同的转接头会有不同的效果。
解决方法
解决方法就是在 macOS 的系统文件夹下放入外接显示器的配置,并设置为 RGB 色彩空间来驱动。首先要生成配置文件。
在已经接了外接显示器的情况下,在命令行使用 ruby 运行 这个文件,就可以在用户目录生成配置文件,我的路径为:/Users/zhangzida/DisplayVendorID-5e3/DisplayProductID-3402
接着把这个文件夹放入/System/Library/Displays/Contents/Resources/Overrides
就可以了。但是由于系统限制,系统文件夹是只读的,我们还要去关闭系统保护才能在这里面写文件。
对于 Big Sur:
需要重启进入恢复模式,进入恢复模式的方式是按下 Options 开机,然后再按 Command + R。
在恢复模式下的命令行输入:
csrutil authenticated-root disable
,然后再重启。重启后在命令行输入
sudo mount -o nobrowse -t apfs /dev/diskNsM /path/to/mntpoint
挂载系统盘。diskNsM 为 系统盘的设备名,在磁盘工具可以看到:注意最后的 s 和之后的内容要截取掉,比如我的系统盘设备名为 disk1s5s1,则 diskNsM 为 disk1s5。
/path/to/mntpoint
为需要挂载的路径,可以为任意路径,我挂载到了下载文件夹。我的整个命令为:sudo mount -o nobrowse -t apfs /dev/disk1s5 /Users/zhangzida/Downloads/
。由于挂载到了下载文件夹,挂载好后,进入下载文件夹,就会进入到系统根目录了,我们把配置文件夹复制到相应的系统目录。
然后需要重建系统 snapshot,使用到的命令为:
sudo bless --folder /path/to/mntpoint/System/Library/CoreServices --bootefi --create-snapshot
,我的情况用到的命令为:sudo bless --folder /Users/zhangzida/Downloads/System/Library/CoreServices --bootefi --create-snapshot
。然后重启电脑即可生效。
对于 Catalina:
- 重启进入恢复模式,在恢复模式命令行输入
csrutil disable
,再重启进入系统。 - 在系统的命令行输入
sudu mount -uw /
。 - 在命令行用 mv 命令移动配置文件夹到相应的系统目录,我用到的命令为:
sudo mv /Users/zhangzida/DisplayVendorID-5e3 /System/Library/Displays/Contents/Resources/Overrides
,请自行修改用户名为自己电脑上的。 - 重启电脑生效。
参考
小米34寸带鱼屏显示器评测,因为这个问题我只能退货。(5分20秒处)