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

黑苹果核显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端口定制

需要驱动的是HDMI转DVI和DP转DVI,当然主板默认就有DVI口,但因为没有线缆,所以没有测试,但原理是一样的。

首先来看一下核显的端口设置值:

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

AAPL,ig-platform-id07009B3E 对于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,DP转DVI和DVI端口定制

可以看到,HDMI和DVI是相同的,可用Bus ID是01 02 04 06.端口类型HDMI和DVI都是00080000

由于我们并不会知道哪个端口号对应主板上的哪个显示端口,这时,方法就是测试。

因为我们最终都是让DVI显示,我们可以把三个显示接口都定义为HDMI也就是DVI,所以就是:

1
2
3
4
5
6
framebuffer-con0-alldata:01010900 00080000 C7030000
framebuffer-con0-enable:01000000
framebuffer-con1-alldata: 02020A00 00080000 C7030000
framebuffer-con1-enable: 01000000
framebuffer-con2-alldata: 03040800 00080000 C7030000
framebuffer-con2-enable: 01000000

上面端口参数的意思,

  • 端口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
2
3
4
5
6
framebuffer-con0-alldata:01020900 00080000 C7030000
framebuffer-con0-enable:01000000
framebuffer-con1-alldata: 02040A00 00080000 C7030000
framebuffer-con1-enable: 01000000
framebuffer-con2-alldata: 03060800 00080000 C7030000
framebuffer-con2-enable: 01000000

反正每个端口,就4个Bus ID变换尝试的,在实操过程中,也不一定说都得测试完,一般来说,变换一两次,基本就有显示了,有时运气好一次就能亮。我们只需要测试到一个能点亮的,就可以用排除法把剩下的端口都给试出来。

以上面微星B360主板为例,第一端口就是主板的HDMI口,其参数就是第一次尝试的

1
2
framebuffer-con0-alldata:01010900 00080000 C7030000
framebuffer-con0-enable:01000000

也就Bus ID 01即可,那剩下的主板DVI口和DP口就是con1和con2的,继续测试两个端口的Bus ID变换,但要记往,01因为是HDMI口的,所以不能再用01这个Bus ID。

最后结果就是

1
2
framebuffer-con2-alldata: 03040800 00080000 C7030000
framebuffer-con2-enable: 01000000

就是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,并尽量做到不转接。