Intel HD Graphics 修正DVMT 完美免驱
最近在给一台DELL OptiPlex 7040 PC安装黑苹果, intel i7-6700的CPU, Intel HD Graphics 530的集成显卡, 用的Lilu.kext+IntelGraphicsFixup.kext+IntelGraphicsDVMTFixup.kext来驱动显卡; 使用起来一切正常, 除了开机启动二阶段花屏(八苹果闪烁). 其实对于macOS来说, 是可以原生驱动HD 530, iMac17,1用的就是i7-6700K, HD 530显卡, 而IntelGraphicsFixup.kext+IntelGraphicsDVMTFixup.kext本身并不是能驱动, 只是系统启动前对macOS原生驱动"com.apple.driver.AppleIntelSKLGraphicsFramebuffer"打补丁而已.如果主板BIOS里有DVMT的选项的话, 把DVMT设置为64~128MB(e.g. 96MB)的话, 是可以免驱启动, 完全不需要使用IntelGraphics*Fixup这两个hotpatch的. 可是主板BIOS里没有DVMT选项呢? 其实大部分BIOS都是有DVMT选项的, 只是并不能通过GUI的方式设置而已; 接下来, 就是介绍如何找到DVMT选项, 并通过hack的方式来修改BIOS(隐藏的选项).· 首先需要提取主板的BIOS ROM, 我的主要是AMBIOS, 所以我通过AMI Flasher utility提取很简单, 直接点击Save保存即可, 得到bios.rom· BIOS的固件里, 有一个模块记录着这BIOS所有的配置项, 及每个配置项允许的取值; 这里可以通过UEFITool打开这个rom文件, 然后通过unicode搜索"DVMT", 定位到存储这个配置的模块, 另存为setup.bin· 提取到了setup.bin, 可这个模块是二进制的, 可以通过IFR-Extractor将此BIOS模块转换为可读的文本Setup.txt· 打开Setup.txt(里面不仅仅有DVMT配置项目, 还有各种有用的如"CFG lock"), 找到DVMT Pre-Allocated配置项目, 你到看到这个配置项的VarOffset(理解为地址吧), 如这里的0x350, 以及DVMT的所有的取值, 如0x3 表示96MB· 可是我们要如何更新BIOS里的DVMT这个设置值呢? 刷固件吗? 不, 你开机启动时修改个BIOS设置超频什么的也不用重刷固件呀的, 因为这些值存储在CMOS里; 这里我们可以通过EFI-shell执行一个命令来更新任意配置项的设置(包括任意不可以通过BIOS GUI里没有的配置)· 解压EFI-shell.zip到U盘的任意FAT32分区根目录(e.g. 分区:/EFI/BOOT/bootx64.efi),然后重启用UEFI方式启动这个U盘, 进入到grub命令行, 执行setup_var 0x350 0x3 即可读取: setup_var 0x350写入: setup_var 0x350 0x3
设置0x350时忘记拍照的, 这里是在禁用CFG lock, 自己脑补一下即可· 噔噔噔噔, 你已成功更新DVMT为96MB, 此时可以删除掉显卡的DVMT补丁IntelGraphicsDVMTFixup.kext,正常来说, 也可以免驱了, 删除掉IntelGraphicsFixup.kext也可以正常免驱启动, 更不会有开机八苹果闪烁了!BTW, 你也可以用上述方法去修改任意你想但无法直接GUI选择的BIOS设置哦, 如涉及到CPU电源管理的CFG lock (MSR 0xE2)配置哦! 感觉黑苹果的玩法越来越多了, 以前用软件hotpatch, 现在直接hack BIOS
现在只需要下面这几个kext就可以完美驱动黑苹果了啦
引用链接:https://github.com/irelandKen/DELL-OptiPlex-7040-Clover
https://www.firewolf.science/2015/04/guide-intel-hd-graphics-5500-on-os-x-yosemite-10-10-3/
https://github.com/acidanthera/AptioFixPkg
好帖!Mark待撸~~~ 补充一下文中涉及到的工具
# Session One: 提取BIOS配置表
AMI Flasher utility https://www.wimsbios.com/amiflasher.jsp
UEFITool https://github.com/LongSoft/UEFITool/releases
IFR-Extractor https://github.com/LongSoft/Universal-IFR-Extractor/releases
# Session Two: 修改BIOS/CMOS
EFI-shell https://github.com/irelandKen/DELL-OptiPlex-7040-Clover/blob/master/EFI-shell.zip 不错的教程 新人第一帖,不火没有道理!大伙赶紧撸起,给我反馈看看! 关键HD530无法正常休眠唤醒啊 Option: 0M, Value: 0x0 {09 07 3D 11 00 00 00}
0x9CBD2 Option: 32M, Value: 0x1 {09 07 3E 11 30 00 01}
0x9CBD9 Option: 64M, Value: 0x2 {09 07 3F 11 00 00 02}
0x9CBE0 Option: 4M, Value: 0xF0 {09 07 40 11 00 00 F0}
0x9CBE7 Option: 8M, Value: 0xF1 {09 07 41 11 00 00 F1}
0x9CBEE Option: 12M, Value: 0xF2 {09 07 42 11 00 00 F2}
0x9CBF5 Option: 16M, Value: 0xF3 {09 07 43 11 00 00 F3}
0x9CBFC Option: 20M, Value: 0xF4 {09 07 44 11 00 00 F4}
0x9CC03 Option: 24M, Value: 0xF5 {09 07 45 11 00 00 F5}
0x9CC0A Option: 28M, Value: 0xF6 {09 07 46 11 00 00 F6}
0x9CC11 Option: 32M/F7, Value: 0xF7 {09 07 47 11 00 00 F7}
0x9CC18 Option: 36M, Value: 0xF8 {09 07 48 11 00 00 F8}
0x9CC1F Option: 40M, Value: 0xF9 {09 07 49 11 00 00 F9}
0x9CC26 Option: 44M, Value: 0xFA {09 07 4A 11 00 00 FA}
0x9CC2D Option: 48M, Value: 0xFB {09 07 4B 11 00 00 FB}
0x9CC34 Option: 52M, Value: 0xFC {09 07 4C 11 00 00 FC}
0x9CC3B Option: 56M, Value: 0xFD {09 07 4D 11 00 00 FD}
0x9CC42 Option: 60M, Value: 0xFE {09 07 4E 11 00 00 FE}
没有Option: 96M, Value: 0x3怎么办? xtm123456 发表于 2018-7-18 20:30
Option: 0M, Value: 0x0 {09 07 3D 11 00 00 00}
0x9CBD2 Option: 32M, Value: 0x1 {09 07 3E 11 30 0 ...
貌似>=64MB也可以,我的主板默认是32MB,直接改96MB,64MB/128MB还没试 修改BIOS达到目的是最直接也最有效的办法,像什么联想白名单,NVME协议等都可以通过刷BIOS达到目标,windows和linux能正常驱动电脑硬件都是靠BIOS,黑苹果如果找到合适的办法也是可以通过BIOS达到最接近白果的效果。 四水哥 发表于 2018-7-18 21:24
修改BIOS达到目的是最直接也最有效的办法,像什么联想白名单,NVME协议等都可以通过刷BIOS达到目标,window ...
并不修改bios,只是调整bios里的设置项,并没有修改bios固件 a565109863 发表于 2018-7-18 21:30
笔记本的bios备份失败!!!没办法弄
你可以到官网下载一份对应版本的BIOS升级文件,看看有没有办法提取到其ROM固件 我想知道我的配置怎么设置。。。我的BIOS全解锁了,设置后直接无限重启 xtm123456 发表于 2018-7-18 20:30
Option: 0M, Value: 0x0 {09 07 3D 11 00 00 00}
0x9CBD2 Option: 32M, Value: 0x1 {09 07 3E 11 30 0 ...
你的BIOS看起来最大只能设置64MB,你试试看,貌似>=64MB就可以了 wp8student 发表于 2018-7-18 21:34
我想知道我的配置怎么设置。。。我的BIOS全解锁了,设置后直接无限重启
哈哈,修正了DVTM就不需要IntelGraphicsDVMTfixup.kext了,进一步能否把其它显卡布丁去掉还得看这显卡是否在白苹果里出现过。。 wp8student 发表于 2018-7-18 21:34
我想知道我的配置怎么设置。。。我的BIOS全解锁了,设置后直接无限重启
一点点修改,慢慢排除,看看啥原因? 你好牛逼,顶你 谢谢分享{:5_280:} 学习一下,感谢分享。 这个办法很不错!