一、黑苹果主机如何安装驱动
黑苹果主机如何安装驱动
在黑苹果主机上安装驱动程序是确保系统正常运行的关键步骤。无论是声卡、显卡、网卡还是其他外设,正确安装驱动都是保障其功能正常的基础。本文将详细介绍在黑苹果主机上如何安装驱动程序,帮助您解决可能遇到的问题。
1. 驱动程序的重要性
驱动程序是连接硬件和操作系统之间的桥梁,负责传达指令、控制硬件以及实现硬件与软件的配合。在黑苹果主机上,因为硬件配置与真正的苹果设备有所不同,因此需要特定的驱动程序来完成与操作系统的兼容。
没有正确的驱动程序,系统可能会出现各种异常情况,例如无法识别外设、性能下降、系统崩溃等。因此,安装适当的驱动程序对系统稳定性和性能至关重要。
2. 驱动程序的安装方法
在黑苹果主机上安装驱动程序有多种方法,主要取决于硬件配置和系统版本。以下是一些常用的安装方法:
- 通过设备管理器自动安装驱动
- 从官方网站下载驱动程序
- 使用第三方驱动管理工具
3. 安装常见驱动程序
针对黑苹果主机上常见的硬件,需要安装对应的驱动程序以保证其正常运行。以下是一些常见硬件的驱动安装方法:
声卡驱动
声卡驱动在黑苹果主机上尤为重要,因为声卡是日常使用中不可或缺的硬件之一。安装声卡驱动可以让您正常听到声音,享受完整的用户体验。
显卡驱动
显卡驱动是保证显示效果的关键,尤其对于需要进行图形处理或者玩游戏的用户来说,正确安装显卡驱动可以提升系统的性能和稳定性。
网卡驱动
无线网卡和有线网卡是实现网络连接的必要组件,安装正确的网卡驱动可以确保您的黑苹果主机能够连接至网络,并正常传输数据。
4. 技巧与注意事项
在安装驱动程序时,有一些技巧和注意事项可以帮助您顺利完成安装,并避免可能出现的问题:
- 确保下载的驱动程序与您的硬件和系统版本兼容
- 备份系统数据,在安装驱动前进行必要的数据备份
- 遵循官方安装指南,按步骤进行驱动安装
- 定期更新驱动程序,以确保系统始终处于最佳状态
5. 总结
安装驱动程序是使用黑苹果主机的必要步骤,它直接关系到系统的稳定性和性能。通过本文的介绍,您应该能够更好地理解如何安装驱动程序,以保障您的系统正常运行。希望这些内容对您有所帮助,祝您的黑苹果主机顺利安装驱动!
二、黑苹果系统怎么安装驱动?
Mac下安装主要两种;
1.通过软件安装,目前主要:Kext Wizard , Champlist , Kext Utility等都比较方便,一般用的Kext Wizard,还有中文版。
2.直接拖/System/Library/Extension下,使用变色龙可以直接放到/Extra/Extensions下开机用变色龙加载。无论上边哪种,完成后都要重建缓存修复权限,可以使用Kext Wizard 不然安装后无效Windows下安装MAC的驱动的话,没有什么可以借助的安装软件,手动和MAC下安装也差不多,不过前提就是需要对MAC磁盘拥有读写权限,通过安装Macdrive或者HFS for Windows来达到,MAC驱动文件和上边路径一样,放进去。
三、黑苹果驱动文件怎么安装?
这个解压缩双击就可以安装了(在MAC下安装)。或者用我这个驱动,解压后得到RealtekRTL81xx.kext,变色龙直接放直接放E/E(重启),clover放EFI\kexts(重启),即可!或用Kext Utility 安装到S\L\E(重启)以上方法随你用
四、谁有黑苹果驱动?
更新:新版本的VoodooPS2和VoodooHID自带了VoodooInput,不需要单独安装了
笔记本独显无解,自带的Wi-Fi应该是Intel的Wi-Fi,Wi-Fi暂时还没有驱动,蓝牙倒是有zxystd/IntelBluetoothFirmware笔记本独显无解,自带的Wi-Fi应该是Intel的Wi-Fi,Wi-Fi暂时还没有驱动,蓝牙倒是有
zxystd/IntelBluetoothFirmware更新:Intel Wi-Fi有了测试版驱动:itlwm
OpenIntelWireless/itlwm配合HeliPort用起来还可以
当然你也可以关注一下Black80211
Black80211这是一个通过逆向macOS 80211协议栈来实现原生IntelWi-Fi驱动的项目
不够都是测试版,或多或少有点问题。
如果想用随航、airdrop的话可以考虑换一张黑苹果支持的无线网卡,比如博通的
有线网卡倒是有解,根据你的网卡型号自行搜索即可。
触控板根据你使用的是PS2触控板还是HIC触控板选择 VoodooPS2 或 VoodooI2C
Acidanthera电池电量显示需要对DSDT打补丁,参考
小白都能看懂的DSDT电量显示补丁教程将制作好的DSDT.aml放在Clover/ACPI/Patched下面即可。
也可以私聊我有偿定制SSDT热补丁
热补丁的优点是更换硬件时不会像DSDT补丁那样需要重写,因为只修改了电池相关的部分。建议能不动DSDT就别动DSDT。
五、求一个最新的黑苹果安装教程?
学习的需要再加上手上正好有一台闲置的笔记本电脑,于是有了这篇手记。
一、准备工作
至少准备一个大于16G的U盘,两个更好。
1.1、可能会用到的工具
(置顶方便查找,可以先跳过在下文用到时再下载)
【必须】opencore发布页 OpenCorePkg(opencore的官方下载地址,版本在持续更新,方便后面的调试排错建议下载DEBUG版本或者两个都下载)
opencore官方发布页【可选】rufus U盘工具(制作安装U盘用,大于16G的U盘系统磁盘管理无法格式化。也可以用其它U盘工具)
rufus-U盘工具【非必须】etcher(刻录镜像到U盘的工具)
balenaEtcher - U盘镜像刻录工具【必须】python下载(下载安装版,安装到最后一步一定要记得把自动配置环境变量add python 3.x to PATH勾选上,之后很多脚本需要python支持才能运行)
python官网下载页【可选】USBToolBox(USB定制工具)
USBToolBox/tool【可选】USBMAP工具(USB定制工具)
USBMap【可选】Hackintool(一个综合性的配置工具)
Hackintool【可选】GenSMBIOS(黑苹果序列号生成工具)
GenSMBIOS - 序列号创建工具【必须】ProperTree(配置文件Plist编辑器)
ProperTree - 可视化界面plist编辑器【可选】opencore configurator(Plist编辑器,需要对应OPENCORE版本下载)
configurator - 可视化界面plist编辑器【可选】MountEFI(挂载EFI分区的工具,上面的hackintool和opencore configurator也具有此功能。windows的diskpart也可以,不是多系统的话应该用不到)
MountEFI - MacOS下的EFI挂载工具【可选】SSDTTime(创建SSDT文件的工具)
SSDTTime - SSDT创建工具【推荐】MaciASL(ASL语言编译器,ACPI文件DSDT SSDT和制作补丁时需要用到。不要使用国外Rehabman大神提供的,已经很久没维护了。)
MaciASL - ASL语言编译器【非必须】iASL(windows的ASL语言编译器)
Windows Binary Tools - windows下基于命令行的asl编译工具【非必须】IORegistry Xcode的附加工具
Xcode附加工具【非必须】gfxutil设备属性查询工具
gfxutil - 设备属性查询工具1.2、opencore官方安装指南(英文)
安装前必看-opencore官方安装指南官方配置指南,参数和详细解释
opencore官方配置说明文档1.3、了解硬件配置
通过设备管理器和AIDA64查看电脑硬件配置。官方指导有详细说明这里不作赘述。因为后面配置config文件和添加驱动需要详细的硬件信息,所以在这里要了解清楚。
举例:
CPU:i5 8300H (intel 8代 coffelake平台)
显卡:Intel UHD Graphics 630&NVIDIA GeForce GTX1050Ti
声卡:Realtek ALC 295主板:HP 84DA
以太网卡:Realtek RTL8111
无线网卡:Intel Wireless-AC 9560
蓝牙:Intel Bluetooth
内存:Kingston DDR4 2400MHz 8+8G
硬盘:NVMe KBG30ZMV128G TOSHIBA
CPU、显卡、声卡等最好在设备管理器-属性-详细信息里记录好硬件ID、BIOS名称、位置路径。如:
笔记本电脑还需要了解键盘、触摸板、电池和摄像头等设备的信息。比如键盘和触摸板要知道是PS/2接口还是USB接口。比如:Synaptics SMBus TouchPad就是一个PS/2的触摸板。
4、了解MacOS的版本对硬件的支持,方便选择合适自己硬件的MacOS版本。官方安装指导Hardware Limitations一节有详细说明。了解各个MacOS版本能支持的APPLE设备,可以参考以下网址(英文)https://eshop.macsales.com/guides/Mac_OS_X_Compatibility
二、创建U盘
2.1、下载系统文件dmg
(这里下载的不是完整镜像,应该是APPLE的恢复安装用的基础文件。有正品苹果电脑可以用自己的APPID在应用商店下载到完整镜像,这里用不到。)
首先下载OPENCORE的安装文件OpenCorePkg并解压。https://github.com/acidanthera/OpenCorePkg/releases。进入解压后的文件夹/Utilities/macrecovery/,在地址栏输入cmd打开控制台根据需要安装的MACOS版本选择下面相应的代码复制到控制台。(需要PYTHON支持,有两行代码的选择第二行。用其它方法运行的CMD需要注意当前路径为macrecovery脚本所在路径)
# Lion (10.7):
python macrecovery.py -b Mac-2E6FAB96566FE58C -m 00000000000F25Y00 download
python macrecovery.py -b Mac-C3EC7CD22292981F -m 00000000000F0HM00 download
# Mountain Lion (10.8):
python macrecovery.py -b Mac-7DF2A3B5E5D671ED -m 00000000000F65100 download
# Mavericks (10.9):
python macrecovery.py -b Mac-F60DEB81FF30ACF6 -m 00000000000FNN100 download
# Yosemite (10.10):
python macrecovery.py -b Mac-E43C1C25D4880AD6 -m 00000000000GDVW00 download
# El Capitan (10.11):
python macrecovery.py -b Mac-FFE5EF870D7BA81A -m 00000000000GQRX00 download
# Sierra (10.12):
python macrecovery.py -b Mac-77F17D7DA9285301 -m 00000000000J0DX00 download
# High Sierra (10.13)
python macrecovery.py -b Mac-7BA5B2D9E42DDD94 -m 00000000000J80300 download
python macrecovery.py -b Mac-BE088AF8C5EB4FA2 -m 00000000000J80300 download
# Mojave (10.14)
python macrecovery.py -b Mac-7BA5B2DFE22DDD8C -m 00000000000KXPG00 download
# Catalina (10.15)
python macrecovery.py -b Mac-00BE6ED71E35EB86 -m 00000000000000000 download
# Big Sur (11)
python macrecovery.py -b Mac-42FD25EABCABB274 -m 00000000000000000 download
# Latest version
# ie. Monterey (12)
python ./macrecovery.py -b Mac-E43C1C25D4880AD6 -m 00000000000000000 download
macOS 12以上系统提示:最新的系统版本对USB堆栈执行进行了调整,强烈建议在安装前对USB端口进行定制(见下文USB驱动章节)。在macOS11.3以后的版本xhciportlimit功能失效引起无限重启。
下载视网速大概需要几分钟,下载完成后的文件保存在macrecovery文件夹里。
2.2、创建安装U盘
官方介绍的3种创建U盘的方法,这里选用最方便的Rufus工具。大于16G的U盘只能用工具格式化。
rufus下载地址:https://rufus.ie/
设备选择自己的U盘
引导类型选择非可引导
分区类型GPT
目标系统类型BIOS或UEFI
卷标给U盘起名好区分的名字
文件系统Large FAT32
点击开始完成U盘格式化,把弹出的U盘根目录下的autorun文件都删除。
2.3、复制OPENCORE基础文件到U盘
在U盘根目录创建一个com.apple.recovery.boot文件夹,把之前下载的BaseSystem.dmg和BaseSystem.chunklist复制到里面来。打开解压好的opencore文件夹,可以看到文件夹里有IA32(32位CPU)和X64(64位CPU)两个文件夹,从中选择合适的EFI文件夹复制到U盘根目录和com.apple.recovery.boot文件夹放到一起。如图所示:
把不需要的文件从文件夹里删除(具体文件的作用见官网),只保留下图红框中的文件。
干净的EFI目录结构
2.4、收集文件
根据自己的硬件情况进行选择,如果opencore用的debug版本驱动用相应的debug版本。比较老的硬件需要选用legacy的文件。
电源管理描述表SSDTs和DSDTs(.aml)文件放到/OC/ACPI/文件夹下
硬件驱动Kext(.kext)文件放到/OC/Kext/文件夹下
固件驱动(.efi)文件放到/OC/Driver/文件夹下
官网地址:
收集文件2.4.1 固件驱动
HfsPlus.efi(必须)
用于支持HFS文件系统
HfsPlus.efiOpenRuntime.efi(必须)
opencore扩展组件,boot.efi和NVRAM内存管理修补
OpenRuntime.efi2.4.2 Kexts文件
2.4.2.1 必备内核
VirtualSMC驱动(必须,用于模拟苹果电脑的SMC芯片)
VirtualSMC驱动SMCProcessor.kext 用于监控 cpu 温度
SMCSuperIO.kext 用于监控散热器速度
SMCLightSensor.kext 用于环境光检测,台式机不需要
SMCBatteryManager.kext 用于读取电池信息,台式机不需要
Lilu驱动(基础库,必须)
Lilu驱动2.4.2.2 显卡驱动
WhateverGreen(必须)
显卡驱动2.4.2.3 声卡驱动
AppleALC
声卡驱动2.4.2.4有线网卡驱动
(重要,第一次安装系统时需要联网。充分了解自己的网卡型号然后在ethernet章节下寻找对应的驱动)
笔者的网卡RealtekRTL8111
有线网卡驱动2.4.2.5 USB驱动
这里要使用USBToolBox工具来定制驱动,装完后在MacOS下用USBMAP工具进正修改。定制的USB驱动最多允许15个USB接口。错误的USB定制可能会产生睡眠重启问题。个人理解实质上就是用工具生成一个只含空表的驱动。为便于理解USB定制原理,推荐用下例的方法二。
USBToolBox
USBToolBox/tool也可以先用工具提供的Kext文件,装完再定制。
USBToolBox作者提供的kextUSPMAP工具使用参考软件页说明和opencore详细教程
说明:
USBMap说明页面下载:
USBMAP下载地址opencore官方usb定制教程
方法一:
运行USBTOOLBOX文件夹里的windows.exe文件,选择D选项,插入一个USB设备进行识别,识别到的设备会显示为绿色。识别完后输入B键回车返回主菜单。按照主板上的USB3.0和USB2.0接口分类进行识别,先用3.0设备(比如3.0的U盘)插入3.0接口识别,再用2.0设备(没有2.0 U盘可以用USB鼠标或者键盘)插入所有接口识别。识别完成后,选择S选项生成KEXT文件放到/OC/KEXT/文件夹内。
方法二:
打开设备管理器-通用串行总线控制器,在3.0接口插入USB3.0可以看到设备为USB大容量存储设备。双击或者右键打开属性-详细信息-位置路径,可以看到类似的信息:ACPI(_SB_)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(SS03),用纸笔记下该接口的位置(如左1、左2)和关键字SS03。操作进先3.0接口再用2.0设备插入2.0接口。根据经验可以看出SS是3.0口,HS是2.0口。比如笔者的接口是:左SS03 HS03 中SS01 HS01 右SS02 HS02,还有一个type-c雷电接口识别为USB3.0 HS04 SS04,内部的摄像头接口为HS06。对于USB3.0的type-c接口需要用type-c的U盘,插入一次后翻转接口再插入一次。如果2次都是相同的地址,那么connector参数为9,如果两次不一样connector参数为10。内置设备(如蓝牙)的 connector参数为255。
ACPI定义的USB接口类型和参数,type这里就是connector参数,先了解后面配置要用到。
接下来用ProperTree修改KEXT配置文件,把没有检测到的口删除。
ProperTree在ProperTree文件夹下运行propertree.bat文件(需PYTHON支持)
菜单file-open打开EFI\OC\Kexts\USBPorts.kext\Contents下的info.plist文件。
这里的USBPorts.kext可以用前面方法一生成的文件或者usbtoolbox提供的文件或者通过网络找到的相同配置的驱动文件。
在windows下kext文件是文件夹的形式。找到IOKitPersonalities-IOProviderMergeProperties-ports记录,可以看到我们刚才检测的接口信息。把无用的端口删除(选中字段按-号键删除),把connector参数改为对应的数值(如:3表示USB3.0接口),别忘了保存。
在IOKitPersonalities下的MacBookPro15,2-XHC是硬件匹配的apple产品型号。可以用GenSMBIOS工具生成,之后配置config.plist时会用到。具体可以官方指导手册configs章节了解。
选择CPU对应的平台,如笔者的是:移动平台laptop,CPU是coffee lake。在platforminfo子节里可以看到对应的苹果设备信息为MacBookPro15,1。
2.4.2.6 WIFI和蓝牙驱动
笔者的无线网卡是intel AC 9650,根据自己配置选择下载。
AirportItlwm
无线网卡驱动IntelBluetoothFirmware
IntelBluetoothFirmware2.4.2.7 额外驱动
m.2固态硬盘
NVMeFix
NVMeFixSATA-Unsupported
SATA驱动(系统安装到固态可以不用,和笔记本装完系统看不到sata硬盘有关)
SATA-unsupported.kextCtlnaAHCIPort
官网提示如果上一个没用装这个,我装的这个。
CtlnaAHCIPort.kext.zip2.4.2.8 笔记本输入设备
键盘:VoodooPS2
VoodooPS2SMBUS触摸板:VoodooRMI
VoodooRMI2.4.2.8 杂项
ECEnabler (修复电池状态,允许读取EC作用域超过8 bit的参数内容)
ECEnabler2.5 配置SSDTs
术语:
SSDT的全称是System Services Descriptor Table,系统服务描述符表ACPI中描述设备以及操作系统应如何与设备交互的属性,例如使计算机进入睡眠、唤醒、切换GPU、USB端口)
ACPI 高级配置与电源接口(Advanced Configuration and Power Interface,ACPI)
SSDTs需要根据硬件对应的平台选择对应的文件,通过官方提供的表格进行查询。.aml是编译好的文件,.dsl是ASL语言的源文件。在这里需要的是.aml文件。SSDT文件放入/OC/ACPI/文件夹下。
官网:
配置SSDT下载地址:
官方编译好的SSDT文件opencore官方给出了2种制作SSDT的方法,一种是手动编译需要用到iasl或者MaciASL,具体参考官方安装指导手册。另一个快捷的方法是使用 SSDTTime 工具。运行BAT文件后输入P提取DSDT,回车返回主菜单后根据需要输入相应的数字键,如输入4 回车(plugintype)会生成一些文件。SSDTTIME用下来感觉还是有点鸡肋,这里提及一下只是提供一个方案。可以直接下载官方提供的文件使用。
既然提到DSDT的提取,这里也稍微提示一下。DSDT装好系统制作补丁会用到,有许多工具比如hackintool也可以提取。然而用clover提取的DSDT才是最接近BIOS的干净DSDT。可以用etcher制作一个含clover引导的U盘(建议单独准备一个16G以上U盘),引导后按F1然后按F4提取。提取成功的文件会放在\EFI\CLOVER\ACPI\origin\下。和opencore一样clover也是一个系统引导工具。由于本文只是基于opencore的安装,关于clover的教程可以看黑果小兵的教程:
黑果小兵的部落阁clover镜像可以到黑果小兵的BLOG下载:
黑果小兵的部落阁这里不做过多赘述(其实笔者并没有用过clover;-)
言归正传,以笔者的配置INTEL i5 8300H属于移动平台laptop,coffelake架构举例。需要以下文件:
SSDT-PLUG
CPU电源管理支持,INTEL 四代Haswell以后的CPU开始兼容。
下载地址:
SSDT-PLUG-DRTNIA.amlSSDT-EC-USBX
对于桌面平台,EC(embedded controller嵌入式控制器)和AppleACPIEC驱动不兼容,当运行MacOS时我们禁用了这个设备。AppleBusPowerController会寻找一个名为EC的设备,所以我们创造一个假的设备给它加载。此外对于skylake(6代)以后的CPU,AppleBusPowerController也需要一个USBX设备提供USB电源属性,所以我们把这个设备绑定给EC修正。
对于移动平台,EC用于热键和电池,禁用它不是一个好的主意。所以我们给APPLE提供一个假的EC设备。
说简单点就是EC-USB修正吧。
下载地址:
SSDT-EC-USBX-LAPTOP.amlSSDT-PNLF
给GPU假定路径以修复显示器背光。这个SSDT的目的是为macOS创建一个PNLF设备,特别是一个硬件ID为APP0002的设备。幸运的是,WhateverGreen将为我们处理其余的工作。
下载地址:
SSDT-PNLF.amlSSDT-GPI0
I2C总线和触摸板修正,通常情况下已经启用不需要修正。
由于笔者的触摸板是PS/2而不是I2C的设备,没有装这个。在安装系统时触摸板不能使用,插了个USB无线鼠标。SSDT-GPIO只能在安装完MacOS后手动编译。
SSDT-AWAC
对于一些新硬件,用于修正系统时钟。(B360 B365 H310 H370 Z370(用了新BIOS的技嘉和华擎主板)Z390 B460 Z490 400系列 495系列 X99 X299)
下载地址:
SSDT-AWAC.amlSSDT-PMC
为“真”300系主板提供NVRAM原生支持(B360 B365 H310 H370 Z390) ,官网说明Z370除外,HM370不需要。按照表格COFFEE LAKE移动平台不需要此文件,但我在安装系统时出现安装到最后2分钟时死机(典型故障)。通过官方排障说明安装后排除。不得不说官方的这个排障真的很有用,解决了很多问题。故障排除页:https://dortania.github.io/OpenCore-Install-Guide/troubleshooting/extended/userspace-issues.html#stuck-at-2-minutes-remaining
下载地址:
SSDT-PMC.aml三、配置config.plist文件(重点难点)
打开解压好的opencore文件夹,把docs文件夹下的sample.plist复制到U盘的EFI/OC/文件夹下,重命名为config.plist。现在的文件结构如图:
详细的配置信息可以参考docs下的configration.pdf配置参考手册.
最新版地址:
Configuration.pdf国内sukka转载翻译的opencore简体中文参考手册
opencore简体中文参考手册
本节要用到的工具有:
ProperTree(plist文件配置编辑器)
下载地址:
ProperTreeGenSMBIOS(序列号生成器)
下载地址:
GenSMBIOS打开解压好的propertree文件夹,运行propertree.bat(需PYTHON支持)
TIPS:
MacOS下用ProperTree.command创建app
windows下使用ProperTree.bat
菜单file-open(Cmd/Ctrl+O)打开你U盘/EFI/OC/下的config.plist文件。
执行一下干净的快照,菜单file-oc clean snapshot(Cmd/Ctrl+Shift+R)选择你U盘的EFI/OC/文件夹。这会清除config.plist所有的字段然后把你的SSDTs、Kexts和固件驱动等就添加到config.plist里。
与之不同的是Cmd/Ctrl + R快照不会清除你已经配置好的信息,调试排除故障时经常要用。当你的EFI文件结构发生变化后一定要记得用Ctrl+R同步一下config.plist,以免引导时出错。
如果弹窗提示"Disable the following kexts with Duplicate CFBundleIdentifiers?",选“yes”。这是为了确保注入的kexts不会重复,因为有些kexts可能有一些相同的插件(例如VoodooPS2和VoodooI2C的插件文件夹中都有VoodooInput)。
表头的几条#WARNING注释没有什么用可以删除。+号新建字段,-号删除字段。
在配置开始之前先选择你的硬件平台:
选择硬件平台3.1 配置ACPI3.1.1
ADD字段
快照后,/EFI/OC/ACPI/文件夹里的文件信息显示在ADD字段里。由于opencore更新频繁官方指南的图不一定是最新的,不明白的多读几遍官方指南的文字。不要随意删除config.plist的字段,描述里没提及的内容保持默认设置。
注意在这里你不需要生成DSDT.aml,它已经在你的固件里了。我这里有DSDT.aml是因为开机检测到非HP电池的问题需要修改DSDT,并且要把这个字段的位置放在最前。字段的顺序很重要,后面配置驱动时会提到。调整方法是选中字段,然后按住鼠标往上拖,比如我把6DSDT拖到顶顺序就变成0。注意要拖到其它字段上面不然就放到它里面去了。
3.1.2 Delete记录
阻止ACPI表加载,这里我们忽略保持默认。
3.1.3 Patch记录
这个字段是用来给ACPI(DSDT,SSDT)热修补的。如果你用了SSDT-XOSI,你需要把所有的OSI重定向到这个SSDT。意思就是说固件(也就是DDST)里有个_OSI函数需要用SSDT-XOSI.aml重命名为XOSI。需要在这里设置。注意版本更新后布尔值boolean的值从yes变为true,no变为false。我没I2C设备所以没装。
Comment | String | Change _OSI to XOSI |
Enabled | Boolean | YES |
Count | Number | 0 |
Limit | Number | 0 |
Find | Data | 5f4f5349 |
Replace | Data | 584f5349 |
3.1.4 Quirks记录
和ACPI有关的设置,用不到保持默认。
3.2 配置Booter
顺便提一下opencore兼容clover的部分驱动,从clover转到opencore的教程见官方指南:
从clover转到opencore3.2.1 MmioWhitelist记录
本字段和MacOS调用硬件内存空间相关(个人猜测没查到具体信息),通常忽略保持默认。和quirks里的DevirtualiseMmio配合比较有用。
3.2.2 Quirks记录
这项主要配置quirks子字段,用openruntime给boot.efi打补丁和固件修正,用来替代aptiomemoryfix.efi(应该是clover里内存分配的驱动,该驱动作者说配置不当会永久损坏硬件)。设置以下参数:(具体各参数的解释见官网。新版boolean布值已经改为true和false后面有用到同理不再提醒)
Quirk | Enabled |
EnableWriteUnprotector | NO |
RebuildAppleMemoryMap | YES |
SyncRuntimePermissions | YES |
3.3 配置设备属性DeviceProperties
3.3.1 ADD记录
3.3.1.1 PciRoot(0x0)/Pci(0x2,0x0)记录
用于通过whatevergreen设置集成显卡iGPU属性。whatevergreen的说明:https://github.com/acidanthera/WhateverGreen/blob/master/Manual/FAQ.IntelHD.en.md。在了解硬件章节提到的通过windows设备管理查看设备位置路径可以看到我的内置显卡intel uhd 630,位置路径:PCI 总线 0、设备 2、功能 0也可以知道igpu对应了这个记录。AAPL,ig-platform-id参数用来设置内置显卡,初始设置时只用这一个参数就够了。如果config.plist里没有这一字段,需要手动创建。可以看到我的iGPU的硬件ID(device-id)是0x00003E9B,这里参数的值写成00009B3E原因是苹果系统的规则是低位优先,16进制高低位交换。个人猜测是和堆栈有关(汇编基础知识)。下面的表给出了一些集成显卡的参数值,type类型为对应的平台类型。
AAPL,ig-platform-id | Type | Comment |
0900A53E | Laptop | Recommended value for UHD 630 |
00009B3E | Laptop | Recommended value for UHD 620 |
07009B3E | NUC | Recommended value for UHD 620/630 |
0000A53E | NUC | Recommended value for UHD 655 |
在某些情况下,如果无法在UEFI设置中将这些卡的DVMT内存动态分配设置为64MB或更高,则可能会出现内核死机。通常,它们配置为32MB,在这种情况下,这些值将添加到iGPU属性中。
Key | Type | Value |
framebuffer-patch-enable | Data | 01000000 |
framebuffer-stolenmem | Data | 00003001 |
framebuffer-fbmem | Data | 00009000 |
3.3.1.2 PciRoot(0x0)/Pci(0x1b,0x0)记录
参数:layout-id
为AppleALC应用音频注入,需要了解自己的声卡解码器型号来对应AppleALC的音频布局。AppleALC Supported Codecs支持列表:https://github.com/acidanthera/AppleALC/wiki/Supported-codecs
我的声卡是RealTek ALC195,对应的布局:layout 1, 3, 13, 14, 15, 21, 22, 23, 24, 28, 77。我们用boot-arg参数alcid=xxx来代替这项设置。alcid会覆盖所有存在的layout-IDs。boot-arg参数在后面的NVRAM小节里说明,这里保持默认。
alcid=xxx的xxx对应布局表里的这些数字,先选一个装系统,装完如果音频无效再换别的数字测试。测试正常后这里的layout-id数值改为正常的数值,然后把boot-arg里的acid=xxx删掉以避免参数的优先级过高导致AppleALC忽略掉像DeviceProperties的其它记录。具体细节见官方指南的后期安装章节:
恢复layout-id这里简单翻译一下。
gfxutl下载地址:
gfxutil装好系统并测试成功后用gfxutil工具找到声卡的位置信息。打开终端输入
path/to/gfxutil -f HDEF (path/to/gfxutil改成你gfxutil在MACOS里的文件路径)
把测试正常的数字填到propertree里DeviceProperties -> Add下对应的pciroot的layout-id字段数值里。这个数值可以为10进制(propertree里的type类型选number)也可以为16进制(propertree里的type类型选data)。通常为了避免一些不必要的转换最好的方法是选用16进制。可以用这个10进制16进制转换工具:
Decimal to Hexadecimal Converter例如:alcid=11参数可以这样填:
- layout-id | Data | <0B000000>
- layout-id | Number | <11>
注意最终的16进制数值总共应该是4个字节(如:0B 00 00 00),如果数值大于255(FF 00 00 00)要记得高低位交换。用这个工具里的Little endian(低位优先)的数值。所以256(0x00000100)就会变为 00 01 00 00。比如我们10进制的271换算成16进制是10F,16进制的写法是0x0000010F(不满4个字节用0填充),低位优先写成0F 01 00 00。其实低于255的数也是一样的,比如刚才的10进制数11写成16进制就是0x00000B倒过来不就是0B 00 00 00吗?具体要弄懂可以看一些编程方面的书籍,比如C语言。水平有限不做赘述。
3.3.2 Delete记录
从设备映射里移除设备属性,这里我们忽略。
4 配置内核Kernel
关注红框中的内容即可
4.1 Add记录
在这里,我们指定要加载哪些kext,以什么特定顺序加载,以及每个kext用于什么架构。默认情况下,我们建议保留ProperTree所做的操作。这里特别要注意的是排列顺序,任何插件都要在它的依存组件后加载,lilu是基础库一定要排在VirtualSMC,AppleALC,WhateverGreen前面。比如无线网卡要排在蓝牙前面(我调试时搜索了很久才在reddit发现有人提出这个问题)。
其它具体的参数解释看官网
0-Lilu.kext
1-VirtualSMC.kext
2-WhateverGreen.kext
4.2 Emulate
用来冒名顶替不受支持的CPU,比如奔腾和赛扬。
4.3 Force
用于从系统卷加载KEXT,仅适用于缓存中不存在某些KEXT的旧操作系统(如10.6中的IONetworkingFamily)
忽略
4.4 Block
阻止某些kext加载
4.5 Patch
给内核kernel和kext打补丁
4.6 Quirks
和内核有关的设置,我们需要启用下面的设置:
Quirk | Enabled | Comment |
AppleXcpmCfgLock | YES | Not needed if CFG-Lock is disabled in the BIOS |
DisableIoMapper | YES | Not needed if VT-D is disabled in the BIOS |
LapicKernelPanic | NO | HP Machines will require this quirk |
PanicNoKextDump | YES | |
PowerTimeoutKernelPanic | YES | |
XhciPortLimit | YES | Disable if running macOS 11.3+ |
用的惠普电脑,LapicKernelPanic这个项网上也有说不用启用。macOS11.3以上版本不能启用XhciPortLimit,只能定制USB使接口数少于15个。
4.7 Scheme
传统引导相关的设置,可以略过。
5 Misc杂项配置
5.1 Boot
HideAuxiliary 设置为true时,隐藏引导菜单里macOS recovery(系统恢复)和工具等其它额外选项,为多磁盘系统提高了启动性能。在选项界面按空格键可以呼出这些条目。记得安装时按空格才能看到MacOS recovery选项。(我在第一次安装时就遇到这个问题,查了很久)
5.2 Debug
需要安装debug版本,启动故障时很有用。具体说明看官方指南
OpenCore Debugging按照以下参数设置,会在U盘根目录生成log日志文件。启动遇到问题可以通过log日志排除故障。一般看最后一行的故障代码,然后查询官方的疑难解答,非常有用。疑难解答地址:
General Troubleshooting | OpenCore Install GuideQuirk | Enabled |
AppleDebug | YES |
ApplePanic | YES |
DisableWatchDog | YES |
Target | 67 |
debug和release版本切换只需要替换相应版本的以下文件。
- EFI/BOOT/
- BOOTx64.efi
- EFI/OC/Drivers/
- OpenRuntime.efi
- OpenCanopy.efi(用于美化引导界面的内核驱动文件)
- EFI/OC/
- OpenCore.efi
清除所有的log日志,取消DEBUG参数设置
AppleDebug = NO
ApplePanic = NO
Target = 0
5.3 Security
按下表设置
Quirk | Enabled | Comment |
AllowSetDefault | YES | 允许CTRL+回车和CTRL+index按键在启动界面设置默认启动设备 |
BlacklistAppleUpdate | YES | 阻止固件更新 |
ScanPolicy | 0 | 显示所有的驱动器,系统安装时看不到硬盘可以试试 |
SecureBootModel | Default | 默认值Default,opencore根据你的SMBIOS信息自动设置数值。 |
Vault | Optional | 不可省略,值为Optional。大小写敏感。 |
5.4 Serial
用于串口调试,保留默认值
5.5 Tools
用于引导运行时的工具,propertree会根据你/EFI/OC/TOOLS/文件下的文件自动添加。
5.6 Entries
用于指定opencore不能自然发现的不规则引导路径。更多信息看 configuration.pdf第8.6小节。
6 配置NVRAM
6.1 ADD
6.1.1 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14
用于opencore引导界面,保留默认值。更多信息看官方指南
6.1.2 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102
OpenCore的NVRAM GUID,主要与RTCMemoryFixup用户相关
6.1.3 7C436110-AB2A-4BBB-A880-FE41995C9F82
系统完整性保护位掩码
通用boot-args参数
boot-args | 说明 |
-v | 开启啰嗦模式,启动时代替苹果logo和进度条只显示滚动文字帮助故障定位。 |
debug=0x100 | 关闭macOS的watchdog |
keepsyms=1 | debug=0x100的相关设置,告诉系统标记内核错误 |
alcid=1 | 用于设置 AppleALC的layout-id参数 |
特定的GPU启动参数
boot-args | Description |
-wegnoegpu | 禁用除集成显卡iGPU外的其它显卡 |
-igfxblr | 解决新版whatevergreen引起的苹果logo读条后黑屏的问题 |
csr-active-config: 00000000
系统应急保护(SIP),关闭SIP:
关闭SIPrun-efi-updater: No
防止苹果固件更新破坏引导顺序
prev-lang:kbd: <en-US:0>
键盘设置,样本文件sample.plist默认是俄语,这里改成美式键盘。
6.2 Delete
强制重写NVRAM变量,不会覆盖NVRAM中已经存在的值,因此应单独保留boot-args。
7 配置PlatformInfo平台信息
设置SMBIOS信息,需要GenSMBIOS这个工具。
下载:
GenSMBIOSwindows下运行.bat文件(需要PYTHON支持),macOS下运行.command。输入1下载序列号,输入3选择要生成的SMBIOS。硬件配置不同SMBIOS不同,在官方指南configs->Platforminfo章节查询。我的是coffee lake配置相似的苹果设备是MacBookPro15,1。把生成的序列号复制下来。
Type信息复制到 Generic -> SystemProductName.
Serial信息复制到 Generic -> SystemSerialNumber.
Board Serial 复制到Generic -> MLB.
SmUUID 复制到 Generic -> SystemUUID.
Apple ROM是网卡的MAC地址,可以用自己的值填入Generic -> ROM
查看网卡MAC的方法:
BIOS中直接查看
macOS:系统参数-> 网络 ->以太网 ->高级 ->硬件 -> MAC Address
Windows: 设置 -> 网络和Internet -> 以太网 -> 以太网 -> 物理网络地址
你需要一个无效的序列号,打开苹果服务保障页
苹果官方服务保障页面把刚才生成的serial序列号复制过去,红字提示我们无法查看此序列号的保障状态就是可用的序列号。如果通过测试就重新生成一个序列号。
8 配置UEFI
按照红框中的设置即可。HP 主板UnblockFsConnect设为true。
config.plist文件配置基本就完成了,遇到问题多看看官方指南,故障排除章节Troubleshooting。善用搜索引擎,建议只用谷歌,你可能需要一些科学上网的方法。
9 设置BIOS
各个厂家的主板BIOS里的名字不经相同,你需要了解这些设置的含义进行设置。
Disable 禁用
Fast Boot( 快速启动)
Secure Boot(安全启动)
Serial/COM Port(串行接口)
Parallel Port(并行接口)
VT-d (can be enabled if you set DisableIoMapper to YES)
Compatibility Support Module (CSM) (兼容性支持模块)
Thunderbolt(雷电接口)Intel SGXIntel Platform TrustCFG Lock(CFG锁)
Enable 启用
VT-xAbove 4G Decoding (大于 4G 地址空间解码)
Hyper-Threading(处理器超线程)
Execute Disable BitEHCI/XHCI Hand-off(接手 EHCI/XHCI 控制)
OS type: Windows 8.1/10 UEFI Mode(操作系统类型: Windows 8.1/10 UEFI模式)
DVMT Pre-Allocated(iGPU Memory): 64MB or higherSATA Mode: AHCI
10 MacOS系统安装
插上有线网卡的网线,插好安装U盘,开机用热键调出BIOS启动顺序菜单(也可以在BIOS里设置启动顺序为U盘优先),选择你的U盘进入引导界面。这时你应该可以看到有EFI、WINDOWS选项,还记得之前MISC里的HideAuxiliary设置吗,你需要按一下空格会显示更多的选项。选择你的U盘名字(rufus格式化时创建的卷标),比如我的是hackintosh(dmg)黑屏跑代码结束后进入安装界面。能进入安装界面说明配置正常离成功已经不远了,如果报错,根据屏幕上卡住的代码提示和U盘的log日志问题查找排除故障。如果安装界面是英文,可以在菜单file里找到choose language选择为中文。如果键盘或者触摸板没用可能是驱动的问题,回到windows换驱动再试。外接USB鼠标比较方便。
选择磁盘工具,选中要安装系统的硬盘,选择抹掉给系统分区取个英文名字,格式选择AFPS(需要了解你所选择的macos支持的磁盘格式,AFPS格式从high sierra以后的版本才开始支持。并且high sierra的AFPS有BUG会导致无线网卡不能用,我之后又换成了monterey),方案选择GUID分区图。分完区后返回选择重新安装macos,选择刚才格式化的分区开始安装。安装过程需要远程下载系统镜像,确保网络畅通。网速不快的话等待的时间会比较长,有时会卡住不时动一动鼠标。如果安装到最后2分钟死机,并且你是300系主板的话试试把SSDT-PMC.aml复制到/EFI/OC/ACPI/文件夹里,同时用propertree的快照ctrl+r更新一下文件变动。
安装成功后对设备的各项功能进行一下验证。
11 从硬盘引导启动
系统安装好后,还是从U盘的EFI来引导启动的。为了从硬盘引导启动我们需要一个工具:MountEFI
下载地址:MountEFI
macos系统下运行mountefi.command,选择mac系统所在的分区,这里我的安装分区是3.menterey(diskXsY,X表示硬盘Y表示分区)。挂载完成后打开分区,可能会有一个APPLE文件夹,是真正的苹果电脑用来更新固件用的,对我们没有影响可以删除。之后把U盘里的整个EFI文件复制到这个新出现的EFI硬盘里。拨出U盘重启系统就可以从硬盘引导系统了。
至此,黑苹果系统已经安装完成。现在的系统仍然不够完整还需要进一步检测调试和打各种修复补丁。关于调试修复请参考opencore官方后期安装指南:
opencore官方后期安装指南说明:
plist文件本身可以看为一个数据表,所以为了和数据库语言里的术语保持一致,entries翻译为记录可以理解为子条目,propertree里数值类型通常为dictionary。section翻译为字段可以理解为子条目里的参数,在propertree里数值类型一般为data。
参考资料:(部分网站需要科学上网)
opencore官方安装指南
OpenCore Install Guideopencore官方配置参考手册
配置参考手册OC-little
OC-littlexjn
使用opencore引导黑苹果黑果小兵
精解opencore黑果小兵镜像
黑果小兵的部落阁opencore简体中文参考手册
Captcha | SukkaACPI修补教程
OpenCore 部件 · GitBookreddit讨论版
reddit的hackintosh版块discord社群
discord社群tonymacx86(全局代理)
tonymacx86六、如何安装黑苹果的显卡驱动?
1. 打开Finder,点“位置->应用程序->实用工具->终端”;2. 在终端窗口内输进sudo -s后回车,接着输进治理员密码,再回车;
www.2cto.com
3. 输进vi /Library/Preferences/SystemConfiguration/com.apple.Boot.plist
;4. 将光标移到后按“a”键,此时文件变为可编辑状态,按回车;5. 输进; 6. 输进,这里1366*768表示屏幕分辨率,60表示刷新率;7. 按“Esc”退出文件编辑状态;www.2cto.com
8. 同时按“Shift”和“:”键,输进x后按回车(退出并保存);9. 封闭终端、封闭Finder,封闭系统,重新启动虚拟机就可以了七、怎么安装黑苹果的网卡驱动?
这个解压缩双击就可以安装了(在MAC下安装)。
或者用我这个驱动,解压后得到RealtekRTL81xx.kext,变色龙直接放直接放E/E(重启),clover放EFI\kexts(重启),即可!或用Kext Utility 安装到S\L\E(重启)
以上方法随你用
八、i苹果助手“驱动安装失败”修复教程?
1,在我的电脑开始菜单中打开控制面板,找到卸载程序入口(图1所示)
2,卸载程序中找到以下程序,右键点击“卸载”按钮逐一进行卸载操作:Apple应用程序支持” Bonjour Apple Mobile Device Support iTunes
3,完成以上程序卸载后,重新启动i苹果助手,会更新至最新版本的驱动程序。
希望上面的教程会对你有帮助,欢迎大家留言互动
九、aoc驱动安装教程?
一:先卸载原有驱动,卸载方法:我的电脑——属性——硬件——设备管理器——显示卡——双击谈出显卡属性——驱动程序——卸载二:然后安装新的显示器驱动.方法一:买电脑的时候送的有光盘,插入光驱自动安装就行.方法二:去网上按显示器型号下载一个驱动安装.方法三:直接用驱动人生之类的驱动软件自动检测安装。
十、声卡驱动安装教程?
以360驱动大师为例。打开“360驱动大师”软件,它会自动扫描未安装的驱动,我们可以看见有两个声卡驱动等待安装。点击“一键安装”进行驱动安装。
驱动安装完成后重启一下电脑,重启之后打开:打开我的电脑→属性→设备管理器。设备管理器里的声卡上的黄色感叹号不见了,就说明声卡驱动已经安装好了。