killwintel 发表于 2020-12-24 20:12

OpenCore0.6.4 核显双显示器的几个要点

主板是微星B460M迫击炮,CPU是i5 10500 。跟着人家配置买的,站在他们肩膀上,嘿嘿
主板有DP,HDMI双接口。

理论知识来自黑果小兵前辈:
教程:利用Hackintool打开第8代核显HDMI/DVI输出的正确姿势

在github 上, myqqiu /Hackintosh-B460M-MORTAR-i5-10500-iGPU-UHD630 这个侠客的EFI可以支持hdmi ,但我条件不具备,最后只能用一个显示器来回折腾。发现了要点:
关键是通过OC传递过去一些FB信息,因为侠客的EFI直接支持了HDMI,他是这么支持的:



如果不增加con0的几行信息,macos会默认三个接口全是dp,当然就不能支持hdmi。只需要修改con0就可以支持hdmi了。

修改后在hackintool中是这样显示的:


和图中一致,目前是HDMI接口,单显示器使用,所以只显示一行红色。索引1对应接口是0x05,con0
在接DP口时,索引3,第三行是红色, 对应接口是0x07,con2
这个主板仅2个接口,仅这2行就够了,索引2那个就多余了,对应接口0x06,con1,可以选不存在试试。

为了验证黑果小兵大侠的理论,我尝试手动增加了如下:



其中con1对应索引2,其中busid和类型可以设定为0 。
三个接口con0,con1,con2 。每个接口需要的index(索引),type(类型),busid(总线ID),pipe(通道) 都传递过去。
谨记,如果不传递,macos会使用默认dp接口参数。
果然效果和猜想的一样,也就是和上面大侠只增加con0一样的效果,只有con0 (hdmi),con2 (dp)可用 。

拓展思考,如果有其他接口,估计是一样的。对VGA呢?不懂。虽然说macos不支持,但这样添加对应信息后呢?


部分来自下图内容



killwintel 发表于 2020-12-24 20:43

图中可以看到,索引1对应的是hdmi物理接口,即con0对应物理接口,黑果小兵前辈在其文章中所言,在10.15.7中已经不再是绝对了,他写道:

工作原理

不同主板上的板载视频接口有许多不同的组合,有些是1个HDMI+2个DP,有些则是2个HDMI,还有可能是DVI和VGA。(当然,VGA在MacOS里是不能使用的,请记住这点)。

当MacOS初始化IGPU驱动(称为AppleIntelFramebuffer)时,它并不知道主板上的接口是什么类型的。但是,它会根据你选择的 平台 ID,作出默认假设。例如,对于 平台 ID 0x3E9B0007,默认情况下它将所有接口视为DP接口,如果将DP显示器连接上,它就会立即工作。但是,如果将HDMI或DVI显示器连接上 ,就没有图像显示。 这是因为此时MacOS认为这些显示器是DP接口的。

主板上每个视频接口都与其对应的接口号相关,彼此不同。而在MacOS中,最多允许核显连接3个外部显示器,接口号为5,6和7。我们所要做的,正是确定主板上什么接口连接到HDMI,什么接口连接到DVI,什么接口连接到DP,搞清接口号与物理接口的映射关系,然后填写缓冲帧表向MacOS提供映射信息。这种映射的接口也叫cons,任何软件接口都可以映射到这些接口。

    3个 连接接口(connectors) 名称分别为:
      con0
      con1
      con2

    接口号5,6和7可以作为软件的索引(Index),索引号分别为1,2和3。它们有如下对应关系:
      索引号1(Index 1)始终指向物理接口5
      索引号2(Index 2)始终指向物理接口6
      索引号3(Index 3)始终指向物理接口7


-------下面的 例如 在新版本中不再适合了--------------
例如:

    如果我们想告诉MacOS物理接口6是HDMI类型,我们就标记此接口的索引号为2。
    如果我们想告诉MacOS物理接口5是DVI类型,我们就标记标记此接口的索引号为1(注意:DVI和HDMI在MacOS中等效)。
    如果我们想告诉MacOS物理接口7是DP类型,我们就标记此接口的索引号为3。

tzhihui 发表于 2020-12-24 20:50

买个免驱动独显插上吧

killwintel 发表于 2020-12-24 20:56

tzhihui 发表于 2020-12-24 20:50 https://www.pcbeta.com/static/image/common/back.gif
买个免驱动独显插上吧

买晚了,矿渣不想要,新的感觉冤大头,价格和年初比哈哈。等等党。

killwintel 发表于 2020-12-25 22:04

黑果小兵前辈 文中提到

------------
HDMI非常严格,只允许使用以下总线ID: 0x01,0x02,0x04,0x06,而且部分主板只接受这些值中的一种或两种。例如,技嘉 Z390只接受0x04。
------------

其实我的微星b460m hdmi接口,总线ID是0x05,索引为1 ,通道指定18

当然这是翻译的旧文章。
4,5,6 好像都可以。微星板子对黑苹果挺友好 的

killwintel 发表于 2020-12-25 22:14

i5 10500 指定的平台ID 是这个,也是防冒ID吧。默认的三个接口全是DP,修改为适合自己的。
ID: 3E9B0007, STOLEN: 57 MB, FBMEM: 0 bytes, VRAM: 1536 MB, Flags: 0x00801302
TOTAL STOLEN: 172 MB, TOTAL CURSOR: 1 MB (1572864 bytes), OVERALL: 173 MB (181940224 bytes)
Model name: Intel HD Graphics CFL
Camelia: CameliaDisabled (0), Freq: 0 Hz, FreqMax: 0 Hz
Mobile: 0, PipeCount: 3, PortCount: 3, FBMemoryCount: 3
busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x000003C7 - ConnectorDP
busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x000003C7 - ConnectorDP
busId: 0x06, pipe: 8, type: 0x00000400, flags: 0x000003C7 - ConnectorDP
01050900 00040000 C7030000 索引01,busid 05 ,通道09,DP:0004
02040A00 00040000 C7030000
03060800 00040000 C7030000

killwintel 发表于 2021-1-2 00:12

就像amd显卡一样,驱动程序内部有大量FB,以适应不同接口组合。macos因为自己定制,只需要极少量fb就可以了。并且因为intel挤牙膏,核显驱动可以几乎可以通用很多年很多代。比如降级驱动还行

得通。核显没几个FB,独显也以dp,hdmi 为主。本来没什么,但weg搞大一统,如果他本身固有不兼容引起的花屏就难办了。不过做不到全面也很正常,买硬件去匹配软件才是正道。

自带装机也是买的准苹果机,就是这个想法
页: [1]
查看完整版本: OpenCore0.6.4 核显双显示器的几个要点