视频教程
图文教程
macOS 下使用核显输出的话,一般 DP 接口都是免驱的,如果使用 HDMI 的话可能显示器会黑屏或者颜色输出不正确,所以往往需要我们进行显示接口定制。
设备介绍
本次教程实用的设备信息如下:
OC 配置信息
言简意赅,由于我的主板基本上选项齐全,这里核显部分只注入了 ID 属性:
Clover四叶草引导配置同理,配置路径config.plist-设备设置-属性下添加
重启进入系统后,Hackintool 通过这个核显 ID,自动判断了当前的平台 ID 为:0x3E9B0007
查看接口信息
Hackintool 里面找到「应用补丁」-「接口」选择上面你看到的平台 ID,即可看到当前的接口情况:
可以看到,这个平台默认是 3 个接口,而且都走的是 HDMI,而我们的主板的接口一个是DP,另外一个是HDMI:
是 1 个 HDMI + 1 个 DP 的经典组合,所以此时我们的 DP+HDMI 并无信号显示,那么该怎么办可以让这个 DP+ HDMI 显示呢?不要慌,继续往下看。
显示接口类型
- 02000000
- LVDS 和 eDP 接口
- 一般用于驱动笔记本内置显示器
- 00040000
- DP 接口
- 一般 USB-C 里面内置的就是 DP 接口的显示器
- macOS 下 DP 接口一般是免驱的
- 00080000
- HDMI 接口
- macOS 下的 HDMI 一般都不可以正常显示的,得需要定制下接口数据
- 10000000
- VGA 接口
- 10.8 版本后默认是不支持 VGA 显示器的
- 如果你的 CPU 是 6代往后的话,实际上走的还是 DP 接口,所以当做 DP 接口驱动就行了
- 04000000
- 双链 DVI 接口
- 这玩意基本上淘汰了
- 00020000
- 单链 DVI 接口
- 这玩意基本上淘汰了
- 80000000
- S 端子接口
- 这玩意基本上淘汰了
- 01000000
- 当没有物理显示接口的时候使用
常用接口类型和总线ID的对应表
DP | HDMI | DVI |
0x02 | 0x01 | 0x01 |
0x04 | 0x02 | 0x02 |
0x05 | 0x04 | 0x04 |
0x06 | 0x06 | 0x06 |
- DP灵活多变,允许使用总线ID 有0x02,0x04,0x05,0x06,每个值理论上适用于任何主板。
- HDMI非常严格,只允许使用以下总线ID: 0x01,0x02,0x04,0x06,而且部分主板只接受这些值中的一种或两种。例如,技嘉 Z390只接受0x04。
- DVI与HDMI相同,使用相同的总线ID,甚至使用相同的类型。
但是对于黑苹果来说总线ID从01到06基本涵盖了常用的接口
查找官方手册或使用Hackintool工具
WhatGreen 的官方手册里查找我们当前这个平台 ID 的缓冲帧信息:
Model name: Intel UHD Graphics 630 ID: 3E9B0007
Mobile: 0, PipeCount: 3, PortCount: 3, FBMemoryCount: 3
[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x000003C7 - ConnectorDP
[2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x000003C7 - ConnectorDP
[3] busId: 0x06, pipe: 8, type: 0x00000400, flags: 0x000003C7 - ConnectorDP
01050900 00040000 C7030000
02040A00 00040000 C7030000
03060800 00040000 C7030000
也可以直接看Hackintool工具显示的,需要注意的是,Hackintool工具应用补丁下的CPU架构及平台ID,需要根据你核显仿冒的ID选择
可以看到这个 3E9B0007 平台列出了 3 个总线 ID,我们将它们分解以便更容易理解,这里就拿 1 个举个例子,详细解释可以看下图:
- 「总线 ID 」是唯一的,多个接口不能共用
- 「总线 ID」在大多数平台上的最大值为
06
- 「总线 ID」很关键,一般我们定制接口,实际上就是在摸索遍历这个值
- 「通道」这个其实没有参考价值,大家可以根据手册里面不同平台建议的值来写
C7030000
属于标识符,根据手册查找填写就行了- 定制接口显示数还需要配合
framebuffer-patch-enable | Data | 01000000
使用
遍历接口 1
现在开始定制显示器接口 1,一般只需要遍历 busid 即可,索引号、通道、标识符保持手册里面查询的那样不变,将接口 1 指定为 HDMI 类型:
framebuffer-con0-alldata = 01010900 00080000 C7030000
framebuffer-con0-enable = 01000000
最终的效果如下:
替换完重启看看,正常情况这里 HDMI 如果没有工作,但是可以看到我们指定的 HDMI 接口类型生效了:
如果接口 1 使用 「总线 ID」为01
并不能成功,那么开始一个个尝试将其遍历到最大值 06
:
framebuffer-con0-alldata = 01020900 00080000 C7030000
framebuffer-con0-alldata = 01030900 00080000 C7030000
framebuffer-con0-alldata = 01040900 00080000 C7030000
framebuffer-con0-alldata = 01050900 00080000 C7030000
framebuffer-con0-alldata = 01060900 00080000 C7030000
每次遍历后开始重启,最多只要再重启 5 次即可,如果都不行的话说明这个「接口 1」压根就对应不上物理的 HDMI 接口,那么只能开始遍历「接口 3」了
遍历接口 3
将接口 3 启用,指定显示器类型为 HDMI,并从 「总线 ID」01
开始遍历,最多尝试重启 6 次电脑即可:
framebuffer-con2-alldata = 03010800 00080000 C7030000
framebuffer-con2-alldata = 03020800 00080000 C7030000
framebuffer-con2-alldata = 03030800 00080000 C7030000
framebuffer-con2-alldata = 03040800 00080000 C7030000
framebuffer-con2-alldata = 03050800 00080000 C7030000
framebuffer-con2-alldata = 03060800 00080000 C7030000
幸运的是,我第一次尝试了索引1「总线 ID」为01
的时候成功了:
framebuffer-con0-alldata = 01010900 00080000 C7030000
如果因为接口 2 和 3 「总线 ID」冲突的原因,我们需要手动将接口 2 换成其他的「总线 ID」,同样都得遍历一遍:
framebuffer-con1-alldata = 02010A00 00040000 C7030000
framebuffer-con1-alldata = 02020A00 00040000 C7030000
framebuffer-con1-alldata = 02030A00 00040000 C7030000
framebuffer-con1-alldata = 02050A00 00040000 C7030000
framebuffer-con1-alldata = 02060A00 00040000 C7030000
同时记得多显示器的话,配合启动项:igfxonln=1
来使用。
遍历接口组合释义图
最终效果
最终我们再重启了近 10 次电脑的情况下, DP 和 HDMI 接口终于可以同时点亮显示器了:
各大主板厂商的这些主板都是有规律的,所以这个文章下面可以放一些常见的组合案例
华擎 AsRock
- DP + HDMI:Z490 Steel Legend
framebuffer-con1-alldata = 02020A00 00040000 C7030000
framebuffer-con2-alldata = 03040800 00080000 C7030000
- DP + HDMI:Z490 Extreme4
framebuffer-con2-alldata = 03040800 00080000 C7030000
华硕 ASUS
- DP + HDMI:ROG STRIX B460-I GAMING
framebuffer-con0-alldata = 01060900 00040000 C7030000
framebuffer-con1-alldata = 02040A00 00080000 C7030000
- DP + HDMI:Z170I PRO GAMING
framebuffer-con0-alldata = 01050900 00080000 C7030000
- HDMI + DVI:TUF B360M-PLUS GAMING
framebuffer-con1-alldata = 02020A00 00080000 C7030000
- 华硕飞行堡垒6 FX504GE HM370 芯片组
framebuffer-con2-alldata =01050900 00080000 C7010000
戴尔 Dell
- HDMI + VGA:Vostro 3260 100系
AAPL,ig-platform-id = 00001259
framebuffer-con0-alldata = 01050900 00080000 C7030000
framebuffer-con1-alldata = 02000A00 00040000 C7030000 (VGA 可能不行)
微星 MSI
- HDMI:MAG B365M MORTAR
framebuffer-con0-alldata = 01050900 00080000 C7030000
- DP + HDMI:MPG Z390 GAMING PRO CARBON AC
framebuffer-con0-alldata = 01010900 00080000 C7030000
- DP + HDMI:MAG B460M MORTAR
framebuffer-con0-alldata = 01010800 00080000 C7030000
联想 Lenovo
- HDMI:扬天 S540-14-IWL-HDMI(来自群网友 璃朴:2914406369 分享提供)
framebuffer-con1-alldata = 01010900 00080000 C7010000
- HDMI + VGA:V330-15IKB LNVNB161216 芯片组
framebuffer-con1-alldata = 01050900 00040000 87010000
framebuffer-con2-alldata = 02040A00 00080000 87010000
技嘉 GIGABYTE
- DP + HDMI:B360M AORUS PRO
framebuffer-con0-alldata = 01050900 00040000 C7030000
framebuffer-con2-alldata = 03040800 00080000 C7030000
本教程所需工具下载解压密码imacos.top
评论8