V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
irelandken
V2EX  ›  macOS

Intel HD Graphics 修正 DVMT 完美免驱

  •  1
     
  •   irelandken · 2018-07-18 13:00:59 +08:00 · 10888 次点击
    这是一个创建于 2080 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在给一台 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 很简单, 直接点击 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

    irelandken
        1
    irelandken  
    OP
       2018-07-18 13:02:24 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1146 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:58 · PVG 06:58 · LAX 15:58 · JFK 18:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.