Intel HD Graphics 修正 DVMT 完美免驱

2018-07-18 13:00:59 +08:00
 irelandken

最近在给一台 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

噔噔噔噔, 你已成功更新 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

10934 次点击
所在节点    macOS
1 条回复
irelandken
2018-07-18 13:02:24 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/471938

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX