核显接口输出定制
作者:互联网
macOS 下使用核显输出的话,一般 DP 接口都是免驱的,如果使用 HDMI 的话可能显示器会黑屏或者颜色输出不正确,所以往往需要我们进行显示接口定制。
本文转发至国光个人博客,在此感谢国光给的思路。
设备介绍
本次教程实用的设备信息如下:
类别 | 值 |
---|---|
主板 | 微星 b250i Pro |
CPU | i5-7500 |
GPU | Intel HD Graphics 630 |
接口 | 1个HDMI™端口,支持最大分辨率为4096x2160@30Hz(第七代CPU), 4096x2160@24Hz(第六代 CPU), 2560x1600@60Hzy 1个DVI-D 端口,支持最大分辨率为1920x1200@60Hz |
音频 | Realtek®ALC887 解码芯片 7.1-声道高清音频 |
LAN | 1 个 Realtek RTL8111H 千兆网络控制器 |
OC 配置信息
言简意赅,由于我的主板基本上选项齐全,这里核显部分只注入了 ID 属性:
重启进入系统后,Hackintool 通过这个核显 ID,自动判断了当前的平台 ID 为:0x591200
查看接口信息
Hackintool 里面找到「应用补丁」-「接口」选择上面你看到的平台 ID,即可看到当前的接口情况
[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x00000187 - ConnectorDP [2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x00000187 - ConnectorDP [3] busId: 0x06, pipe: 10, type: 0x00000400, flags: 0x00000187 - ConnectorDP
可以看到,这个平台默认是 3 个接口,而且都走的是 DP,而我们的主板的接口如下:
是 1 个 HDMI + 1 个 DVI-D 的经典组合,所以此时我们的 HDMI 并无信号显示,那么该怎么办可以让这个 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
- 当没有物理显示接口的时候使用
查找官方手册
WhatGreen 的官方手册里查找我们当前这个平台 ID 的缓冲帧信息:
ID: 0x59120000, STOLEN: 38 MB, FBMEM: 0 bytes, VRAM: 1536 MB, Flags: 0x0000110B TOTAL STOLEN: 39 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 115 MB, MAX OVERALL: 116 MB (122171392 bytes) Model name: Intel HD Graphics KBL CRB Camelia: CameliaDisabled (0), Freq: 1388 Hz, FreqMax: 1388 Hz Mobile: 0, PipeCount: 3, PortCount: 3, FBMemoryCount: 3 [1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x00000187 - ConnectorDP [2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x00000187 - ConnectorDP [3] busId: 0x06, pipe: 10, type: 0x00000400, flags: 0x00000187 - ConnectorDP 01050900 00040000 87010000 02040A00 00040000 87010000 03060A00 00040000 87010000
可以看到这个 0x59120000 平台列出了 3 个总线 ID,我们将它们分解以便更容易理解,这里就拿第 1 个举个例子,详细解释可以看下图:
- 「总线 ID 」是唯一的,多个接口不能共用
- 「总线 ID」在大多数平台上的最大值为
06
- 「总线 ID」很关键,一般我们定制接口,实际上就是在摸索遍历这个值
- 「通道」这个其实没有参考价值,大家可以根据手册里面不同平台建议的值来写
- B7010000 属于标识符,根据手册查找填写就行了
- 定制接口显示数还需要配合
framebuffer-patch-enable | Data | 01000000
使用
遍历接口 1
现在开始定制显示器接口 1,一般只需要遍历 busid 即可,索引号、通道、标识符保持手册里面查询的那样不变,将接口 1 指定为 HDMI 类型:
framebuffer-con0-alldata = 01010900 00040000 87010000
framebuffer-con0-enable = 01000000
最终的效果如下:
如果接口 1 使用 「总线 ID」为01
并不能成功,那么开始一个个尝试将其遍历到最大值 06
:
framebuffer-con0-alldata = 01020900 00040000 87010000 framebuffer-con0-alldata = 01030900 00040000 87010000 framebuffer-con0-alldata = 01040900 00040000 87010000 framebuffer-con0-alldata = 01050900 00040000 87010000 framebuffer-con0-alldata = 01060900 00040000 87010000
每次遍历后开始重启,最多只要再重启 5 次即可,如果都不行的话说明这个「接口 1」压根就对应不上物理的 HDMI 接口,那么只能开始遍历「接口 2、3」了
遍历接口 2
将接口 2 启用,指定显示器类型为 HDMI,并从 「总线 ID」01
开始遍历,最多尝试重启 6 次电脑即可
framebuffer-con1-alldata = 02010A00 00040000 87010000 framebuffer-con1-alldata = 02020A00 00040000 87010000 framebuffer-con1-alldata = 02030A00 00040000 87010000 framebuffer-con1-alldata = 02040A00 00040000 87010000 framebuffer-con1-alldata = 02050A00 00040000 87010000 framebuffer-con1-alldata = 02060A00 00040000 87010000
遍历接口 3
将接口 23启用,指定显示器类型为 HDMI,并从 「总线 ID」01
开始遍历,最多尝试重启 6 次电脑即可
同时记得多显示器的话,配合启动项:igfxonln=1
来使用。
最终效果
最终我们再重启了近 10 次电脑的情况下, HDMI 和 DVI-D 接口终于可以同时点亮显示器了:
授人以渔
猜测其实各大主板厂商的这些主板都是有规律的,所以这个文章下面可以放一些常见的组合案例,因为国光我 1 个人精力有限,所以也欢迎评论区下面共享你们的成功案例(附上主板型号 和接口数据 就行了), 具体格式可以参考下面:
华擎 AsRock
- DP + HDMI:Z490 Steel Legend
framebuffer-con1-alldata = 02020A00 00040000 C7030000 framebuffer-con2-alldata = 03040800 00080000 C7030000
- DP + HDMI:Z490 Extreme4(来自网友Emiliaヾ QQ 号:466672813 分享提供)
framebuffer-con2-alldata = 03040800 00080000 C7030000
华硕 ASUS
- DP + HDMI:ROG STRIX B460-I GAMING(来自网友乌龙蜜桃来一打 QQ 号:47997806 分享提供)
framebuffer-con0-alldata = 01060900 00040000 C7030000 framebuffer-con1-alldata = 02040A00 00080000 C7030000
- DP + HDMI:Z170I PRO GAMING(来自网友乌龙蜜桃来一打 QQ 号:47997806 分享提供)
framebuffer-con0-alldata = 01050900 00080000 C7030000
- HDMI + DVI:TUF B360M-PLUS GAMING(来自网友。 QQ 号:136046797 分享提供)
framebuffer-con1-alldata = 02020A00 00080000 C7030000
- 华硕飞行堡垒6 FX504GE HM370 芯片组(来自网友XRC QQ 号:3127679723 分享提供)
framebuffer-con2-alldata =01050900 00080000 C7010000
戴尔 Dell
- HDMI + VGA:Vostro 3260 100系(来自网友梦卿樱似屿 QQ 号:209241494 分享提供)
AAPL,ig-platform-id = 00001259 framebuffer-con0-alldata = 01050900 00080000 C7030000 framebuffer-con1-alldata = 02000A00 00040000 C7030000 (VGA 可能不行)
微星 MSI
- HDMI:MAG B365M MORTAR (来自群网友 QQ 号:9351991 分享提供)
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(来自网友Emiliaヾ QQ 号:466672813 分享提供)
framebuffer-con0-alldata = 01010800 00080000 C7030000
联想 Lenovo
- HDMI:扬天 S540-14-IWL-HDMI(来自群网友 璃朴:2914406369 分享提供)
framebuffer-con1-alldata = 01010900 00080000 C7010000
- HDMI + VGA:V330-15IKB LNVNB161216 芯片组(来自群网友 风之翼:1716890278 分享提供)
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
标签:HDMI,00040000,接口,核显,87010000,定制,framebuffer,alldata 来源: https://www.cnblogs.com/Bulletgod/p/16503729.html