Mac 外接显示器色彩问题
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 寸带鱼屏显示器评测,因为这个问题我只能退货。 (opens new window)(5 分 20 秒处)
How to Force RGB mode in MacOS Mojave ? (opens new window)
https://twitter.com/EBADTWEET/status/1275454103900971012 (opens new window)