黑苹果OpenCore迁移 (火影地狱火x6 i7-8750H)

毒盘 EFI 435b

macOS Sonoma 14.3.1

一、安装OpenCore

首次迁移应该先尝试U盘引导现有系统,稳定后再迁移到本地硬盘。
准备一个刻录好安装镜像的U盘,直接干掉U盘引导分区的文件,把编译好的OpenCore/OpenCorePkgBeta解压x64/EFI到U盘引导分区根目录。

解压引导文件

解压Docs/Sample.plist文件到EFI/OC文件夹,并修改文件名为config.plist

配置文件模板

懒人必备OpenCore Configurator,下载后打开刚才的的config.plist,二话不说关掉加密保护,否则开机引导会报"no vault provided",将Misc/Security/Vault设置为OptionalMisc/Security/SecureBootMode设置为Disabled,然后保存即可。

关闭加密

sonoma后会机型检测,不通过提示会与该mac不兼容,随便找个能用的EFI拷贝PlatformInfo项目即可。

二、核心驱动

2.1 安装必要的驱动。

先确保能进入登录界面,为排除干扰,只安装能开机的驱动。

  • Lilu,内核扩展,显卡,声卡等一些硬件驱动的前置驱动。
  • VirtualSMC,仿冒水果机的某个控制芯片。
  • WhateverGreen,A卡、牙膏厂核显驱动。游戏本都是N卡,双屏只能靠雷电接口(暗夜精灵/微星/各种轻薄本)或者无线投屏(隔空播放)。
    N卡用无线投屏器也能凑合双屏 RDM调分辨率和刷新率

把压缩包的*.kext拖到EFI/OC/Kexts下。

2.2 检查配置文件

OCC检查一下配置文件,看看还默认配置了哪些驱动,取消勾选或者补全。

补全扩展驱动

默认勾上了AppleALC,顺便就补上去,以免卡引导。

检查UEFI驱动,前缀#表示禁用,没有的驱动补回去。

复制到EFI/OC/Drivers

发现缺少HfsPlus.efi,可以直接从CLOVER拷过去。

配置最基本的驱动

2.3 禁用独显

引导过程最后会花屏,是因为独显没禁掉。
按最少折腾的方法,添加几个参数就好了。

屏蔽独显方法

  • DeviceProperties/Add/PciRoot(0x0)/Pci(0x2,0x0) 添加
    disable-external-gpu 01000000
  • 添加引导参数
    boot-args -wegnoegpu
屏蔽独显,添加引导参数

往显卡设备PciRoot(0x0)/Pci(0x2,0x0)添加属性,这个步骤跟核显缓冲帧打补丁重合。
使用Hackintool生成配置,或者直接从CLOVER复制过去,随便还把声卡layout-id给搞了。

复制配置

确认XML结构,防止贴错位置

2.4 引导修复

机型差异,抄作业参考常见引导问题

  • Missing key LoadEarly
    OpenCore版本与编辑器的版本不一致,导致保存后缺失选项,编辑器支持通常会滞后,降级就好了,对齐版本或者用VSCode编辑。

  • In Memory Panic Stackshot Succeeded
    集显没有配置显存,给缓冲帧打补丁

  • AppleNVME Assert Failed
    缺少SSDT-EC.aml,把OpenCore压缩包Docs/AcpiSamples下面的补丁拖到OC/ACPI下,OCC勾上对应补丁,保存。

    禁用EC

  • disk %d : device is write locked
    居然是博通网卡驱动问题,搞死我了,瞬间感觉AC9462真香。
    Big sur需要禁用掉子驱动AirportBrcmFixup.kext/Contents/PlugIns/AirPortBrcm4360_Injector.kext

    11.0禁用

  • 安装后BIOS时钟停止
    去除RTC相关驱动、修补。
    按网上的方法,刻录个Ubuntu安装盘,进入试用模式后重启。

  • 引导卡rt.gv wake-failure[EXITBS:START]
    打开配置文件,搜索并设置以下项目为true
    AppleCpuPmCfgLock
    AppleXcpmCfgLock
    IgnoreInvalidFlexRatio
    通常是刷过BIOS,进入BIOS然后选择Restore Defaults还原配置。

  • 引导卡 successful initialized nvme driver
    把新版本OpenCore压缩包的SSDT-EC.aml拖到ACPI文件夹,不要复制旧版的。

三、扩展驱动

其他驱动,附录1

3.1 通用键鼠驱动

VoodooPS2Controller,驱动笔记本自带键盘,以免进了登录界面输不了密码。
驱动拖到EFI/OC/Kexts下,OCC驱动选择快照添加:

驱动添加新姿势

选择U盘的EFI/OC/Kexts目录,会自动刷新出新的驱动条目,手动加万一加错了。

不要选错目录

3.2 USB驱动

USBInjectAll,原来普通外接键盘的指示灯是不亮的。

3.3 有线网卡

选择网卡型号匹配的驱动,RTL8111下载安装RealtekRTL8111.kext

下载对应驱动

OpenCore需要手动设置传输模式,否则就一直显示电缆被拔出。

系统偏好>网络>以太网>高级>硬件
新坑

3.4 屏幕背光

不要搞错下载目录

下载SSDT-ALS0.amlSSDT-PNLF.aml(第8代CPU下载SSDT-PNLF-CFL.aml),注意目标分区不要选错,或者从OpenCore压缩包Docs/AcpiSamples里面拖。

亮度调节和记忆补丁

引入SMCLightSensor.kext,点击快照添加,选中EFI/OC/Kexts文件夹,勾选上SMCLightSensor.kext

仿冒光线传感器
背光调节

3.5 声卡驱动

安装AppleALC,挨个试layout-idALC269注入66,麦克风居然活了。

注入alc-delay防止开机间歇性掉声卡。

ALC269注入66,数据类型可以选数字
MIC

ALC269驱动
Hackintool声卡修补
常见声卡layout-id
声卡内建

顺手搞一下

3.6 触摸板

VoodooI2C,驱动支持,摸得动就行。

VoodooI2C触摸板驱动教程

触摸板驱动依赖电池驱动,电量显示有问题,触摸板能摸但是偏好设置是检测不出的。

触摸板能进行基本的使用

驱动拖到EFI/OC/Kexts,使用OCC快照添加,刷新出子驱动,然后调整驱动加载顺序,VoodooInput.kext不勾选。
VoodooI2Cservice.kext
VoodooGPIO.kext
VoodooI2C.kext
VoodooI2CHID.kext

多个子驱动,可能会要求加载顺序

3.6 电池驱动

OpenCore 0.7.5后不再需要拆分变量了,热补丁配合SMCBatteryManager.kext可能没有效果,除非用老方法注入DSDT.aml强制覆盖。
注入ECEnabler.kextSMCBatteryManager.kextSSDT-EC.aml即可。

Battery Status

OpenCore所有系统共用一套引导配置,以往四叶草针对水果系统直接改DSDT的方式可能会导致Windows系统出问题。

关于OpenCore引导双系统的一些总结和讨论

总之就是推荐使用分支判断+HotPatch

(Science online)电池热补丁指南 (Guide for Battery Hotpatch)
ASL编程语言
MaciASL补丁制作实战
用一次实战记录电池热补丁的编写方法
关于电量补丁大于32位字段补丁偏移计算

热补丁的原理在用高级语言表达就是拦截或代理,跟直接修改DSDT.aml一样,都需要加上系统的分支判断和重写并回调原函数,直接改DSDT.aml不用写更名规则。

直接改可以排除更名补丁影响,稳定后迁移代码为热补丁文件

懒人是不用算偏移量的,用不上的变量全部留空完事,快进到表达式替换。

变量拆分

表达式替换完,把原装函数改个名称,热补丁需要配合SSDT改名补丁使用。

添加热补丁
本机型只需要改两个函数

Hex Fiend来核查改名补丁的替换范围,例如45434245 00替换为58434245 00,即ECBE to XCBE,末尾的00不是可有可无的,二进制替换容易替换掉未知领域,使用文本编辑器不容易觉察。

核查替换范围,这是正确的替换

这是错误的替换,所以必须加上额外字符约束

在函数_BIF中,如果ECBE被替换掉那么回调的永远是原装函数,全部白写。

Method (_BIF, 0, NotSerialized)  // _BIF: Battery Information
{
    If (ECON)
    {
        ECBE ()
    }
    Else
    {
        Store (0xFFFFFFFF, Index (PAK0, One))
        Store (0xFFFFFFFF, Index (PAK0, 0x02))
        Store (0xFFFFFFFF, Index (PAK0, 0x04))
        Store ("Error", Index (PAK0, 0x09))
        Store ("00000", Index (PAK0, 0x0A))
        Store ("Error", Index (PAK0, 0x0B))
        Store ("Error", Index (PAK0, 0x0C))
    }

    Return (PAK0)
}

折腾后,电量显示了,触摸板也回来了。

热补丁生效

3.7 无线网卡

3.7.1 Broadcom

联想DW1560

AirportBrcmFixup
BrcmPatchRAM
OCC快照添加。
AirportBrcmFixup.kext
BrcmBluetoothInjector.kext(Monterey 12.0 替换为BlueToolFixup.kext
BrcmFirmwareData.kext
BrcmPatchRAM3.kext

无线
蓝牙

Sonoma博通驱动补充

Sonoma移除了博通驱动,按以上步骤添加驱动后,需要额外注入。

  • NVRAM > Add > 7C436110-AB2A-4BBB-A880-FE41995C9F82csr-active-config 设置 03080000boot-args添加ipc_control_port_options=0 -amfipassbeta -brcmfxbeta brcmfx-country=HK

  • NVRAM > Delete > 7C436110-AB2A-4BBB-A880-FE41995C9F82添加csr-active-config

  • 禁用原生驱动com.apple.iokit.IOSkywalkFamily,设置最小内核23.0.0

  • Misc > Security > SecureBootModel > Disabled

  • 补充驱动 IOSkywalk.kextIO80211FamilyLegacy.kext

  • 补充驱动 AMFIPass.kext

  • 调整驱动顺序,并设置最小内核23.0.0

    • AMFIPass.kext
    • IOSkywalkFamily.kext
    • IO80211FamilyLegacy.kext
    • IO80211FamilyLegacy.kext/Contents/PlugIns/AirPortBrcmNIC.kext
  • 重启后,下载OpenCore-Patcher-GUI.app,如果上面步骤没有遗漏,Start Root Patching是启用状态,并提示无线驱动可修复

3.7.2 Intel

Intel WIFI驱动开发进展

原装网卡有救了,狂喜,赶紧卸了博通装回AC9462试试。

看说明暂时是两种方案,互斥。

AirportItlwm.kext
试了下隔空投送,搜不到手机。
Speedtest搞了下,掉速,不过足够应付在线1080P视频。

DW1560

AC9462

itlwm.kext + HeliPort客户端
居然搜不到电脑旁边路由的SSID,屋外的倒是可以。
选择“加入其他网络”,手动输入SSID和密码,成功连上。
空投协议还是不支持,不知道是网卡还是驱动问题,只能以后再试了,换回了博通。

对于游戏本,使用上是可以接受的范围,蓝牙连接情况良好,而上网一般都是插网线,对于今后的新机器而言,考虑到驱动完善上的可能性,并且只是作为辅佐系统的话可以不用换网卡,主力系统Windows不存在驱动问题。

3.8 睡眠修复

各种问题,白苹果的体验基本是不存在的,主要是防止挂机到息屏后不能唤醒只能强制断电。

1、使用Hackintool辅助,USB内建,保留USBInjectAll.kext需要添加SSDT-UIAC.aml修补。
SSDT-EC-USBX.aml包含SSDT-EC,添加可能会使电池驱动失效。

2、添加HibernationFixup.kext

顺序拖到Lilu.kext后面

3、8代或以上核心,SSDT-PMC.aml

点下载/更新Acpi文件

四、引导迁移

复制U盘EFI/OC到硬盘引导分区下面,复制U盘BOOT/BOOTx64.efi到硬盘的OC目录下。
Booter/Quirks/SyncRuntimePermissions打上勾,否则引导Windows会蓝屏。


换到PE环境下用BOOTICEx64.exe添加UEFI引导即可,可能还需要进BIOS调整本地硬盘的引导顺序,把OpenCore调到前面。

检查所有SSDT,出现Device定义的,加上系统判断,UIAC.amlSSDT-EC.amlALS0.aml等。 例如UIAC.aml不补充修改,Windows设备管理器会出现未知设备UIAC

补充分支判断

开启图形界面:


扫描策略改为0完事
自制的界面使用Modern前缀
界面引擎驱动和截图驱动

自定义启动项:

使用Opencore引导ubuntu以及Linux的步骤
切换到FS0FS1...导出映射表。

添加自定义图标,放在引导项的同一目录:


自定义项目图标

五、疑难杂症

屏蔽PM981

Sonoma整了个莫名其妙的东西扫描硬盘,扫描到PM981就会突发恶疾。
没办法只好屏蔽了,参考OCC添加设备路径,设置属性使其不识别。

<key>PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x0)</key>
<dict>
  <key>IOName</key>
  <string>#display</string>
  <key>class-code</key>
  <data>/////w==</data>
  <key>name</key>
  <string>#display</string>
</dict>
选择要屏蔽的固态,可以借助Hackintool

屏蔽后的设备会显示为传统设备,这个鬼东西还可以弹出主硬盘,你点错了就直接死机。


????

不能登录Apple账号

参考,终端执行:

sudo rm -rf /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist*
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容