黑苹果核显HDMI转DVI,DP转DVI和DVI端口定制教程

针对核显安装黑苹果的用户,一般常见的接口是HDMI或者DP。其实中DP是兼容性最好的接口,如果采用DP接口,最容易安装黑苹果,基本不需要任何显示端口的定制。HDMI则需要定制才能显示,但总体来说,HDMI也是推荐的,毕竟DP使用的人还是没有HDMI多。而定制HDMI显示输出端口也相对而言比较简单。
但取决于不同的显示器,有些较古老的显示器,只配备了DVI或者更老的VGA接口,而主机一般较新的情况,就会采用转接线,例如,DP转HDMI,或者DP转DVI,HDMI转DVI等等。
而黑苹果在这一方面支持度并不好,尤其涉及dvi和vga接口,往往黑屏的机率比较大。
案例以一台i7-8700,8代主机,微星MSI B360主板为例,主板配备三个接口,DVI HDMI和DP。我们需要采用HDMI 和 DP转DVI,因为显示器就只有DVI和VGA接口。

需要驱动的是HDMI转DVI和DP转DVI,当然主板默认就有DVI口,但因为没有线缆,所以没有测试,但原理是一样的。
首先来看一下核显的端口设置值:

AAPL,ig-platform-id 是 07009B3E 对于8 9 10代核显UHD630台式机CPU都是采用这个ID。
framebuffer-con0-alldata 代表第一个接口,01010900 00080000 C7030000 是端口参数,其中01010900 第一个01代表第一个端口,第二个01代表可以用Bus ID,这是重点。0900是序号,不需要更改。00080000 代表端口类型是HDMI, C7030000是核显ID标识,不需要更改。
这是Bus ID对应图

可以看到,HDMI和DVI是相同的,可用Bus ID是01 02 04 06.端口类型HDMI和DVI都是00080000。
由于我们并不会知道哪个端口号对应主板上的哪个显示端口,这时,方法就是测试。
因为我们最终都是让DVI显示,我们可以把三个显示接口都定义为HDMI也就是DVI,所以就是:
1 | framebuffer-con0-alldata:01010900 00080000 C7030000 |
上面端口参数的意思,
- 端口1,Bus ID 01,类型是HDMI,端口开启
- 端口2,Bus ID 02,类型是HDMI,端口开启
- 端口3,Bus ID 04,类型是HDMI,端口开启
设置好参数之后,就可以开始测试,因为手上有HDMI转DVI和DP转DVI的线,相对来说会比较简单。首先,插上DP转DVI直接进macOS,如果黑屏不显示,关机。换上HDMI转DVI的线,再进macOS测试,如果都不显示,我们可以继续改我们的端口参数,因为Bus ID就4个01 02 04 06,我们变动一下,直到找到一个能显示的,例如这样:
1 | framebuffer-con0-alldata:01020900 00080000 C7030000 |
反正每个端口,就4个Bus ID变换尝试的,在实操过程中,也不一定说都得测试完,一般来说,变换一两次,基本就有显示了,有时运气好一次就能亮。我们只需要测试到一个能点亮的,就可以用排除法把剩下的端口都给试出来。
以上面微星B360主板为例,第一端口就是主板的HDMI口,其参数就是第一次尝试的
1 | framebuffer-con0-alldata:01010900 00080000 C7030000 |
也就Bus ID 01即可,那剩下的主板DVI口和DP口就是con1和con2的,继续测试两个端口的Bus ID变换,但要记往,01因为是HDMI口的,所以不能再用01这个Bus ID。
最后结果就是
1 | framebuffer-con2-alldata: 03040800 00080000 C7030000 |
就是DP口,Bus ID是04.那con1就是主板的DVI口了,01 和 04都有了,那con1不是02就是06,就换两次就行了。
通过以上方法,可以把主板的接口都测试出来,虽然说过程可能繁琐一些,还带有一点运气。但却是比较有效的办法,该方法同样适用于HDMI,甚至VGA!为什么VGA可能也行,因为在定义中,VGA和DP是一样的,Bus ID有02 04 05 06,但对于VGA,其端口类型必须选DP,也就是00040000.
更多关于端口定义的参数,可以参考weg驱动官网:https://github.com/acidanthera/WhateverGreen/blob/master/Manual/FAQ.IntelHD.en.md
我们不推荐DVI和VGA,除了有上面的繁琐定制之外,同样还有很多显示上的问题,包括开关机花屏,分辨率问题等等,所以,有条件首先DP,其次HDMI,并尽量做到不转接。