学习的需要再加上手上正好有一台闲置的笔记本电脑,于是有了这篇手记。
至少准备一个大于16G的U盘,两个更好。
(置顶方便查找,可以先跳过在下文用到时再下载)
【必须】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 - 设备属性查询工具官方配置指南,参数和详细解释
opencore官方配置说明文档通过设备管理器和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
(这里下载的不是完整镜像,应该是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文件夹里。
官方介绍的3种创建U盘的方法,这里选用最方便的Rufus工具。大于16G的U盘只能用工具格式化。
rufus下载地址:https://rufus.ie/
设备选择自己的U盘
引导类型选择非可引导
分区类型GPT
目标系统类型BIOS或UEFI
卷标给U盘起名好区分的名字
文件系统Large FAT32
点击开始完成U盘格式化,把弹出的U盘根目录下的autorun文件都删除。
在U盘根目录创建一个com.apple.recovery.boot文件夹,把之前下载的BaseSystem.dmg和BaseSystem.chunklist复制到里面来。打开解压好的opencore文件夹,可以看到文件夹里有IA32(32位CPU)和X64(64位CPU)两个文件夹,从中选择合适的EFI文件夹复制到U盘根目录和com.apple.recovery.boot文件夹放到一起。如图所示:
把不需要的文件从文件夹里删除(具体文件的作用见官网),只保留下图红框中的文件。
干净的EFI目录结构
根据自己的硬件情况进行选择,如果opencore用的debug版本驱动用相应的debug版本。比较老的硬件需要选用legacy的文件。
电源管理描述表SSDTs和DSDTs(.aml)文件放到/OC/ACPI/文件夹下
硬件驱动Kext(.kext)文件放到/OC/Kext/文件夹下
固件驱动(.efi)文件放到/OC/Driver/文件夹下
官网地址:
收集文件HfsPlus.efi(必须)
用于支持HFS文件系统
HfsPlus.efiOpenRuntime.efi(必须)
opencore扩展组件,boot.efi和NVRAM内存管理修补
OpenRuntime.efiVirtualSMC驱动(必须,用于模拟苹果电脑的SMC芯片)
VirtualSMC驱动SMCProcessor.kext 用于监控 cpu 温度
SMCSuperIO.kext 用于监控散热器速度
SMCLightSensor.kext 用于环境光检测,台式机不需要
SMCBatteryManager.kext 用于读取电池信息,台式机不需要
Lilu驱动(基础库,必须)
Lilu驱动WhateverGreen(必须)
显卡驱动AppleALC
声卡驱动(重要,第一次安装系统时需要联网。充分了解自己的网卡型号然后在ethernet章节下寻找对应的驱动)
笔者的网卡RealtekRTL8111
有线网卡驱动这里要使用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。
笔者的无线网卡是intel AC 9650,根据自己配置选择下载。
AirportItlwm
无线网卡驱动IntelBluetoothFirmware
IntelBluetoothFirmwarem.2固态硬盘
NVMeFix
NVMeFixSATA-Unsupported
SATA驱动(系统安装到固态可以不用,和笔记本装完系统看不到sata硬盘有关)
SATA-unsupported.kextCtlnaAHCIPort
官网提示如果上一个没用装这个,我装的这个。
CtlnaAHCIPort.kext.zip键盘:VoodooPS2
VoodooPS2SMBUS触摸板:VoodooRMI
VoodooRMIECEnabler (修复电池状态,允许读取EC作用域超过8 bit的参数内容)
ECEnabler术语:
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打开解压好的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注释没有什么用可以删除。+号新建字段,-号删除字段。
在配置开始之前先选择你的硬件平台:
选择硬件平台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有关的设置,用不到保持默认。
顺便提一下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 |
用于通过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 |
参数: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参数可以这样填:
注意最终的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记录
从设备映射里移除设备属性,这里我们忽略。
关注红框中的内容即可
在这里,我们指定要加载哪些kext,以什么特定顺序加载,以及每个kext用于什么架构。默认情况下,我们建议保留ProperTree所做的操作。这里特别要注意的是排列顺序,任何插件都要在它的依存组件后加载,lilu是基础库一定要排在VirtualSMC,AppleALC,WhateverGreen前面。比如无线网卡要排在蓝牙前面(我调试时搜索了很久才在reddit发现有人提出这个问题)。
其它具体的参数解释看官网
0-Lilu.kext
1-VirtualSMC.kext
2-WhateverGreen.kext
用来冒名顶替不受支持的CPU,比如奔腾和赛扬。
用于从系统卷加载KEXT,仅适用于缓存中不存在某些KEXT的旧操作系统(如10.6中的IONetworkingFamily)
忽略
阻止某些kext加载
给内核kernel和kext打补丁
和内核有关的设置,我们需要启用下面的设置:
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个。
传统引导相关的设置,可以略过。
HideAuxiliary 设置为true时,隐藏引导菜单里macOS recovery(系统恢复)和工具等其它额外选项,为多磁盘系统提高了启动性能。在选项界面按空格键可以呼出这些条目。记得安装时按空格才能看到MacOS recovery选项。(我在第一次安装时就遇到这个问题,查了很久)
需要安装debug版本,启动故障时很有用。具体说明看官方指南
OpenCore Debugging按照以下参数设置,会在U盘根目录生成log日志文件。启动遇到问题可以通过log日志排除故障。一般看最后一行的故障代码,然后查询官方的疑难解答,非常有用。疑难解答地址:
General Troubleshooting | OpenCore Install GuideQuirk | Enabled |
AppleDebug | YES |
ApplePanic | YES |
DisableWatchDog | YES |
Target | 67 |
debug和release版本切换只需要替换相应版本的以下文件。
清除所有的log日志,取消DEBUG参数设置
AppleDebug = NO
ApplePanic = NO
Target = 0
按下表设置
Quirk | Enabled | Comment |
AllowSetDefault | YES | 允许CTRL+回车和CTRL+index按键在启动界面设置默认启动设备 |
BlacklistAppleUpdate | YES | 阻止固件更新 |
ScanPolicy | 0 | 显示所有的驱动器,系统安装时看不到硬盘可以试试 |
SecureBootModel | Default | 默认值Default,opencore根据你的SMBIOS信息自动设置数值。 |
Vault | Optional | 不可省略,值为Optional。大小写敏感。 |
用于串口调试,保留默认值
用于引导运行时的工具,propertree会根据你/EFI/OC/TOOLS/文件下的文件自动添加。
用于指定opencore不能自然发现的不规则引导路径。更多信息看 configuration.pdf第8.6小节。
用于opencore引导界面,保留默认值。更多信息看官方指南
OpenCore的NVRAM GUID,主要与RTCMemoryFixup用户相关
系统完整性保护位掩码
通用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默认是俄语,这里改成美式键盘。
强制重写NVRAM变量,不会覆盖NVRAM中已经存在的值,因此应单独保留boot-args。
设置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序列号复制过去,红字提示我们无法查看此序列号的保障状态就是可用的序列号。如果通过测试就重新生成一个序列号。
按照红框中的设置即可。HP 主板UnblockFsConnect设为true。
config.plist文件配置基本就完成了,遇到问题多看看官方指南,故障排除章节Troubleshooting。善用搜索引擎,建议只用谷歌,你可能需要一些科学上网的方法。
各个厂家的主板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
插上有线网卡的网线,插好安装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更新一下文件变动。
安装成功后对设备的各项功能进行一下验证。
系统安装好后,还是从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在当今数字化时代,电脑已经成为生活中不可或缺的工具之一。随着科技的不断发展与进步,市面上的电脑产品也日新月异,但对于一些热爱DIY的玩家来说,购买一台现成的电脑或许无法满足他们对性能与外观的追求。因此,自行组装电脑成为了一种流行的选择。本教程将带领大家逐步学习如何自行组装电脑主机,让你能够从零开始打造一台符合个人需求的专属电脑。
在开始组装电脑之前,首先要明确自己的需求和预算,确定需要购买的配件。一般来说,组装一台电脑主机所需的基本配件包括:
一切准备就绪后,接下来就是组装电脑的关键步骤。下面将介绍具体的组装流程:
在组装电脑的过程中,一定要注意以下几点,确保电脑的正常运行和自身安全:
通过本教程,相信大家已经对如何自行组装电脑主机有了一定的了解。只要有耐心和细心,任何人都可以通过自己动手打造一台性能优越、外观炫酷的电脑。希望本教程对你有所帮助,祝愿你能成功组装一台完美的电脑!
在现代科技发展的时代,电脑已经成为了我们日常生活和工作中必不可少的工具。苹果电脑作为一种高性能、稳定可靠的设备,备受人们的青睐。在使用苹果电脑的过程中,我们经常需要安装各种软件来满足我们的需求。本教程将向您介绍苹果电脑安装软件的基本步骤和注意事项,帮助您轻松地完成安装过程。
步骤一:准备工作
在开始安装软件之前,您需要先完成一些准备工作。首先,确保您的苹果电脑连接到互联网,并且有稳定的网络连接。其次,检查一下您的电脑是否满足软件的系统要求,包括操作系统版本、内存、硬盘空间等。
步骤二:下载软件
一般来说,您可以从苹果官方的App Store或者软件开发者的官方网站下载软件。前往App Store,使用您的Apple ID登录,然后在搜索框中输入您需要安装的软件的名称。找到所需软件后,点击下载按钮即可开始下载。如果您是从软件开发者的官方网站下载软件,通常会提供一个下载链接,点击链接即可开始下载安装文件。
步骤三:安装软件
安装软件的步骤可能因软件的类型而有所不同。一般来说,您可以按照以下步骤进行:
步骤四:配置软件
在完成软件安装后,有些软件可能需要您进行一些配置。比如,需要输入您的注册信息、设置软件的首选项等。根据软件的要求,进行相应的配置操作即可。
步骤五:更新和升级
随着时间的推移,软件开发商会不断对软件进行更新和升级,以修复bug和增加新功能。因此,我们建议您在安装完软件后,定期检查软件更新,并及时进行升级。在菜单栏中点击软件的名称,选择“检查更新”或类似选项,然后按照提示完成操作。
注意事项:
通过按照以上步骤和注意事项,您应该可以顺利地安装和配置苹果电脑上的各种软件。如果您仍然遇到困难,我们建议您寻求专业人士的帮助。希望本教程能为您提供一些帮助,祝您愉快地使用苹果电脑和各类软件!
今天我们要谈论的是苹果电脑装机软件。对于很多使用苹果电脑的用户来说,装机软件可能并不是一个常规的话题。因为在购买苹果电脑的时候,系统已经预装了许多常用的软件,几乎满足了日常办公和娱乐的需求。但是,对于一些高级用户或者特定需求用户来说,他们可能会需要自行安装一些软件来满足自己的需求。
装机软件指的是在电脑系统安装时,用户需手动安装的软件。这些软件可能包括但不限于办公软件、设计软件、编程软件、娱乐软件等。相较于预装软件,装机软件是用户根据自己的需求选择安装的,因此具有更强的个性化和定制化特点。
虽然苹果电脑系统已经提供了丰富的预装软件,但是仍有很多用户会选择安装一些第三方软件,以满足自己的工作和生活需求。那么,为什么要安装苹果电脑装机软件呢?
下面我们来介绍一些比较常见且受到用户好评的苹果电脑装机软件:
iWork是由苹果公司开发的办公套件软件,包括Pages、Numbers和Keynote三款软件。这三款软件分别对应Word、Excel和PowerPoint,能够满足用户的办公需求。iWork拥有简洁的界面和强大的功能,是众多苹果用户的首选。
Adobe Creative Cloud是设计师、摄影师等创意人士的首选软件套件。其中包含了Photoshop、Illustrator、InDesign等专业设计软件,能够帮助用户完成各种设计工作。无论是平面设计、插图、排版还是照片编辑,Adobe Creative Cloud都能胜任。
Microsoft Office是全球最知名的办公软件套件之一,包括Word、Excel、PowerPoint等软件。虽然苹果电脑自带了Pages、Numbers和Keynote,但对于习惯使用Office软件的用户来说,安装Microsoft Office也是一个不错的选择。
Final Cut Pro是专业的视频编辑软件,适用于影视工作者、视频创作者等。它提供了强大的视频编辑功能,包括剪辑、特效、音频处理等,能够帮助用户制作出高质量的视频作品。
在选择苹果电脑装机软件时,用户需要根据自己的需求和习惯进行选择。无论是办公、设计、编程还是娱乐,都有很多优秀的第三方软件可以满足用户的需求。希望以上推荐的几款软件能够帮助到有需要的用户,让你的苹果电脑发挥出更大的潜力。
工具:2G 或以上U盘 (用于存放下载的Windows 驱动程序,如果有Windows 安装U盘,那么也可以用Windows 安装U盘代替)。Windows 安装U盘/或者安装光盘 (一定要原版的系统,不能使用Ghost系统)。
1.首先打开Boot Camp助理,点击继续。
2.插入WIN 系统U盘,选择从Apple 下载最新的Windows 支持软件,点击继续,等系统自动下载Windows 驱动到U盘。
3.等Windows 支持文件下载完成后点击退出。
4.插入Windows 安装U盘或者光盘,再次启动Boot Camp助理,选择安装Windows 7 或更高版本。
5.设置Windows 分区大小,建议Windows 7用户的分区在60G或以上,设置完成后点击安装。
6.分区完成后会自动重启电脑,重启电脑后系统自动进入Windows安装界面。
7.选择BOOTCAMP分区,再点击驱动器选项(高级),选择好BOOTCAMP分区后点击格式化,切记千万不要点删除,别想删除后再把Windows多分几个区。
8.点击下一步安装Windows 7系统,安装过程中可能会自动重启几次电脑。
9.安装好系统要设置一些基本信息。
10.进入系统后安装之前下载的Windows 支持软件。
11.重启电脑后双系统就安装完成了啊。以后开机可以按住Option键不放,选择需要启动的系统。
1、先在机箱外面将主板、CPU、内存装好,并用电源先点一下是否能显示。
2、拆机箱,装主板档板,打螺丝铜柱,装电源和光驱。
3、把机箱前面板的跳线先插好,再将主板固定到机箱内。
组装一台电脑的步骤如下
1.第一步,将所有配件打开,将机箱打开。
2.第二步,装置CPU和CPU风扇,将内存条安置在对应的卡槽之中。
3.第三步,先上主板垫脚螺母,接着将主板放入平稳的机箱中固定。
4.第四步,根据说明书进行排线操作。
5.第五步,连接电源,主机组装完成了。
6.第六步,开始连接主机与显示器,先在显示器上接上VGA线,接上后要把后面的两个螺丝固定。
7.第七步,固定完毕之后,把VGA线的另一端接电脑主机。
8.第八步,给显示器接上电源线,电脑组装过程就基本完成了。
机械硬盘是计算机的核心组成部分之一,它可以承载您的操作系统、应用程序、文件和媒体内容。在购买一台崭新的机械硬盘后,您可能会有一些疑问,如何正确安装它以及如何使其正常运行。本篇教程将指导您逐步完成主机安装机械硬盘的过程。
在开始安装过程之前,您需要准备以下工具:
在开始安装前,请确保您的主机已经关机,并拔掉电源插头。然后,打开主机机箱的侧板,以便访问内部组件。
在选择安装位置时,您可以选择将机械硬盘安装在主机前部或后部的硬盘托架上。在大多数情况下,主机箱的前部或后部都会提供硬盘安装位,您可以根据具体情况选择。
取出机械硬盘,并使用螺丝刀将其固定在所选的安装位上。确保硬盘稳固地安装在托架上,以避免因震动而造成损坏。
找到主板上的SATA或IDE接口,然后插入数据连接线分别连接主板和硬盘。确保连接稳固,以免数据传输中断。
某些机械硬盘可能需要额外的电源供应。在这种情况下,找到电源接口,并插入电源连接线。确保连接稳固,并确保电源供应符合硬盘要求。
在所有连接都完成后,将主机机箱的侧板重新安装好,并将电源插头插入插座。然后打开主机,启动它并检查硬盘是否被正确识别。
一旦您的主机识别到新的硬盘,您需要对其进行格式化。这样,您的操作系统才能读取和写入数据。您可以在操作系统的磁盘管理工具中找到格式化选项,按照提示进行操作。
在进行主机安装机械硬盘的过程中,有一些需要注意的重要事项:
正确安装机械硬盘对于主机的正常运行至关重要。通过本教程的步骤,您可以轻松安装并启动机械硬盘。
MAC批量安装字体步骤如下:
1.control+空格,搜索 字体册
2.打开字体册,菜单--文件--添加字体,选择要安装的字体
苹果电脑一般不需要像普通的个人电脑那样进行组装和安装操作系统等步骤。苹果公司出售的电脑已经预装了 macOS 操作系统,您只需要按照以下步骤使用即可:
1. 插上电源适配器并打开电脑,等待操作系统启动。
2. 根据操作系统提示设置您的个人信息、Wi-Fi 网络等配置。如果您已经使用过苹果设备或使用 iCloud 帐户,则可以直接登录 iCloud 帐户并同步您的数据和设置。
3. 进入桌面后,您可以前往 App Store 下载和安装自己需要的软件和应用程序。
如果您需要重新安装 macOS 操作系统,则可以按照以下步骤进行:
1. 在另一台 Mac 电脑上下载最新版 macOS 安装程序,并将其复制到 U 盘或其他可移动存储介质中。
2. 关闭要重新安装系统的 Mac 电脑,并插入新的安装介质。
3. 按住 Option 键并开机,直到出现可用启动选项的屏幕。
4. 选择从刚刚插入的安装介质启动,进入 macOS 安装向导,并按照提示进行操作。
注意:重新安装系统会清空硬盘上所有数据,请提前备份重要文件,以免造成数据丢失。
总之,苹果电脑装机通常不需要自行安装硬件和操作系统,非常方便。