我已经花了至少4个小时(至少)在macOS Sierra上修复了该问题。我设法做到这一点的方法是基于Dan Grove在同一线程中对自己的答复,但需要更多DIY(感谢Dan!)。
我认为了解EDID文件的几件事很重要:
- 对于一个给定的屏幕设备,EDID文件因操作系统而异。
- 不要从出现问题的计算机上检索EDID(如该线程中chiara所建议)-它对我不起作用,并给了我损坏的数据。
- 您将需要一台可以在屏幕上运行的计算机(通常运行Windows)来检索正确的EDID,然后将其移植到Mac。
现在,按照Dan Grove的步骤列表(请参见上面的帖子),我将作如下澄清:
步骤1 –我使用的是真正的Windows计算机,而不是虚拟机。
第2步 –执行操作时,没有选择将Monitor IDView中的EDID数据导出为RTF文件的方法,可能是因为此后软件已更新。我必须单击“ 视图”>“下部窗格”>“ EDID十六进制转储”,才能真正看到“十六进制”部分。
步骤3 –对于那些不知道十六进制是什么的人,下面是屏幕截图。您将必须删除周围的部分(以红色突出显示)以仅保留十六进制部分(以绿色突出显示)。
然后,您可以按照Dan的说明将绿色部分复制并粘贴到EDID Reader中。您不一定需要在3个方框中打勾,只需单击Parse Edid并检查右侧的信息是否反映了您的屏幕设备应该是–例如,您应该能够看到您要工作的分辨率。 。
步骤4 –这是棘手的部分,这让我感到困惑。本教程要求您在文本文件中输出以下Terminal命令的结果,并在该文件中ioreg -lw0
搜索各种字符串。
除非我没有记错,否则ioreg
代表Input / Output Register,这意味着它基本上列出了计算机的所有设备。但是,如果有2个屏幕设备(本机Macbook屏幕+我尝试使之工作的外部设备),则需要注意不要误以为本机屏幕。
本教程要求您查找IODisplayEDID
字符串,但是我的外部屏幕在ioreg
输出中没有任何内容(这肯定是为什么它不起作用的原因)。IODisplayEDID
要创建的正确数据是我们在十六进制部分中找到的数据,上面以绿色突出显示。这是您需要移植到mac Overrides文件中的字符串(如果您不知道我在说什么,请按照教程进行操作)。
为避免错误,请注意,Apple本机屏幕的DisplayVendorID似乎是1552。如果在本教程中最终使用了该ID,那么您将要更改本机屏幕的设置,而不是外部屏幕的设置:)
我希望这能使丹·格罗夫的非常有用的步骤得到澄清。
干杯弗雷德