E3 1231V3+B85 D3H 黑苹果 EFI 引导与重启排错 简介这份EFI引导包面向使用Intel E3 1231V3处理器与B85 D3H主板的黑苹果用户针对该平台安装macOS时常见的声卡、显卡驱动及启动配置问题提供可直接参考或替换的EFI目录适合新手对照安装也便于有经验用户按硬件差异微调。包内共196个文件涵盖67个icns图标、37个aml与2个dsl等ACPI补丁、29个png界面素材、19个efi驱动、16个plist配置以及声卡、网卡、键鼠和传感器等kext相关文件压缩包约7.03MB目录结构较完整能覆盖引导配置、驱动与界面资源等主要环节。已有3139人学习说明该硬件组合在黑苹果社区具有一定代表性。对于希望减少调试成本的同平台用户可从中获取DSDT/SSDT等ACPI表、驱动与配置模板并结合自身硬件调整后用于EFI分区替换资源描述中提到声卡与显示已正常工作尤其适合排查音频和图形问题的安装场景也可作为理解黑苹果EFI组成的参考资料。1. E3 1231V3 B85 D3H 黑苹果 EFI 引导老平台最容易卡在第一次重启很多人以为 E3 1231V3 配 B85 D3H 是黑苹果里最好啃的那类组合——四核八线程、没有核显、DDR3 内存便宜网上搜「E3 1231V3 B85 黑苹果EFI引导」一搜一大把现成的包。我最早也这么判断直到同一块主板换了三张显卡、同一个 zip 换了四份 config.plist才明白真正卡人的不是「能不能点亮」而是「装完第一次重启之后再也没进去过」。这套 EFI 引导包处理的正是最脏的那一段活Haswell 至强在 OpenCore 下的 CPU 电源管理、8 系芯片组没有原生 NVRAM 的补丁、ALC892 声卡和 RTL8111 网卡这两个老熟人怎么塞进去。它适合手边正好有一套 LGA1150 平台、想把它当主力或备用工作机的人不适合指望它跑最新系统、装完再也不管的人。2. 装前对齐版本清单Haswell 至强该配哪个 OpenCore 与 macOSE3-1231 v3 是 Haswell RefreshLGA1150 接口没有集成显卡这点决定了后面所有取舍显卡必须独显且免驱SMBIOS 不能选带核显的机型WhateverGreen 里那套核显 framebuffer 补丁全部用不上。B85-D3H 是 8 系芯片组AHCI、XHCI 都是原生但 NVRAM 不是——这条会在第 4 章变成一个大坑。所以装之前不是先拷文件而是先把三件事对齐EFI 包的引导器版本、系统版本的天花板、以及显卡网卡声卡的驱动底账。2.1 EFI 目录里到底该有什么一个能跑 Haswell 的 OpenCore EFI结构上跑不出这几块。拿到包之后先别急着拷用tree或者 Finder 过一遍缺哪个补哪个比装到一半卡代码再回头找要省事得多。# 在解压出来的 EFI 目录下执行看整体结构 tree -L 3 EFI # 顺手确认引导器版本OpenCore.efi 的文件名和注释里会带 strings EFI/OC/OpenCore.efi | grep -m1 OpenCore路径作用缺失后果EFI/BOOT/BOOTx64.efi主板直接加载的入口开机看不到引导项EFI/OC/OpenCore.efi引导器主体同上EFI/OC/ACPI/SSDT-EC-USBX、SSDT-PLUG 等电源管理、USB 供电异常EFI/OC/Kexts/Lilu、VirtualSMC、WhateverGreen、AppleALC、RealtekRTL8111对应硬件不工作EFI/OC/Drivers/OpenRuntime.efi、HfsPlus.efi、ResetNvramEntry.efi无法读 HFS 卷、无法重置 NVRAMEFI/OC/config.plist全部配置什么都不会发生引导器版本上我一般建议 0.9.5 及以上。0.9.0 之前的部分 Quirk 命名和现在不一样网上抄来的参数对不上号会白折腾半天。Kexts 里 Lilu 必须排第一位它是所有其他 kext 的加载前提顺序错了表现为「其他 kext 明明在目录里但完全不生效」很玄学。VirtualSMC 配套的 SMCProcessor、SMCSuperIO 可以一起放前者给传感器读数后者给风扇转速不放也能开机。2.2 macOS 版本选到哪一代为止Haswell 有 AVX2理论上能往上够到较新的系统但「能装」和「能天天用」是两件事。我的取舍是这样的系统版本这套硬件上的状态建议Big Sur 11.x驱动最齐坑最少求稳首选Monterey 12.x显卡、声卡、网卡都成熟推荐日常可用Ventura 13.x需要额外补丁部分 kext 要换分支想折腾再上Sonoma 14.x老平台补丁链变长升级容易翻车不建议做主力原因不复杂越新的系统对老显卡驱动的容忍度越低Polaris 卡在 Monterey 上是原生待遇往上就得靠 WhateverGreen 打补丁每次小版本更新都可能把补丁打回原形。如果这套机器是用来干活而不是用来折腾停在 Monterey 12.7.x 是最省心的选择。2.3 B85-D3H 的 BIOS 七个开关这一步翻车率最高而且现象极具迷惑性——BIOS 没配对表现往往是「卡代码」「卡进度条」「装完进不去」你会以为是 EFI 的问题其实是主板在拦你。开机按 Del 进 BIOS把这七项改掉设置项设为不设的后果VT-dDisabled内核早期就直接崩报 IOMMU 相关CFG LockDisabled电源管理起不来卡在 XCPMCSM SupportDisabled显卡输出黑屏、分辨率异常Secure BootDisabled / Other OS引导器签名校验不过XHCI Hand-offEnabledUSB 键鼠在安装器里失效SATA ModeAHCI安装器看不到硬盘Above 4G DecodingEnabled部分显卡 BAR 分配失败B85-D3H 的 CFG Lock 常常藏在二级菜单里某些 BIOS 版本干脆不给你这一项。关不掉也不要紧config.plist 里把AppleXcpmCfgLock打开就行效果等价只是每次开机多绕一小步。另外内存如果插的是 DDR3 1600 以上把 XMP Profile 1 打开不然系统里看到的是 1333白瞎了条子。2.4 显卡、网卡、声卡的免驱底账E3-1231 v3 没有核显所以显卡是硬门槛选错了连安装器界面都进不去。免驱最省事的是 AMD Polaris 系RX 460、RX 560、RX 570、RX 580。这里有个坑要提前说清楚——市面上大量「RX 580 2048SP」是降规格版本macOS 认不出来表现为显存显示 7MB、界面卡成幻灯片。解决办法是用device-id伪装成 0x67DF或者干脆换一张标准版 2304SP。Vega 56/64 也基本免驱。Navi 系RX 5500 XT、5700需要agdpmodpikera启动参数否则进系统前黑屏。NVIDIA 这边Kepler 架构的 GTX 6xx/7xx 在 Big Sur、Monterey 上还能用Ventura 之后就不要再指望了Maxwell 和 Pascal 从 Big Sur 起就没有驱动。网卡是 Realtek RTL8111靠RealtekRTL8111.kext驱动这个 kext 在 Monterey 上要注意选对分支老版本会在高负载下断流。声卡是 Realtek ALC892走 AppleALClayout-id从 1、2、3、5、7、11、12、13、28、92、99 里面试B85-D3H 上我见过 1 和 3 都能出声选哪个看你的前置面板能不能同时正常。3. 把 EFI 写进 U 盘ESP 分区挂载与文件拷贝到位到这一步很多人会栽在一个特别不起眼的地方用 Windows 的磁盘管理格出来的 EFI 分区只有 100MB而一个带图形引导界面和音频资源的 OpenCore EFI 打包下来轻松超过这个数拷贝到一半提示空间不足你还以为是文件损坏。所以 U 盘准备这步宁可从头用 macOS 的diskutil做一遍也不要图省事。3.1 U 盘分区与 ESP 大小准备一个 16GB 以上的 U 盘先确认设备标识符。这一步必须看仔细diskutil list里认错一个盘符下面的命令就会把你自己的数据盘抹掉这种血泪经验一次就够。# 列出全部磁盘根据容量和挂载点认出目标 U 盘假设是 /dev/disk4 diskutil list # 整盘重做GPT 分区表 FAT32卷标 ESP-SETUP diskutil eraseDisk FAT32 ESP-SETUP GPT /dev/disk4 # 确认新分区结构EFI 分区通常落在 disk4s1 diskutil list /dev/disk4eraseDisk的三个参数依次是文件系统、卷标、分区表方案。选 GPT 而不是 MBR是因为 UEFI 固件只认 GPT 上的 ESP 分区。FAT32 是 ESP 的强制格式不要图新鲜选 ExFAT固件读不了。做完之后如果发现 ESP 只有 100MB说明这张盘之前被别的工具初始化过重新执行一次eraseDisk即可macOS 默认给的 ESP 是 200MB。3.2 挂载 ESP 并拷贝 EFI分区做好之后挂载用ditto而不是cp -R。原因很实在kext 目录里带大量扩展属性和符号链接cp -R在某些情况下会把它们丢掉最后表现为「kext 明明在但系统不认」。# 挂载 U 盘的 ESP 分区 sudo diskutil mount /dev/disk4s1 # 用 ditto 完整拷贝保留属性和权限 sudo ditto /Users/me/Downloads/EFI /Volumes/EFI/EFI # 校验一下目录层级正确的样子是 /Volumes/EFI/EFI/OC/... ls -la /Volumes/EFI/EFI拷贝完成后ESP 根目录下应该只有一层EFI文件夹里面是BOOT和OC两个子目录。常见错误是多套了一层变成EFI/EFI/OC主板扫不到BOOTx64.efi开机直接回 BIOS。如果这台机器是双系统ESP 里原本还有Microsoft目录拷贝前先整个备份到桌面别手一抖删掉Windows 就起不来了——这个后悔药不好买。3.3 首次启动前必须改的三处 SMBIOSconfig.plist 里PlatformInfo那一段是空的或者带着别人的序列号直接开机大概率能进系统但 iCloud、App Store、iMessage 全部不能用甚至可能因为序列号冲突被锁。正确的做法是用 GenSMBIOS 生成一套自己的。# 下载 GenSMBIOS 后在脚本目录执行机型选 iMacPro1,1无核显 ./GenSMBIOS.command # 菜单里依次选 2生成 SMBIOS→ 输入 iMacPro1,1生成出来四行SystemSerialNumber、MLB、SystemUUID、ROM。前三个直接填进PlatformInfo → Generic。ROM填本机网卡 MAC 地址去掉冒号后的大写 12 位十六进制比如 MAC 是aa:bb:cc:dd:ee:ff就填AABBCCDDEEFF。机型选iMacPro1,1的理由是它本身就没有核显系统不会去找一个不存在的 iGPU 来做硬件解码比硬套iMac15,1再打一堆补丁干净得多。4. config.plist 逐项配Xeon 无核显平台的四处取舍配置文件的坑不在「项多」而在「抄来的参数跟你的平台不匹配」。E3-1231 v3 这套组合有几个非常具体的特征至强没有核显、8 系芯片组没有原生 NVRAM、Haswell 的 XCPM 电源管理需要 CFG Lock 配合。下面四处是必须动手改的其余保持默认。4.1 Kernel 段kext 顺序与五个关键 Quirk先看 kext 加载顺序和 Quirk 配置这是能不能进安装器的分水岭。!-- Kernel → Add 段顺序即加载顺序Lilu 必须第一 -- array dict keyBundlePath/keystringLilu.kext/string keyEnabled/keytrue/ /dict dict keyBundlePath/keystringVirtualSMC.kext/string keyEnabled/keytrue/ /dict dict keyBundlePath/keystringWhateverGreen.kext/string keyEnabled/keytrue/ /dict dict keyBundlePath/keystringAppleALC.kext/string keyEnabled/keytrue/ /dict dict keyBundlePath/keystringRealtekRTL8111.kext/string keyEnabled/keytrue/ /dict /array接着是Kernel → Quirks这几项按平台特性开Quirk值说明AppleXcpmCfgLocktrueBIOS 关不掉 CFG Lock 时的替代方案AppleCpuPmCfgLocktrue老式 AppleIntelCPUPowerManagement 路径配合上一项DisableIoMappertrueVT-d 关不掉时兜底能关 BIOS 就优先关 BIOSPanicNoKextDumptrue内核崩溃时输出可读信息排错必备ProvideCurrentCpuInfotrue至强平台 CPU 拓扑识别不开容易只认到部分核心XhciPortLimitfalseMonterey 起不要再开会破坏端口映射AppleXcpmExtraMsrs先保持 false。这一项主要给部分至强平台用Haswell 桌面至强一般不需要开了反而可能引起电源管理报错。真遇到 XCPM 相关崩溃再回来打开。Emulate段的Cpuid1Data全部留空E3-1231 v3 不需要伪装 CPUID随便填反而会让系统认错平台。4.2 DeviceProperties声卡 layout-id 和显卡属性这一节只处理两个设备板载声卡和独显。声卡走PciRoot(0x0)/Pci(0x1b,0x0)这是 8 系芯片组上 HD Audio 控制器的标准路径。keyDeviceProperties/key dict keyAdd/key dict !-- ALC892layout-id 用 1没声音就改 3 或 11 -- keyPciRoot(0x0)/Pci(0x1b,0x0)/key dict keylayout-id/keydataAQAAAA/data /dict /dict /dictdataAQAAAA/data是 4 字节小端序的01 00 00 00也就是 layout-id 1。想改成 3对应 base64 是AwAAAA改 11 是CwAAAA。这个编码方式第一次见会觉得莫名其妙其实用 ProperTree 直接填数字它会自动转。显卡这边标准版 RX 570/580 一般不需要额外属性WhateverGreen 自己会处理。只有 2048SP 那种认不出来的卡才需要在显卡路径下补device-id!-- 显卡路径2048SP 伪装成标准版 Polaris 10 -- keyPciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/key dict keydevice-id/keydata30Zwlg/data /dict用 ProperTree 的时候直接填67DF让它自己转 base64 更稳手写容易错一位。显卡这块有一条原则能不加属性就不加属性越多系统小版本升级后失效的概率越大。4.3 NVRAM 模拟8 系芯片组绕不过去的一道坎这是 B85 平台最容易被忽略的地方。100 系以后的主板有原生 NVRAMboot-args、csr-active-config写进去就一直在。8 系没有表现是你在 config.plist 里设的启动参数第一次开机生效重启一次就丢了SIP 设置也回到默认装驱动时反复失效特别像玄学。OpenCore 给的方案是模拟 NVRAM需要三件事同时做!-- NVRAM → LegacyEnable / LegacyOverwrite / WriteFlash 三项都要 true -- keyLegacyEnable/keytrue/ keyLegacyOverwrite/keytrue/ keyWriteFlash/keytrue/光开这三项还不够还要在 ESP 根目录放一份nvram.plist并把 OpenCore 自带的LogoutHook挂到关机流程里让系统每次关机时把 NVRAM 内容写回文件。少了这一步LegacyEnable等于没开因为没有任何东西去更新那个文件。命令大致是这样# 把 OpenCore 包里的 LogoutHook 装到系统开机自动写回 nvram.plist sudo /path/to/LogoutHook/LogoutHook.command install # 检查是否生效能看到当前启动参数和 SIP 设置 nvram -p | grep -E boot-args|csr-active-config如果第二条命令输出为空说明模拟没成功回到前面确认nvram.plist是否在 ESP 根目录、LegacyEnable是否真的存盘了。顺带说启动参数。这套平台我一般只留三个-v keepsyms1 alcid1。-v是啰嗦模式方便看卡在哪keepsyms1让崩溃时打出符号名而不是一串地址alcid1和 config.plist 里的 layout-id 对应两边保持一致少一类变量。装好稳定之后把-v去掉开机干净很多。SIP 用csr-active-config00000000全开日常使用不需要关。4.4 USB 端口定制一次性做对省掉后面所有睡眠问题B85-D3H 的 USB 口不少后置 2 个 USB3.0、4 个 USB2.0加上前置面板和内部插针总计十几个端口。macOS 对单个控制器的端口数有上限超出部分直接不认表现为「插上没反应」或者「睡眠秒醒」。正确做法是定制端口。在 Windows 下用 USBToolBox 扫描一遍每个物理口的端口号或者在已能进系统的 macOS 里直接看# 列出当前识别到的 USB 设备与端口记录每个物理口对应的 port 号 ioreg -p IOUSB -l -w 0 | grep -E USB Product Name|port # 再看控制器层的端口映射 ioreg -r -c AppleUSBXHCI -l | grep -i port把每个物理口插一遍设备、记下 port 号只保留实际存在的端口删掉多余的定义最后生成USBPorts.kext放进 Kexts。这一步花二十分钟能省掉后面所有「睡眠秒醒」「唤醒黑屏」「USB 硬盘掉盘」的排查时间。定做完之后把XhciPortLimit关掉两者不能同时用。5. 常见问题排查五条从卡代码到睡死的踩坑记录装黑苹果最难的不是装是装坏了不知道从哪下手。下面五条是我在这套 E3-1231 v3 B85-D3H 上真实遇到过的按现象、原因、解决三段写遇到对得上的直接照做。5.1 卡在[EB|#LOG:EXITBS:START]不动现象啰嗦模式最后一行停在这个标记之后十几分钟没动静风扇正常转。原因这个标记之后是 Booter 移交控制权给内核的阶段卡在这里九成是内存映射或者 CFG Lock 的问题。8 系芯片组上最常见的是SetupVirtualMap没开或者 BIOS 里的 CFG Lock 关不掉而AppleXcpmCfgLock又是 false。解决先确认Booter → Quirks里SetupVirtualMap、RebuildAppleMemoryMap、EnableWriteUnprotector三项都是 true。Monterey 及以下这三个组合最稳。如果还卡回 BIOS 找 CFG Lock找不到就把AppleXcpmCfgLock打开重试。这一步别急着换 EFI 包八成不是包的问题。5.2 进度条走到一半黑屏显示器无信号现象安装器加载完进度条走到大约三分之一屏幕直接断信号机器还在跑。原因显卡输出链路的问题不是驱动没装。CSM 没关、用了主板上的 VGA 或者 DVI 口、或者是 Navi 卡缺agdpmodpikera。解决先确认 BIOS 里 CSM Support 是 Disabled然后把线换到 DisplayPort 或者 HDMI 上试B85-D3H 的板载输出对黑苹果基本没用不要接。Navi 系显卡在boot-args里补agdpmodpikera。Polaris 卡不需要这个参数加了反而可能不亮。5.3 睡下去三秒自己醒反复循环现象点睡眠机器熄灯两三秒后风扇又转起来屏幕亮日志里能看到 Wake reason。原因USB 端口没定制某个不存在的端口上报了唤醒事件或者 BIOS 里的串口没关系统把它当成唤醒源再或者是网卡的 Wake on LAN 在作怪。解决按 4.4 节把 USB 端口定做完BIOS 里 Serial Port 设为 Disabled网卡高级设置里关掉 Wake on LAN。做完这三样还醒用pmset -g assertions看是哪个进程持有断言通常是某个后台服务针对性处理。5.4 ALC892 没声音或者只有后置有声前置没声现象系统里能看到音频设备音量条能拖就是不出声或者反过来后置正常插前置面板没反应。原因layout-id 和主板的实际节点定义对不上。ALC892 在不同板型上的节点布局有差异同一个 layout-id 在别的板子上好用在 B85-D3H 上可能只映射了一半。解决用alcidN启动参数一个个试重点试 1、3、11、13。每次改完重启插一副耳机在后置绿口上放一段音频测试。找到能同时让后置和前置都出声的那个再把它写回 config.plist 的layout-id。这个过程比较磨人但比换 kext 靠谱。5.5 每次重启后启动参数丢失、SIP 自动恢复现象改好的boot-args和csr-active-config第一次开机生效重启一次就回到默认值装驱动时反复失效。原因8 系芯片组没有原生 NVRAM模拟 NVRAM 的三件套没配齐或者LogoutHook没装上系统关机时没把内容写回nvram.plist。解决回到 4.3 节逐项核对。LegacyEnable、LegacyOverwrite、WriteFlash三项全 trueESP 根目录有nvram.plistLogoutHook已安装。装完之后正常关机一次再开机用nvram -p验证能看到内容就说明写回成功了。这一步不做后面所有配置都像建在沙子上。6. 装完怎么验证跑通三条自检命令和一个强制习惯系统装完、能进桌面只说明引导通了不代表这套环境能用。我一般会跑三条命令把关键项过一遍比在界面上点点点快得多也更容易发现问题。# 1. 硬件识别CPU 核心数、内存频率、显卡型号是否都对 system_profiler SPHardwareDataType SPDisplaysDataType # 2. 显卡加速出现 IOAccelerator 才说明硬件加速真的开了 ioreg -l | grep -i IOAccelerator | head -5 # 3. NVRAM 与 SIP确认启动参数和 SIP 状态稳定不丢 nvram -p | grep -E boot-args|csr-active-config第一条看三处CPU 是不是 4 核 8 线程、内存频率是不是 1600 而不是 1333、显卡型号有没有显示成kXxxxx之类的未知设备。第二条如果只输出空行说明显卡还在软件渲染Dock 栏不会有半透明视频播放也会卡这时候回去查 WhateverGreen 有没有加载、device-id有没有配对。第三条的输出要和 config.plist 里写的一致重启两次再跑一遍两次结果相同才算稳定。再补两个界面层的验证。声卡插上耳机放一段音乐同时拖动音量滑块听有没有爆音USB 拿一个 U 盘分别插后置和前置的 3.0、2.0 口看能不能都识别。睡眠验证别只看屏幕灭没灭睡下去等五分钟用键盘唤醒看有没有花屏或者需要重新登录。这几项过了这套 E3-1231 v3 基本就能当日常机用了。从那以后我每次装完这种老平台都会强制走一遍「重启两次再跑nvram -p」的流程不管第一次看着多正常。8 系芯片组的 NVRAM 模拟就是这样第一次永远是对的问题都在第二次开机之后才暴露早发现比装完一周后突然开不了机要省事得多。希望这套流程能帮到你少走几趟我走过的弯路。本文还有配套的精品资源点击获取