1. 先搞清楚这台 Ruby 15.6 到底值不值得折腾
手里这台小米笔记本 Ruby 15.6 是 2018 年入的,i5-8250U 加 MX110,8G 内存,256G 固态。当年买它图的是便宜和那块 15.6 寸的 1080p 屏,用到现在跑 Windows 只能说够用,风扇一年比一年响。上个月硬盘空间见底,换了块 1T 的盘,顺手就拿它试了 macOS 14 Sonoma 的黑苹果(Hackintosh),从最开始"能亮机就行"折腾到最后外接显示器、睡眠唤醒、亮度调节都正常,前后大概两个周末。
写这篇是想把整个过程记录下来。不是那种"复制粘贴一份 EFI 就完事"的流水账,而是把这台机器为什么能黑、Sonoma 比前几个版本多了哪些坑、哪些地方必须换硬件、哪些地方只能妥协,一条条说清楚。手里有同款 Ruby 15.6(2018/2019 款,也就是 i5-8250U、i5-8265U、i5-10210U 这几批)的朋友可以照着走;手里的机器是别的 Kaby Lake-R 或者 Whiskey Lake 平台,思路也基本通用,把显卡和声卡的参数换一下就行。
先给结论:这台机器在 Sonoma 上的完成度能做到九成左右——核显硬解、声卡、USB、电池、亮度、触控板、睡眠这些日常功能都能正常,核显也能带 4K 外接。剩下的那一成主要是 AirDrop、隔空播放、接力这些依赖苹果原厂无线网卡的连续互通功能,以及独显 MX110 永远不可能被驱动。把预期先定在这个位置,后面每一步才知道自己在为什么忙活。
1.1 硬件清单:能不能黑,看的是这几个部件
黑苹果这件事,成败几乎完全由硬件决定,软件只是把硬件能力"翻译"给 macOS 听。所以动手之前,第一件事是把自己的配置摸清楚,尤其是下面这几个部件。
| 部件 | Ruby 15.6 2018/2019 常见配置 | 黑苹果友好度 | 说明 |
|---|---|---|---|
| CPU | i5-8250U / i7-8550U / i5-10210U | 高 | 这几代核显都在 macOS 驱动覆盖范围内,是这台机器能玩的前提 |
| 核显 | Intel UHD Graphics 620 | 高 | 需要伪装 device-id,但驱动成熟 |
| 独显 | NVIDIA MX110 / MX250 | 无 | 苹果早就停止支持 NVIDIA 消费级显卡,只能屏蔽 |
| 无线网卡 | Intel AC 8265 / 9560,部分批次别的 | 中 | Intel 卡能驱动但缺连续互通功能,想完美得换卡 |
| 声卡 | Realtek ALC256 | 中高 | AppleALC 支持,但要挨个试 layout-id |
| 存储 | M.2 NVMe 固态 | 视颗粒而定 | 三星某些型号(PM981 系列)问题多,其余基本正常 |
| 触控板 | I2C 或 PS/2 接口 | 中 | 需要先判断总线类型再选驱动 |
| 读卡器、指纹 | Realtek 读卡器、无指纹 | 无 | 基本可以放弃,不影响日常 |
判断一台机器能不能黑,我自己的经验是抓三个关键点:核显能不能被驱动、无线网卡有没有替代方案、存储会不会掉盘。核显是命根子,核显驱动不了就没有硬件加速,整个系统会卡到没法用;无线网卡是体验分水岭,能不能接受没 AirDrop 决定了要不要花两百块换卡;存储则是稳定性问题,掉盘或者睡眠唤醒丢盘这种毛病,很多时候不是配置写错了,而是那根固态本身在 macOS 下水土不服。
这里要特别说一下 MX110 这块独显。很多人第一反应是"独显性能强,是不是能一起驱动",答案是绝对不行。苹果从 macOS 10.14 之后就没再给 NVIDIA 消费级显卡提供驱动,NVWebDriver 也早就停更了。所以正确的做法是在设备层面把它屏蔽掉,让 macOS 只看见核显。屏蔽的方法有两种,一种是通过 ACPI 补丁在_OFF方法里关掉独显电源(更彻底、更省电),另一种是用-wegnoegpu这个启动参数直接让 WhateverGreen 忽略它(更简单,适合先跑起来再说)。我最后用的是 ACPI 补丁方案,后面第 3 章会展开讲。
1.2 Sonoma 相比 Monterey/Ventura 多出来的三个坑
如果你之前黑过 Monterey 或者 Ventura,会觉得 Sonoma 应该也差不多。实际上 Sonoma 有几个明显的改动,直接影响到老平台的适配,Ruby 15.6 正好踩在线上。
第一个坑是苹果在 Sonoma 里移除了对一批博通无线网卡的原生驱动支持,最典型的就是 BCM94360 系列(也就是很多黑苹果玩家手里那张"免驱神卡")。这意味着在 Ventura 上插上就能用的卡,到 Sonoma 反而变成需要额外打补丁才能工作。补救方式是用 OpenCore Legacy Patcher 给系统打根补丁,把被删掉的驱动重新塞回去。这个方法可行,但代价是每次系统小版本更新之后补丁会被冲掉,得重新打一遍,而且打补丁的时候要临时降低系统完整性保护。所以我给的建议是:如果你追求的是"稳定当主力机用",Sonoma 阶段就别再迷信博通免驱卡了,要么用 Intel 卡配对应驱动接受功能缺失,要么就得接受这套补丁流程的繁琐。
第二个坑跟 Intel 无线网卡有关。Sonoma 上能用的 Intel 无线驱动版本,跟 Ventura 不是同一个分支,很多人直接拿 Ventura 的 kext 丢进去,结果是网卡识别到了但连不上,或者连上一会儿就掉。正确做法是去找明确标注支持 macOS 14 的那一版。蓝牙这边同理,Sonoma 对蓝牙栈做了调整,光有固件 kext 不够,还得配合BlueToolFixup一起用,否则蓝牙开关会一直转圈。
第三个坑相对隐蔽:Sonoma 对 CPU 的指令集要求提高了,具体来说是需要 AVX2 支持。好在 8 代酷睿全系都有 AVX2,Ruby 15.6 完全不受影响。如果你手里是更老的平台(比如二代、三代酷睿),那就得额外加载CryptexFixup这个 kext 来绕过检查,否则安装器都进不去。提这一句是因为网上有些教程不分平台地把CryptexFixup写进配置里,对新平台来说纯属多余,加载了反而可能引入别的问题。
1.3 先把预期定死:哪些能完美,哪些只能妥协
我把这台机器折腾完之后的实际状态列一下,你可以对照看看是不是自己能接受的程度。
能完美工作的部分:核显硬件加速(视频硬解、各种动画流畅)、声卡输出和麦克风、USB 全部接口、电池电量显示和充电状态、屏幕亮度调节和小键盘快捷键、触控板多指手势、睡眠和唤醒、摄像头、HDMI 外接显示器、Type-C 数据输出、风扇转速正常、系统更新(小版本)。
只能妥协的部分:AirDrop、隔空播放、随航这些连续互通功能(除非换苹果原厂卡并接受补丁流程)、指纹识别(这机器本来就没有)、读卡器(直接放弃)、独显(永久屏蔽)。
想清楚这个清单之后,你会发现日常办公、写代码、看视频、开十几个网页标签这些场景,这台机器在 Sonoma 下的体验其实比原生 Windows 还顺一点。这也是我最后决定把它当主力机的原因。接下来的章节就是把这套流程一步步拆开。
2. 开工前的准备:两处硬件改动和三套工具
准备工作这块,很多人容易犯的错是跳过硬件评估直接开装,结果装完发现无线网卡用不了,又回头拆机,白折腾一遍。所以我的习惯是:动手之前先把硬件层面能改的改掉,把工具版本核对清楚,然后再进 BIOS 改设置。
2.1 硬件层面最值得先动手的两件事
第一件事是加内存。Ruby 15.6 这代机器内存是板载加一个插槽的设计,8G 起步用的多。macOS 本身对内存的胃口就不小,Sonoma 开个浏览器加 IDE 基本就吃掉 6G 以上,8G 会经常触发内存压力。我从 8G 加到 16G 之后,整个系统的流畅度提升非常明显,尤其是切换应用和打开大文件的时候。这一步不是必须的,但如果你打算长期用,强烈建议先加。
第二件事是评估无线网卡,并且提前决定要不要换。这是整个项目里唯一一个"要么忍要么换"的岔路口,提前决定了后面配置才好写。
- 方案 A:保留原装 Intel 卡。优点是零成本、不用拆机、蓝牙和 Wi-Fi 都能用;缺点是没有 AirDrop、没有隔空播放、没有随航,另外 Intel 卡在 macOS 下的连接稳定性略逊于原厂卡,偶尔需要重连。日常上网、传文件靠网盘或者局域网共享,其实影响没想象中大。
- 方案 B:换苹果原厂卡。市面上常见的是 BCM94360 系列,也就是俗称的"免驱卡"。在 Monterey/Ventura 时代这确实是最省心的选择,插上就认。但正如上一章说的,Sonoma 把它踢出了原生支持,换上去之后还得走 OpenCore Legacy Patcher 打补丁这条路。如果你能接受这套流程,换卡之后连续互通功能就都能用了,体验和真 Mac 基本一致。
我自己的选择是方案 A。原因很简单:这台机器本来就是当生产力工具用的,AirDrop 我平时用得不多,用局域网共享和网盘完全能替代,而我更在意的是系统更新的省心程度。换卡虽然体验更好,但每次更新都要打一次补丁,长期看维护成本不低。
关于存储,也提一句我踩过的坑。Ruby 15.6 原装的固态如果是某些特定型号(尤其是部分三星 OEM 盘),在 macOS 下可能出现睡眠后掉盘、或者写入一段时间后卡死的情况。判断方法很简单:装完系统后连续跑一两个小时的大文件读写,再让它睡一觉唤醒,如果不掉盘就没事。真遇到掉盘,换一根主流品牌的盘基本能解决,我换成某国产品牌的 1T 盘之后就没再出现过。
2.2 工具清单:每一样都别下错版本
工具这块,最忌讳的就是版本对不上。黑苹果圈子里版本错配导致的问题,能占到新手翻车原因的一半以上。下面这份清单我按用途分了类,每个都注明了我实际用的版本范围。
| 工具 | 用途 | 版本注意点 |
|---|---|---|
| OpenCore | 引导器,整个系统的入口 | 建议 0.9.5 及以上,低版本对 Sonoma 支持不完整 |
| ProperTree | 编辑 config.plist | 用它做快照(OC Snapshot)很方便,减少手改出错 |
| GenSMBIOS | 生成三码 | 用于 iMessage、FaceTime 登录 |
| Hackintool | 查看接口、显卡、USB 信息 | 排查对外输出和 USB 定制的神器 |
| USBToolBox | 在 Windows 下定制 USB | 比在 macOS 里手动定制省事得多 |
| SSDTTime | 生成常用 ACPI 补丁 | 自动生成,比手写 SSDT 靠谱 |
| OCLP(OpenCore Legacy Patcher) | 给 Sonoma 打无线/蓝牙补丁 | 只有换博通卡时才需要 |
| balenaEtcher 或磁盘工具 | 写 U 盘 | 我用的是 macOS 自带的命令行方式 |
关于 macOS 安装器本身的来源,这里必须说清楚:不要用任何第三方打包的"某某整合版镜像",这类镜像谁也不知道中间被塞了什么,而且来源不明。正确做法是通过一台已有的 Mac,在 App Store 里搜索 "macOS Sonoma" 直接下载官方安装器;如果手边没有 Mac,OCLP 里内置了一个"创建 macOS 安装器"的功能,它是直接从苹果服务器拉取官方安装包,同样可靠。这两条路都干净,也是社区公认的做法。
2.3 BIOS 逐项设置与 CFG Lock 的绕行方案
Ruby 15.6 的 BIOS 界面比较简陋,能改的选项不多,但有几个是必须改的。
先进 BIOS(开机按 F2),然后逐项检查:
- 关闭 Secure Boot。这个是硬性要求,不关的话 OpenCore 根本起不来。
- 关闭 Fast Boot。快启动会让开机过程跳过一些设备初始化,影响引导识别。
- 开启 UEFI 启动模式,关闭 Legacy/CSM 兼容模式。
- 存储控制器设为 AHCI。如果是 RAID 模式,macOS 认不到硬盘。
- 关闭 VT-d(虚拟化直通)。这个如果 BIOS 里没得关,就在 OpenCore 配置里勾上
DisableIoMapper这个 quirk 来绕过。 - 显存(DVMT)设置为 64MB 或更大。核显驱动需要的显存如果不给够,会出现花屏或者干脆驱动不起来。Ruby 15.6 的 BIOS 里可能没有这个选项,如果没有,就得靠后面的 framebuffer 补丁来兜底。
有一项 BIOS 里大概率找不到,就是 CFG Lock(MSR 0xE2 写保护)。这个选项在消费级笔记本 BIOS 里通常被藏起来了。关不掉它会导致 macOS 电源管理出问题,表现是开机慢、睡眠异常。绕行方案是在 OpenCore 里勾上AppleCpuPmCfgLock和AppleXcpmCfgLock这两个 quirk,让引导器在启动阶段把这个保护绕过去。这两个 quirk 相当于"软件层面的 CFG Lock 解锁",实测效果和真关掉基本一致。
提示:BIOS 改完之后,建议先什么都不装,直接开机进原来的 Windows,确认机器一切正常,再往下走。这一步是为了排除"改 BIOS 改出问题"和"装黑苹果出问题"混在一起,避免排查时两头找。
3. OpenCore EFI 搭建:从零拼一套而不是直接抄
EFI 是黑苹果的心脏,里面装着引导配置、ACPI 补丁、内核驱动三大部分。这一章我按"为什么这么配"的思路来讲,而不是丢一份文件让你抄。因为同一款机器的不同批次,网卡、声卡、固态都可能不一样,抄来的 EFI 十有八九要改。更重要的是,只有理解了每一行在干什么,出问题的时候你才知道从哪下手。
3.1 为什么不建议直接套用网上的"成品 EFI"
先说这个结论背后的逻辑。网上流传的成品 EFI 通常有几个共性问题:一是三码用的可能是别人的,直接拿来用有时能开机,但 iMessage 会登录失败;二是里面的 kext 版本可能已经过期,跟当前的 OpenCore 版本对不上,出现"版本不匹配导致加载失败";三是配置里可能带了一堆针对作者自己硬件的参数,对你的机器来说纯属干扰。
更重要的是,成品 EFI 会让你失去排查能力。出了黑屏、卡代码、进不去系统这类问题,你手里只有一堆黑盒文件,只能反复换别人的 EFI 试,效率极低。
我的做法是:用 OpenCore 官方提供的示例配置(Sample.plist)作为底板,然后用 ProperTree 逐步补上这台机器需要的东西。整个过程大概两三个小时,但换来的是心里有数。如果你之前完全没配过,可以先看一眼官方的 Dortania 指南,那份文档虽然长,但结构清晰,是最靠谱的参考。
3.2 ACPI 补丁:五个 SSDT 逐个说清楚
ACPI 补丁的作用,是在不修改主板固件的前提下,给 macOS 提供它需要的额外信息。Ruby 15.6 这台机器我需要用到的补丁主要有下面这些,用 SSDTTime 在 Windows 下生成对应文件即可,比手写省事。
SSDT-PLUG:这个补丁的作用是让 CPU 的电源管理走 XCPM 路径。Kaby Lake-R 之后,macOS 的原生电源管理依赖这个,不打的话 CPU 频率会一直卡在低频,机器又慢又热。用法是把它放进 ACPI 目录,同时在配置里启用。
SSDT-EC-USBX:这是给嵌入式控制器和 USB 电源管理用的。macOS 需要一个叫 EC 的设备,但苹果自己的机器用的是另一套命名。这个补丁是伪造一个 macOS 能认的 EC,同时给 USB 设备提供正确的供电参数。不打这个补丁,USB 设备可能供电不足,或者电池信息读不出来。
SSDT-PNLF:管屏幕亮度的。macOS 调节背光依赖一个叫 PNLF 的设备,这个补丁就是把它伪造出来。不打的话,亮度快捷键没反应,也无法调节。注意 Kaby Lake-R 平台要用对应的版本,用错了会不生效。
SSDT-AWAC:管系统时钟的。这代主板用的时钟方案和 macOS 期望的不一样,不打这个补丁的话,开机可能会卡在时钟相关的代码上,或者进系统后时间不对。
SSDT-XOSI:这个补丁和触控板有关。它会在系统报告自己是 macOS 时,让 ACPI 里的设备走另一套逻辑分支,触控板才能被正确识别。
屏蔽独显的补丁(俗称 SSDT-DGPU 或_OFF补丁)也是在这一层做的。它的原理是在 ACPI 层面调用关闭独显电源的方法,让独显彻底断电。这个补丁需要用 SSDTTime 或者 Hackintool 根据你机器原始的 DSDT 来生成,不能照抄,因为不同批次的显卡路径可能不一样。
注意:ACPI 补丁是最容易把机器搞到不开机的一块。每加一个 SSDT,都建议重启验证一次,确认能正常进系统再加下一个。一次性全加上去,出问题了你根本不知道是哪个导致的。
3.3 Kexts 清单、加载顺序与 Sonoma 专属注意项
Kext 是 macOS 的内核扩展,黑苹果靠它来驱动那些苹果原生不支持的硬件。加载顺序很重要,顺序错了会出现依赖缺失,直接卡引导。
| Kext | 作用 | 备注 |
|---|---|---|
| Lilu | 所有补丁类 kext 的基础框架 | 必须排第一个 |
| VirtualSMC | 模拟苹果的 SMC 芯片 | 和 Lilu 一起,排最前面 |
| SMCBatteryManager | 电池信息 | 依赖 VirtualSMC |
| SMCProcessor / SMCSuperIO | CPU、风扇传感器 | 可选,但装了信息更全 |
| WhateverGreen | 显卡相关补丁 | 核显驱动、接口修补全靠它 |
| AppleALC | 声卡 | 配合 layout-id 用 |
| VoodooPS2Controller 或 VoodooI2C 系列 | 键盘、触控板 | 看总线类型选 |
| RealtekRTL8111 或 IntelMausi | 有线网卡 | 看你机器是哪块 |
| AirportItlwm 或 itlwm+HeliPort | Intel 无线网卡 | Sonoma 要用支持 14 的分支 |
| IntelBluetoothFirmware + BlueToolFixup | Intel 蓝牙 | Sonoma 下两个都要 |
| NVMeFix | NVMe 固态兼容性 | 有些盘需要 |
| USBPorts | USB 端口映射 | 和 USB 定制配套 |
| RestrictEvents | 屏蔽内存报错、CPU 名称修正 | 可选但推荐 |
关于 Sonoma 专属的注意项,我踩过两个。第一个是蓝牙。Sonoma 改了蓝牙栈的处理方式,只加载IntelBluetoothFirmware是不够的,必须同时加载BlueToolFixup,而且顺序上BlueToolFixup要在蓝牙固件之后。少了这一步,蓝牙开关会一直转圈,设备也搜不到。
第二个是 Intel 无线驱动要选对分支。Sonoma 能用的那一版,跟 Ventura 的不是同一个文件。装错了的表现是网卡在系统报告里能看到,但 Wi-Fi 菜单里搜不到任何网络。这种情况下别急着怀疑硬件,先去核对驱动版本。
3.4 Config.plist 里最容易填错的四个地方
配置文件的细节很多,我只挑四个新手最容易翻车的点来说,这四个搞定了基本就能开机。
第一个是显卡参数。UHD 620 在 macOS 里需要伪装成它认识的那个型号。Ruby 15.6 的 2018 款(i5-8250U)属于 Kaby Lake-R,核显设备 ID 是0x5917,需要加上两个属性:device-id填16590000(也就是伪装成0x5916),AAPL,ig-platform-id填00001659。2019 款(i5-10210U)是 Comet Lake,核显设备 ID 不同,用device-id填9B3E0000、AAPL,ig-platform-id填00009B3E这套方案更稳。这两个值都要填在设备路径PciRoot(0x0)/Pci(0x2,0x0)下面。填错了的表现要么是黑屏,要么是能进系统但显卡是"显示 7MB 显存",也就是没驱动起来。
第二个是 SMBIOS 机型。我选的是MacBookPro15,2。理由是这个机型的 CPU 定位和电源管理特性和 8 代低压 U 比较接近,USB 供电参数也合适。也有人用MacBookPro15,4,两个都可以,我实测下来前者更稳。选好机型之后,用 GenSMBIOS 生成序列号、主板号、UUID,再补上一个随机的 MAC 地址作为 ROM 值,这样三码才完整。
第三个是 USB 端口映射。这个是保证 USB 稳定和睡眠正常的关键,不能省。我的做法是在 Windows 下用 USBToolBox 扫描所有端口,把每个物理接口对应的端口号、类型(USB2/USB3/Type-C)都记录下来,生成一份USBPorts.kext。这样做的好处是端口数量控制在 15 个以内(macOS 的硬限制),每个口都不会乱跳。不做定制的话,轻则某个口不能用,重则睡眠一睡就醒。
第四个是启动参数。boot-args里我常驻的是-v keepsyms=1 alcid=13。-v是显示详细日志,调试阶段必开,出问题能看清卡在哪一行;keepsyms=1让崩溃信息可读;alcid=13是声卡的 layout 值,这个数要看你机器试出来是哪个。
4. 安装实操:从 U 盘到第一条桌面
配置写完之后,就是真正的安装环节。这一章按实际操作顺序走一遍,把中间容易卡住的地方标出来。
4.1 制作安装盘(顺手把合法来源这件事讲明白)
安装盘需要两块 U 盘,一块放 OpenCore 引导和安装器(建议 16G 以上),一块留作备用(万一 EFI 出问题,可以用备用的启动)。
具体步骤:先在 Mac 上用 App Store 下载 macOS Sonoma 安装器,或者用 OCLP 的"创建 macOS 安装器"功能拉取官方包。然后打开终端,用系统自带的createinstallmedia命令把安装器写入 U 盘。这个过程大概十几分钟,走完之后 U 盘就是一个可启动的 macOS 安装盘了。
接着,把安装盘里的 EFI 分区挂载出来(用 Hackintool 或者终端命令diskutil mount),把我们配好的整个 EFI 文件夹拷进 EFI 分区根目录。这一步做完,U 盘就同时具备引导和安装两个功能了。
提示:拷完之后建议在文件管理器里把隐藏文件显示打开,确认
EFI/BOOT/BOOTx64.efi和EFI/OC/OpenCore.efi都在。少一个文件,开机直接黑屏,连 OpenCore 都进不去。
4.2 安装过程分段记录与卡点处理
插上 U 盘,开机按引导菜单键(Ruby 15.6 一般是 F12,不同批次可能是 F7),选择从 U 盘的 UEFI 项启动。如果 OpenCore 配置没问题,会看到一个图形化的引导菜单,里面有 macOS 安装器的选项。
第一阶段是加载安装器到内存,这一步会滚动一大堆白色文字。这里是最容易卡的地方,我整理了几个典型卡点和对应的原因:
- 卡在
Waiting for root device:基本是 USB 或者存储的问题,检查 USB 定制有没有生效,或者 BIOS 里存储模式是不是 AHCI。 - 卡在
AppleIntelKBLGraphics相关:显卡参数写错了,回去核对device-id和ig-platform-id。 - 卡在一堆
IOConsoleUsers之后黑屏:显卡 framebuffer 不对,或者缺少WhateverGreen。 - 卡在蓝牙相关:
BlueToolFixup没加载,或者顺序不对,可以先用-v看清楚卡在哪一行。
加载完成之后会进入图形界面,先选磁盘工具,把目标硬盘格式化。格式选APFS,方案选GUID 分区图。格式化完退出磁盘工具,选"安装 macOS",一路下一步。
安装过程会重启两到三次,这是正常的。关键在于每次重启都要继续从 U 盘引导(因为这时引导文件还在 U 盘上),直到看见最后一次重启后出现设置向导。这里提醒一句:重启的过程中不要拔 U 盘,等整个安装流程走完再说。
设置向导里,网络先跳过(等下再配),Apple ID 也建议先跳过,等进了系统确认一切正常再登录。这样能避免因为网络问题卡在登录环节。
4.3 第一次进桌面后的三件收尾事
第一次进桌面,别急着体验,先把这三件事办了,不然系统随时可能起不来。
第一件是把 EFI 从 U 盘搬到硬盘。在 macOS 里用终端或者 Hackintool 挂载硬盘的 EFI 分区,把 U 盘里的整个 EFI 文件夹复制过去。做完之后,把 U 盘拔掉,重启,如果能直接从硬盘进系统,说明引导已经落地成功。这一步做完,U 盘就可以留作应急用了。
第二件是重新生成三码并验证。如果之前用的是临时三码,现在用 GenSMBIOS 重新生成一套,填进配置,重启后测试 iMessage 和 FaceTime 能不能正常登录。能登录说明三码没问题,登录不了就换一套再试。
第三件是测试基本功能,列个清单逐项过:声音有没有、亮度能不能调、USB 各个口能不能用、Wi-Fi 和蓝牙能不能连、电池显示对不对、睡眠一觉能不能正常唤醒。这一遍过下来,你就知道还有哪些地方需要继续打磨。我的第一次测试结果是有声音但没麦克风、亮度不能调、蓝牙连不上,这三个在后面一章里都解决了。
5. 打磨阶段:把"能开机"变成"能当主力机"
能开机只是及格线,真正的差距在于细节。这一章讲的都是让这台机器"用起来像回事"的关键调整。
5.1 声卡 layout-id 试错与麦克风
ALC256 这块声卡,AppleALC 里内置了多个 layout 配置,每个配置对应的插孔映射、麦克风、外放组合都不一样。常用的几个值是 13、21、28、66、97,具体哪个适合你的机器,只能一个个试。
试的方法是:把alcid=后面的数字改掉,然后重启。改完如果只出声音但麦克风不能用,说明这个 layout 只映射了输出;如果耳机和外放同时响,说明插孔检测不对。我的机器最后用的是 13,外放、耳机、麦克风都正常。
试的过程中有个小技巧:不用每次都完整重启,改完配置之后用sudo kextcache -i /重建一下缓存,然后重启就行。当然重启还是需要的,只是重建缓存能避免一些缓存导致的玄学问题。
注意:如果你在安装阶段为了省事启动了
-alcbeta之类的调试参数,调试完之后记得去掉,这些参数会影响声卡的正常初始化。
5.2 触控板、键盘与手势
触控板这块的第一步是判断总线类型。打开系统信息,看 USB 和 PCI 下面有没有叫I2C或者PS2的设备。Ruby 15.6 这代机器两种都可能出现,取决于批次。
如果触控板是 I2C 接口,就要用VoodooI2C那一套,包括主驱动加上对应的设备驱动。装完之后,多指手势(双指滚动、三指切换、四指全局)都能用,体验接近原厂。如果触控板走 PS/2,那就用VoodooPS2Controller,这一套稳定性更好,但手势支持弱一些。
键盘走的是 PS/2,用VoodooPS2Controller里的键盘部分即可。需要注意的一个细节是,这套驱动同时管着触控板和键盘,如果两者接口类型不一样(比如键盘是 PS/2、触控板是 I2C),就要注意加载顺序,避免互相干扰。我的机器是键盘 PS/2、触控板 I2C,最后是 PS/2 驱动在前、I2C 驱动在后,两者共存没问题。
5.3 睡眠、亮度、电池与风扇
睡眠是黑苹果里最容易出问题的功能之一。表现有两种:一种是睡下去就醒不来(黑屏死机),另一种是一睡就醒(刚合上盖子又开了)。
醒不来的问题,通常是 USB 或者电源管理没配好,重点检查SSDT-PLUG和 USB 定制有没有生效。一睡就醒的问题,多半是某个 USB 设备或者 PCI 设备在干扰唤醒,解决办法是用SSDT-GPRW补丁改掉唤醒事件的路径。这个补丁需要用 SSDTTime 根据你机器的 DSDT 生成。
亮度调节前面提过,靠SSDT-PNLF加 WhateverGreen。补丁打上之后,亮度快捷键就能用了,如果快捷键没反应,可以在系统设置里手动指定一下,或者用第三方软件映射。
电池显示依赖SMCBatteryManager,正常情况下装完就能看到电量和充电状态。如果显示电量为 0 或者一直显示"正在充电",说明电池的 ACPI 信息没有被正确解析,需要补一个电池相关的 ACPI 补丁(社区里叫电池热补丁),这个也要根据自己机器的 DSDT 来生成。
风扇转速的监控需要SMCSuperIO,装了之后可以用系统监控类软件看到转速。这个不影响功能,只是让你知道机器热不热。
5.4 HDMI 与 Type-C 外接显示
外接显示是核显 framebuffer 里最麻烦的一块,因为笔记本的核显接口布局和苹果自己的机型不一样。默认情况下,HDMI 插上可能没反应,或者能显示但分辨率不对。
解决思路是用 Hackintool 的接口页面,读取出核显的各个接口信息,然后把需要启用的接口(这机器主要是 HDMI)的参数,通过 WhateverGreen 的framebuffer-conX系列属性强制注入。参数包括总线 ID、接口类型、端口号这些,具体值要根据 Hackintool 读出来的结果来填,不能照抄别人的。
我当时的做法是先插上 HDMI,进系统看看有没有反应,完全没有的话就在配置里给对应接口加上framebuffer-con1-enable之类的属性,然后逐个调总线 ID,试到能出画为止。这个过程比较费时间,但一旦试通就稳定了。
Type-C 口这边,如果是走 DP Alt 模式输出,原理和 HDMI 一样,也是在 framebuffer 里对应的接口上做文章。如果是纯数据口,那插上就能用,不需要额外配置。
6. 常见问题速查与踩坑心得
折腾这套东西,我前后遇到的大小问题有二十多个,这里挑最有代表性的整理成表,方便你对号入座。
| 现象 | 大概率原因 | 处理方式 |
|---|---|---|
| 开机黑屏,连引导菜单都没有 | EFI 文件缺失或配置有语法错误 | 检查 EFI 目录结构,用 ProperTree 校验配置文件 |
卡Waiting for root device | USB 未定制、存储非 AHCI | 做 USB 定制,BIOS 改 AHCI |
| 进系统后显存显示 7MB | 显卡 device-id 或 ig-platform-id 错误 | 按平台核对伪装参数 |
| 声音正常但麦克风无声 | layout-id 不匹配 | 换 13/21/28/66/97 逐一测试 |
| Wi-Fi 搜不到网络 | Intel 驱动版本不对 | 换 Sonoma 分支的驱动 |
| 蓝牙开关一直转圈 | 缺少 BlueToolFixup | 补上这个 kext 并调整顺序 |
| 睡眠唤醒后掉盘 | 存储兼容性问题 | NVMeFix 无效就换盘 |
| 睡下去就醒 | USB 唤醒事件干扰 | 用 GPRW 补丁改唤醒路径 |
| 亮度键无反应 | 缺少 PNLF 补丁 | 补 SSDT-PNLF 并核对版本 |
除了表里这些,还有几个经验是只有亲手折腾过才会懂的,分享出来。
第一个经验:改动一次只改一处,改完立刻重启验证。我早期犯的错就是一口气改了五个地方,结果开机失败,只能一个一个回退,花了整整一个晚上。后来养成习惯,每次改动都只动一项,验证通过再动下一项,效率反而高很多。
第二个经验:保留两个能启动的 EFI 版本。每当你的配置调到一个稳定状态,就把整个 EFI 文件夹复制一份存档,命名带上日期。这样后面调坏了,直接换回上一个存档就行,不用从头排查。我最后攒了六七个版本,其中有两个是"保底可用"的。
第三个经验:系统更新前先备份 EFI 和重要数据。macOS 的小版本更新有时会改动驱动相关的部分,导致原本正常的硬件出问题。更新之前把 EFI 存档留好,万一更新后出问题,回退到旧 EFI 或者旧系统都方便。Sonoma 相对成熟,但还是建议这么做。
第四个经验:别迷信"完美"这个词。网上很多标题写着"完美黑苹果",实际用起来总有那么一两处不顺手的地方。黑苹果的本质是拿非苹果硬件去模拟苹果硬件,能到九成体验已经非常好了。把心态放平,把能用的功能用好,不能用的功能找到替代方案,这才是长期使用的正确姿势。
第五个经验:遇到问题先看日志。卡引导的时候,-v输出的那些白字里其实信息量很大,关键的那一行往往就在黑屏前最后几行。截图下来,去社区里搜一下关键字,九成的常见问题都有现成答案。真正需要自己分析的,一般是硬件层面的兼容性问题。
最后说一个跟长期使用有关的点。这台 Ruby 15.6 在 Sonoma 下运行了几个月,日常办公、写代码、看视频都挺稳。唯一需要留意的是散热,因为 macOS 的电源管理策略和 Windows 不一样,机器在高负载下的温度曲线也不同。我会用监控软件看一下温度,必要时在配置里调整一下 CPU 的功耗参数。至于系统更新,我现在的做法是等一个小版本发布一两周,看看社区里有没有反馈,确认没问题再更新,更新前照样备份 EFI。
如果你也有一台闲置的 Ruby 15.6,或者手边是别的 8 代低压平台笔记本,这篇文章里的思路基本可以直接套。真正需要你花时间的不是配置文件的复制粘贴,而是理解每个参数在解决什么问题,然后针对自己的硬件一点点调。装机那两天可能会觉得烦,但当你把睡眠、亮度、外接显示这些都调通,合上盖子再打开它还好好地停在原地的那个瞬间,会觉得值。