问题
Mac默认把外接显示器作为TV,输出效果非常差,这与你的显示器、线材、接口都没有关系。
解决
解决办法:强制启用RGB输出模式,开启之后可以在系统报告中看到如下内容。
解决步骤:
1 生成EDID
1.1 下载 patch-edid.rb (打不开可访问:国内云盘 口令: fn18pc)
1.2 在终端运行patch-edid.rb:ruby patch-edid.rb
1.3 运行完成后会在patch-edid.rb同目录生成文件夹DisplayVendorID-xxx
2 关闭SIP和只读文件系统authenticated-root
见此:如何正确关闭macOS 11和12的SIP以及只读文件系统authenticated-root
因为这个地方太容易出问题,所以单独写了一篇文章。
3 挂载Volume
最麻烦的地方来了,这是在BigSur之前都没有的操作(参考 writing-to-the-macos-system-partition):
3.1 确认 live volume 名称 diskNsM
在终端执行mount
,在返回结果里找到挂载点/
的设备名。
在上图中挂载点/
的设备名为/dev/disk3s5s1
,我们并不直接用这个名字,要舍去后两位,只取disk3s5
。
diskNsM
即为 disk3s5
,为了表达方便后面都用diskNsM
,因为这个值因人而异。
3.2 挂载 diskNsM
创建一个挂载目录/path/to/mntpoint
,可创建在任意有写入权限的位置,例如:/Users/用户名/mnt3s5
。
在终端执行:sudo mount -o nobrowse -t apfs /dev/diskNsM /path/to/mntpoint
(注意替换diskNsM
和/path/to/mntpoint
)
3.3 复制文件夹DisplayVendorID-xxx
可直接在Finder中将1.3生成的文件夹DisplayVendorID-xxx
复制到/path/to/mntpoint/System/Library/Displays/Contents/Resources/Overrides
若已存在同名文件夹,选择合并即可;若已存在同名文件,则覆盖。
3.4 创建snapshot,并且下次从之启动
在终端执行
sudo bless --folder /path/to/mntpoint/System/Library/CoreServices --bootefi --create-snapshot
4 重启完成
可在系统报告中查看是否已经强制启用RGB输出。每次系统更新后需要重新复制一次DisplayVendorID-xxx
。
附录:
以下是我使用的完整命令,有问题可以对照一下:
① 把 /dev/disk3s5
挂载到 /Users/xcp/mnt3s5
sudo mount -o nobrowse -t apfs /dev/disk3s5 /Users/xcp/mnt3s5
② 复制文件到指定目录
sudo cp -r /Users/xcp/Downloads/DisplayVendorID-5e3 /Users/xcp/mnt3s5/System/Library/Displays/Contents/Resources/Overrides
③ 创建启动快照
sudo bless --folder /Users/xcp/mnt3s5/System/Library/CoreServices --bootefi --create-snapshot