核显接口输出定制

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 00080000 87010000
framebuffer-con0-enable = 01000000

最终的效果如下:

 

 

 

如果接口 1 使用 「总线 ID」为01 并不能成功,那么开始一个个尝试将其遍历到最大值 06

framebuffer-con0-alldata = 01020900 00080000 87010000
framebuffer-con0-alldata = 01030900 00080000 87010000
framebuffer-con0-alldata = 01040900 00080000 87010000
framebuffer-con0-alldata = 01050900 00080000 87010000 (我的主板是这组数据,可以完美驱动显示)
framebuffer-con0-alldata = 01060900 00080000 87010000

 

每次遍历后开始重启,最多只要再重启 5 次即可,如果都不行的话说明这个「接口 1」压根就对应不上物理的 HDMI 接口,那么只能开始遍历「接口 2、3」了

遍历接口 2

将接口 2 启用,指定显示器类型为 HDMI,并从 「总线 ID」01 开始遍历,最多尝试重启 6 次电脑即可

framebuffer-con1-alldata = 02010A00 00080000 87010000
framebuffer-con1-alldata = 02020A00 00080000 87010000
framebuffer-con1-alldata = 02030A00 00080000 87010000
framebuffer-con1-alldata = 02040A00 00080000 87010000
framebuffer-con1-alldata = 02050A00 00080000 87010000
framebuffer-con1-alldata = 02060A00 00080000 87010000

遍历接口 3

将接口 23启用,指定显示器类型为 HDMI,并从 「总线 ID」01 开始遍历,最多尝试重启 6 次电脑即可

 

同时记得多显示器的话,配合启动项:igfxonln=1 来使用。

最终效果

最终我们再重启了近 10 次电脑的情况下, HDMI 和  DVI-D 接口终于可以同时点亮显示器了:

 

遍历的细节参考,可以先在本机的当前显示的索引,总线,通道,和标识符

例如下图,当前显示的接口是 索引2,总线id 0x04,通道18,标识符0x0000003c7

 

 

 

 遍历开始时先从这组数据开始

 

  framebuffer-con1-alldata = 02041200 00080000 C7030000
↓ ↓ ↓ ↓ ↓
索引标识 索引号 总线ID 接口类型 标识符

 

授人以渔

猜测其实各大主板厂商的这些主板都是有规律的,所以这个文章下面可以放一些常见的组合案例,因为国光我 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

 

posted @   bulletplus  阅读(3284)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示