Haswell 老平台强上 Ventura 排障记录:其实 Sonoma/Sequoia 都适用,HD4600 最终章
Monterey 在这台 B85 + i5-4690 上装好没几天,直到 Flutter 吐出一行报错:
Flutter requires macOS 13.5 or later.说来戏剧,我不是被新功能诱惑升的级,是被一行最低版本检查拦住的。
从 macOS 12 Monterey 跳到 13 Ventura,在 M 芯片机器上只是一个按钮的事。但在 Haswell HD4600 上——苹果官方早把这个核显从驱动列表里删掉了。
这篇文章记录的是:如何让一台 2014 年的 Haswell 桌面在 Ventura(及 Sonoma、Sequoia)上跑出完整的 1536MB 硬件加速。HD4600 撑死也就到 Sequoia,再往后苹果连 Haswell 指令集都放弃了。所以这套方法理论上从 Ventura 一路适用到 Sequoia,本文以 Ventura 为例,遇到的坑都一样。
一、为什么要升
Flutter 3.44+ 最低要求 macOS 13.5。Xcode 15.x 也只支持 Ventura 以上。Monterey 官方支持已结束,后面只会越来越多 App 要求新系统。而且既然 HD4600 最高能到 Sequoia,一步到位到最新也无妨。
二、第一回合:SMBIOS 换型——iMac16,2 在 Ventura 下直接跪
我做的第一件事是把 Monterey 的 EFI 原样丢进 Ventura 安装盘。
启动。OC 菜单正常。选 Install macOS Ventura。
滚了两行文字,直接重启。没错误提示,没 verbose 日志截停,就是滚了一下然后 BIOS POST 画面。
这是最让人抓狂的那种——没有任何线索。
进 Monterey 翻 OC 文档。找到一句话:
Starting with macOS 13, certain SMBIOS models are restricted from running newer versions. iMac16,2 is not in the Ventura allowlist.
也就是说:Ventura 不再允许 iMac16,2 这个机型启动。不是配置问题,是苹果直接封了入口。
解决方案:用 iMac18,1 (Kaby Lake 平台) spoof。
Monterey: iMac16,2 (Haswell 原生机型) ✅
Ventura: iMac16,2 → ❌ 白名单拒绝
Ventura: iMac18,1 → ✅ spoof 可启动但 iMac18,1 是 Kaby Lake (第 7 代酷睿) 的机型,和我们的 Haswell (第 4 代) 差了三代。这已经不是”匹配”问题了,是在骗 macOS,让它以为自己在跑一台 2017 年的 iMac。
改 SMBIOS:
<key>SystemProductName</key>
<string>iMac18,1</string>同时用 GenSMBIOS 重新生成一套 SN / MLB / UUID / ROM,去 checkcoverage.apple.com 验证显示”请输入有效序列号”——这最好,说明格式对但不在 Apple 数据库,不会触发 iMessage 封号。
重新启动 Ventura 安装器。
这次进到安装界面了。松了一口气。
三、第二回合:SecureBootModel——Default 的温柔一刀
装完系统进桌面,按流程把 EFI 从 U 盘搬到内置 SSD,重启。
卡白苹果。
进度条走三分之一,不动。等了十分钟,强制关机。再试,同样位置卡住。
我的第一反应:显卡。
在 U 盘的 OC 里加 -igfxvesa(VESA 安全模式),能从 U 盘启动进桌面。既然 U 盘能进、SSD 不能进,那问题出在 SSD 的 EFI 上。
逐项对比 U 盘 EFI 和 SSD EFI 的 config.plist 差异。发现了:
<!-- U 盘 EFI(能进) -->
<key>SecureBootModel</key>
<string>Disabled</string>
<!-- SSD EFI(卡白苹果) -->
<key>SecureBootModel</key>
<string>Default</string>Monterey 时代,SecureBootModel 设 Default 毫不影响。Ventura 改了安全启动链,Default 模式下 OC 尝试加载 Ventura 的安全策略,遇上 spoof 的 iMac18,1 + Haswell 老硬件直接卡死。
改成 Disabled。重启。正常进桌面。
SecureBootModel = Default → Monterey ✅ | Ventura ❌ (spooffed SMBIOS 必炸)
SecureBootModel = Disabled → 都可以四、第三回合:-igfxvesa——删不掉的幽灵
前面调试时加过 -igfxvesa 进 VESA 安全模式。按理说调试完就该删掉。但等等——SSD EFI 的 boot-args 里这行还在。
<key>boot-args</key>
<string>-v debug=0x100 keepsyms=1 -igfxvesa ipc_control_port_options=0</string>只删掉 -igfxvesa 这一个参数就行,其他的原封不动留着。 重启:
<key>boot-args</key>
<string>-v debug=0x100 keepsyms=1 ipc_control_port_options=0</string>重启后:
system_profiler SPDisplaysDataType | grep "VRAM"
VRAM (Dynamic, Max): 7 MB还是 7MB。但不是 -igfxvesa 导致的 7MB——这是 Ventura 把 Haswell 驱动砍掉后的 7MB。两种 7MB 长得一样,导致我排查方向跑了至少一个小时。
关键教训:
-igfxvesa → 强制 VESA 模式 → 7MB实际上,后来反复验证发现:让 HD4600 在 Ventura 下跑起来,核心只需要两步——
- DeviceProperties 里
AAPL,ig-platform-id填0300220D(AwAiDQ==)- boot-args 里删掉
-igfxvesa就这两步,别的什么都不用动,显卡就能起来。前面折腾的 SMBIOS 换型是因为 iMac16,2 被 Ventura 白名单封了必须换,SecureBootModel 是为了不卡白苹果,这些跟显卡驱动本身没关系。至于下面 OCLP、AMFI 那些,是最初排查时走的弯路——后来证实不需要也能亮。
五、第四回合:AMFI 拦路——没有 amfi 参数的后果(⚠️ 后来证伪,实际不需要)
当时进桌面后,打开 OCLP,点 Post-Install Root Patch。
弹出报错:
Cannot patch due to AMFI being enabled.AMFI (Apple Mobile File Integrity) 是 macOS 的内核扩展验证机制。Ventura 默认强开 AMFI,阻止任何非 Apple 签名的 kext 加载。
需要关 AMFI:
<key>boot-args</key>
<string>-v amfi_get_out_of_my_way=1 ipc_control_port_options=0</string>同时需要 AMFIPass.kext——这是一个专门为绕过 AMFI 检查而生的 kext,放进 EFI/OC/Kexts,在 config.plist 的 Kernel → Add 里启用。
重启后,OCLP Root Patch 终于能跑了。
六、第五回合:OCLP Root Patch——走了弯路的救世主(⚠️ 后来证伪,实际不需要)
# 进桌面打开 OCLP
open /Applications/OpenCore-Patcher.app点 Post-Install Root Patch:
- Graphics: Intel Haswell → ✅ 勾上
- 弹系统密码框 → 输入密码
- 自动下载 Haswell 显卡 kext → 注入系统 → 重启
重启后:
system_profiler SPDisplaysDataType | grep "VRAM"
VRAM (Dynamic, Max): 1536 MBDock 毛玻璃回来了。Genie 动画回来了。系统信息里三个字:1536 MB。
以上的 OCLP 折腾其实是弯路,后来验证只需要 platform-id 填对 + 删掉
-igfxvesa就够了,完全不需要 Root Patch。
七、Monterey vs Ventura 差异总览
| 项目 | Monterey 12 | Ventura 13 |
|---|---|---|
| SMBIOS | iMac16,2 | iMac18,1 (spoof,iMac16,2 被白名单封了) |
| SecureBootModel | Default 可用 | 必须 Disabled |
| boot-args | -v debug=0x100 keepsyms=1 | 只删掉 -igfxvesa,别的照旧 |
| csr-active-config | AwoAAA== (0x803) | 同 Monterey,AwoAAA== |
| HD4600 驱动 | WEG 半原生 | 同样是 WEG,platform-id 填对即亮 |
| 关键坑 | stolenmem/fbmem 手写 | -igfxvesa 残留 |
| 维护成本 | 零 | 零,跟 Monterey 一样不需要额外维护 |
八、Ventura 最终配置
<!-- SMBIOS -->
<key>SystemProductName</key>
<string>iMac18,1</string>
<!-- boot-args:只比 Monterey 少了 -igfxvesa -->
<key>boot-args</key>
<string>-v debug=0x100 keepsyms=1 ipc_control_port_options=0</string>
<!-- SIP -->
<key>csr-active-config</key>
<data>AwoAAA==</data> <!-- 0x803 -->
<!-- 显卡:只写 platform-id,不写任何 FB 参数 -->
<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<dict>
<key>AAPL,ig-platform-id</key>
<data>AwAiDQ==</data> <!-- 0300220D -->
</dict>
<!-- 安全启动关 -->
<key>SecureBootModel</key>
<string>Disabled</string>Kext 清单同 Monterey:Lilu / WhateverGreen / AppleALC (layout-id=3) / VirtualSMC / SMCProcessor / SMCSuperIO / RealtekRTL8111 / USBToolBox + UTBDefault
九、常见故障速查
9.1 开了 -igfxvesa 忘记删 → 永久 7MB
只删掉 -igfxvesa,不要动其他参数。 重启即可。
9.2 卡 kIOFBNotifyDisplayModeWillChange
三种可能叠加:-igfxvesa 残留 / DeviceProperties 手写了 stolenmem / SIP 没关透。
恢复环境挂载 EFI,三项逐条排除。
9.3 恢复环境没有 nano 怎么改 config
diskutil mount disk2s1
# sed 一行删掉 -igfxvesa
sed -i '' 's| -igfxvesa||g' /Volumes/EFI/EFI/OC/config.plist
# 验证
cat /Volumes/EFI/EFI/OC/config.plist | grep "boot-args"
diskutil unmount disk2s1恢复环境是精简版 macOS,没有 nano,但 sed 和 vi 在。优先 sed,避免 vi 手滑。
十、排查清单
以后 Ventura + Haswell 遇到玄学问题,按这个顺序排查:
- SMBIOS 是 iMac18,1?iMac16,2 被 Ventura 白名单封了 = 无限重启
- SecureBootModel = Disabled?Default + spoof SMBIOS = 卡白苹果
- boot-args 里删掉
-igfxvesa了没?只删这一个,勿动其他参数 - DeviceProperties 确定没有手写 stolenmem/fbmem/patch-enable?
-
AAPL,ig-platform-id是0300220D(AwAiDQ==)?
十一、最后三句话
-
Ventura 下的 HD4600 并没有死。 platform-id 填对 + 删掉
-igfxvesa,它就活过来了。和 Monterey 一样,WEG 半原生驱动,不需要 OCLP。 -
iMac18,1 spoof + SecureBootModel Disabled 是 Haswell 上 Ventura 必须的。 前者绕白名单、后者绕安全启动链,跟显卡本身没关系。
-
保留一个可启动的安装盘。 翻车时恢复环境的终端是你唯一的朋友,没有 U 盘 EFI 做救命稻草,清 CMOS 都不一定救得回来。
从 Monterey 到 Ventura,实际上就三个变化:换 SMBIOS、关 SecureBoot、删 -igfxvesa。Sonoma、Sequoia 同理——HD4600 在 macOS 上的终点就是 Sequoia,这套方法一路通。这台 2014 年的 B85 撑住了,Flutter 3.44 和 Xcode 15 都能跑了。希望下一个接盘这坨老硬件的人,少走弯路。
测试环境:技嘉 B85M-HD3-A / i5-4690 / HD4600 / Ventura 13.7.8 EFI 版本:OpenCore 0.9.x | 工具链:OpCore-Simplify + OCAT 参考:司波图 B站视频 BV1RtqEBiEDr