请保证在黑苹果已完全能够正常使用、并有足够能力理解相关术语后进行以下操作。
1 | OpenCore |
黑苹果发展
Mac OS X支持列表
列表如下。其中EFI32/64指需要使用32/64位的引导器,32/64位内核空间支持需要32/64位的kexts。
10.10及更低版本可能无法使用超过24个线程启动,出现mp_cpus_call_wait() timeout的panic。10.11和更高版本的线程限制为64。在启动参数添加cpus=1
可解决该问题。
系统名称 | 系统版本 | 版本号 | 内核号 | 发布日期 | 最后更新日期 | 兼容性 | PowerPC支持 | Intel架构支持 | ARM架构支持 | EFI32位支持 | EFI64位支持 | CPU32位支持 | CPU64位支持 | 32位内核空间支持 | 64位内核空间支持 | 内核架构支持 | 最低指令集要求 | 系统盘格式 | 备注 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Big Sur | 11.0 | 11.2.3-20D9111.2.2-20D8011.2.1-20D75/20D7411.2-20D6411.1-20C6911.0.1-20B50/20B2911.0-20A2411 | 20 | 2020-11-12 | 2013年上半年发布的MacBook Air | - | 支持 | 支持 | - | 支持 | - | 支持 | - | 支持 | x86_64 | SSE4.2 | APFS | 11.0仅适用于M1 CPU | |
Catalina | 10.15 | 10.15.7-19H15/19H4/19H210.15.6-19G2021/19G7310.15.5-19F101/19F9610.15.4-19E287/19E26610.15.3-19D7610.15.2-19C5710.15.1-19B8810.15-19A603/19A602/19A583Golden Master-19A582aDeveloper Beta 10-19A578cDeveloper Beta 9-19A573aDeveloper Beta 8-19A558dDeveloper Beta 7-19A546dDeveloper Beta 6-19A536gDeveloper Beta 5-19A526hDeveloper Beta 4-19A512fDeveloper Beta 3-19A501iDeveloper Beta 2-19A487lDeveloper Beta 1-19A471t | 19 | 2019-10-07 | 2010年的iMac Pro和2012年下半年发布的所有Mac | - | 支持 | - | - | 支持 | - | 支持 | - | 支持 | x86_64 | SSE4.2 | APFS | ||
Mojave | 10.14 | 10.14.6-18G103/18G95/18G87/18G8410.14.5-18F13210.14.4-18E22610.14.3-18D109/18D43/18D4210.14.2-18C5410.14.1-18B57c/18B50c/18B45d10.14-18A391/18A389/18A384a/18A377a/18A371a/18A365a/18A353d/18A347e/18A336e/18A326h/18A326g/18A314h/18A293u | 18 | 2018-09-24 | 2019-12-10 | 2010年的iMac Pro和2012年下半年发布的所有Mac | - | 支持 | - | - | 支持 | - | 支持 | - | 支持 | x86_64 | SSE4.2 | APFS | |
High Sierra | 10.13 | 10.13.6-17G4015/17G3025/17G2208/17G6510.13.5-17F7710.13.4-17E202/17E19910.13.3-17D2102/17D102/17D2047/17D4710.13.2-17C2205/17C205/17C89/17C8810.13.1-17B1003/17B1002/17B4810.13-17A405/17A365 | 17 | 2017-09-25 | 2019-12-10 | 2009年下半年发布的iMac和MacBook | - | 支持 | - | - | 支持 | - | 支持 | - | 支持 | x86_64 | SSE4 | HFS+ | |
Sierra | 10.12 | 10.12.6-16G2910.12.5-16F7310.12.4-16E191a10.12.3-16D3210.12.2-16C63a10.12.1-16B2657/16B255510.12-16A323 | 16 | 2016-09-20 | 2019-09-26 | 2009年下半年发布的iMac和MacBook | - | 支持 | - | - | 支持 | - | 支持 | - | 支持 | x86_64 | SSE4 | HFS+ | |
El Capitan | 10.11 | 10.11.6-15G22010/15G21013/15G20015/15G19009/15G18013/15G17023/15G1611/15G1510/15G1421/15G1217/15G1212/15G1108/15G1011/15G1004/15G3110.11.5-15F3410.11.4-15E6510.11.3-15D2110.11.2-15C5010.11.1-15B4210.11-15A284 | 15 | 2015-09-30 | 2018-07-09 | 2007年及以后的iMac和MacBook Pro | - | 支持 | - | - | 支持 | - | 支持 | - | 支持 | x86_64 | SSSE3 | HFS | |
Yosemite | 10.10 | 10.10.5-14F2511/14F2411/14F2315/14F2109/14F2009/14F1912/14F1909/14F1808/14F1713/14F1605/14F1509/14F1505/14F1021/14F2710.10.4-14E4610.10.3-14D136/14D13110.10.2-14C2513/14C2043/14C1514/14C1510/14C10910.10.1-14B2510.10-14A389 | 14 | 2014-10-16 | 2015-08-15 | 2007年及以后的iMac和MacBook Pro | - | 支持 | - | - | 支持 | - | 支持 | - | 支持 | x86_64 | SSSE3 | HFS | |
Mavericks | 10.9 | 10.9.5-13F1077/13F1066/13F3410.9.4-13E2810.9.3-13D6510.9.2-13C6410.9.1-13B4210.9-13A603 | 13 | 2013-10-22 | 2014-09-17 | - | 支持 | - | - | 支持 | - | 支持 | - | 支持 | x86_64 | SSSE3 | HFS | 需要OpenPartitionDxe.efi来启动恢复分区至少需要2GB内存 | |
Mountain Lion | 10.8 | 10.8.5-12F2560/12F2542/12F2518/12F2501/12F45/12F3710.8.4-12E4022/12E3067/12E5510.8.3-12D7810.8.2-12C3104/12C2034/12C60/12C5410.8.1-12B1910.8-12A269 | 12 | 2012-07-25 | 2013-09-12 | - | 支持 | - | - | 支持 | - | 支持 | - | 支持 | x86_64 | SSSE3 | HFS | 需要OpenPartitionDxe.efi来启动恢复分区 | |
Lion | 10.7 | 10.7.5-11G6310.7.4-11E5310.7.3-11D50b/11D5010.7.2-11C7410.7.1-11B2118/11B2610.7-11A2063/11A2061/11A511 | 11 | 2011-07-20 | 2012-09-19 | - | 支持 | - | 支持 | 支持 | 支持(至10.7.5) | 支持 | 支持 | 支持 | i386x86_64 | SSSE3 | HFS | 第一个支持SSD TRIM,且不再提供安装光盘的版本需要OpenPartitionDxe.efi来启动恢复分区 | |
Snow Leopard | 10.6 | 10.6.8-10K549/10K54010.6.7-10J86910.6.6-10J56710.6.5-10H57410.6.4-10F56910.6.3-10D578/10D575/10D57310.6.2-10C54010.6.1-10B50410.6-10A433/10A432 | 10 | 2009-08-28 | 2011-07-15 | - | 支持 | - | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | i386i386-user32x86_64 | SSE3(32位)SSSE3(64位) | HFS | ||
Leopard | 10.5 | 10.5.8-9L3010.5.7-9J6110.5.6-9G66/9G5510.5.5-9F3310.5.4-9E1710.5.3-9D3410.5.2-9C3110.5.1-9B1810.5-9A581 | 9 | 2007-10-26 | 2009-08-12 | 支持 | 支持 | - | 支持 | 支持 | 支持 | 支持 | 支持 | - | i386i386-user32 | SSE3(32位)SSSE3(64位) | HFS | ||
Tiger | 10.4 | 10.4.11-8S165(PowerPC)/8S2167(Intel)10.4.10-8R218(PowerPC)/8R2218(Intel)10.4.9-8P135(PowerPC)/8P2137(Intel)10.4.8-8L127(PowerPC)/8L2127(Intel)10.4.7-8N5107/8K1079/8J135(PowerPC)/8J2135a(Intel)10.4.6-8I127(PowerPC)/8I1119(Intel)10.4.5-8H14(PowerPC)/8G1454(Intel)10.4.4-8G32(PowerPC)/8G1165(Intel)10.4.3-8F4610.4.2-8E90/8E45/8E102/8C6410.4.1-8B1510.4-8A428 | 8 | 2005-04-29 | 2007-11-14 | 支持 | 支持(从10.4.4起) | - | 支持 | 支持(从10.4.8起) | 支持 | 支持 | 支持 | - | i386i386-user32 | SSE3(32位)SSSE3(64位) | HFS | ||
Panther | 10.3 | 10.3.9-7W9810.3.8-7U1610.3.7-7S21510.3.6-7R2810.3.5-7M3410.3.4-7H6310.3.3-7F4410.3.2-7D2410.3.1-C10710.3-7B85 | 7 | 2003-10-24 | 2005-04-15 | 支持 | - | - | |||||||||||
Jaguar | 10.2 | 10.2.8-6R7310.2.7-6R6510.2.6-6L6010.2.5-6L2910.2.4-6I3210.2.3-6G3010.2.2-6F2110.2.1-6D5210.2-6C115 | 6 | 2002-08-23 | 2003-10-03 | 支持 | - | - | 首次有普通版/服务器版之分10.2.7仅用于G5s/G4s | ||||||||||
Puma | 10.1 | 10.1.5-5S6010.1.4-5Q12510.1.3-5Q4510.1.2-5P4810.1.1-5M2810.1-5G64 | 5 | 2001-09-25 | 2002-06-05 | 支持 | - | - | |||||||||||
Cheetah | 10.0 | 10.0.4-4Q1210.0.3-4P1310.0.2-4P1210.0.1-4L1310.0-4K78 | 4 | 2000-03-24 | 2002-06-22 | 支持 | - | - | |||||||||||
Kodiak (Public Beta) | 10.0β | 10.0β-1H39 | 2000-09-13 | 2000-09-13 | 支持 | - | - | 有四个不同的版本 |
硬件兼容
CPU
Intel支持列表
Wolfdale (Intel Core2 Duo series)和Yorkfield (Intel Core2 Quad series)太旧,不推荐使用。
注意,对于消费级的Ivy Bridge(0x0306A9),苹果针对它禁用了XCPM,并推荐用户使用传统的电源管理。如果要使用XCPM,需要手动添加_xcpm_patch
二进制修补以强制启用。
各型号兼容性列表如下。
1 | https://sites.google.com/view/hardhack/cpu |
架构 | 最早支持版本 | 最后支持版本 | 备注 | CPUID |
---|---|---|---|---|
Pentium 4 | 10.4.1 | 10.5.8 | 仅在开发套件中使用,需要Fake CPUID,iGPU不工作 | 0x0F41 |
Celerons | 不支持,需要Fake CPUID,iGPU不工作 | |||
Atoms | 10.6需要修补内核,无GPU加速 | 0x0106C2 | ||
Yonah | 10.4.4 | 10.6.8 | 32位CPUID适用于10.4-10.7 | 0x0006E6 |
Woodcrest | 10.4.7 | 10.7.5 | ||
Clovertown | 10.4.9 | 10.7.5 | ||
Conroe/Merom | 10.4.7 | 10.11.6 | 无SSE4若带有GMA950/X3100显卡,由于32位显卡驱动限制,仅可到10.7.5 | 0x0006F2 |
Penryn | 10.4.10 | 10.13.6 | 无SSE4.2若带有X3100显卡,由于32位显卡驱动限制,仅可到10.7.5CPUID适用于10.5-10.13 | 0x010676 |
XeonMP | CPUID适用于10.6 | 0x0106D0 | ||
Harpertown | 10.5.1 | 10.11.6 | ||
Wolfdale | 10.6.1 | 10.13.6 | ||
Nehalem | 10.5.6 | 至今 | 0x0106A2 | |
Lynnfield/Clarksfield | 10.6.3 | 至今 | 10.14+中无iGPU支持 | 0x0106E0 |
Havendale | 10.6.3 | 至今 | 0x0106F0 | |
Westmere/Clarkdale/Arrandale | 10.6.4 | 至今 | 10.14+中无iGPU支持 | 0x020650(Clarkdale)0x0206C0(Westmere) |
AtomSandy | 不支持 | 0x020660 | ||
Lincroft | 不支持 | 0x020670 | ||
Sandy Bridge | 10.6.7 | 至今 | 10.14+中无iGPU支持 | 0x0206A0(M/H) |
Jaketown | 0x0206D0 | |||
NehalemEx | 0x0206E0 | |||
WestmereEx | 0x0206F0 | |||
Atom2000 | 0x030660 | |||
Ivy Bridge | 10.7.3 | 至今 | 11+中无iGPU支持 | 0x0306A0(M/H/G) |
Ivy Bridge-E5 | 10.9.2 | 至今 | 取决于dGPU,需要FakeID | 0x0306E0 |
Haswell | 10.8.5 | 至今 | 0x0306C0(S) | |
Broadwell | 10.10.0 | 至今 | 0x0306D4(U/Y) | |
HaswellMB | 0x0306F0 | |||
HaswellULT | 0x040650 | |||
CrystalWell | 0x040660 | |||
Broadwell-E | 10.10.2 | 至今 | 取决于dGPU,需要FakeID | |
Skylake | 10.11.0 | 至今 | 0x0506E3(H/S)0x0406E3(U/Y) | |
Skylake-X/W | 10.13.3 | 至今 | 取决于dGPU | |
Kaby Lake | 10.12.4 | 至今 | 0x0906E9(H/S/G)0x0806E9(U/Y) | |
Coffee Lake | 10.12.6 | 至今 | 推荐10.14+ | 0x0906EA(S/H/E)0x0806EA(U) |
Amber/Whiskey/Comet Lake | 10.14.1 | 至今 | 0x0806E0(U/Y) | |
Cascade Lake-SP/W | 10.15.0 | 至今 | 取决于dGPU | |
Comet Lake | 10.15.4 | 至今 | 八代与九代一致 | 0x0906E0(S/H) |
Ice Lake | 10.15.4 | 至今 | 0x0706E5(U) | |
Tiger Lake | 未测试 | 0x0806C0(U) | ||
Rocket Lake | 0x0906EB |
CPU指令集仿真
旧CPU仿真
可用OpcodeEmulator.kext,用于Intel Haswell Pentium/Celeron系列或较旧的处理器扩展指令集仿真。
1 | https://www.insanelymac.com/forum/topic/329704-opcode-emulator-opemu-plug-in-project/ |
SSE4.2仿真
对于Intel CPU,可用telemetrap.kext在SSE4.1 CPU下运行要求为SSE 4.2的系统,下载链接如下。
1 | https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/page-4?post=28447707#post-28447707 |
旧版白苹果
对于其它架构,也可尝试使用macOS Patcher,链接如下。
1 | https://github.com/rmc-team/macos-patcher |
GPU
Intel支持列表
Mac支持绝大多数的GT2 Intel GPU和少数的GT3e Intel GPU,不支持GT1 Intel GPU(Pentium/Celeron/Atoms)。
各型号兼容性列表如下。
1 | https://sites.google.com/view/hardhack/videocards/intel-hd-graphics |
架构 | 最早支持版本 | 最后支持版本 | 型号 | 备注 |
---|---|---|---|---|
Atom/Celeron/Pentium | 不支持 | |||
第三代GMA | 10.4.1 | 10.7.5 | GMA 950(Lion)GMA 900(Snow Leopard)GMA 3150GMA 3100 | 需要32位内核和补丁 |
第四代GMA | 10.5.0 | 10.7.5 | GMA X3100(Lion) | 需要32位内核和补丁GMA X4500HD、GMA X4500、GMA 4500MHD、GMA 4500、GMA X3500、GMA X3000、GMA 3000不支持 |
Westmere(i3/5/7-xxx) | 10.6 | 10.13.6 | HD Graphics | |
Arrendale(HD Graphics) | 10.6.4 | 10.13.6 | 仅支持LVDS,不支持eDP和外部输出可用显卡kexts地址https://www.insanelymac.com/forum/files/file/208-1st-gen-intel-hd-graphics-kexts/ | |
Sandy Bridge(HD 3000) | 10.7 | 10.13.6 | HD 2000HD 3000HD P3000 | HD 2000只能用于Quicksync,不能完全加速 |
Ivy Bridge(HD 4000) | 10.7.3 | 10.15.7 | HD 2500HD 4000HD P4000 | HD 2500只能用于Quicksync |
Haswell(HD 4XXX/5XXX) | 10.8.5 | 至今 | HD 4200HD 4400HD 4600HD 5000HD 5100HD P4600HD P4700 | HD4400需要仿冒ID为HD4600HD4600有CI但无QE,HD4400具有QE/CI |
Broadwell(5XXX/6XXX) | 10.10.2 | 至今 | HD 5300HD 5500HD 5600HD 6000HD 6100HD 6200HD P5700Iris Pro P6300 | HD 400和HD 405不支持 |
Skylake(HD 5XX) | 10.11.4 | 至今 | HD 515HD 520HD 530HD P530Iris 540Iris 550Iris Pro 580Iris Pro P555Iris Pro P580 | HD 510不支持 |
Kaby Lake(HD 6XX) | 10.12.6 | 至今 | HD 615HD 620HD 630Iris Plus 640Iris Plus 650 | HD 610不支持 |
Coffee Lake(UHD 6XX) | 10.13.6 | 至今 | UHD 615UHD 617UHD 620UHD 630Iris Plus 645Iris Plus 655 | i3 8100和8350k使用不同的UHD 630UHD 610不支持 |
Comet Lake(UHD 6XX) | 10.15.4 | 至今 | ||
Ice Lake(Gx) | 10.15.4 | 至今 | Iris Plus G7Iris Plus G4 | 需要启动参数-igfxcdc和-igfxdvmtGT1不支持 |
Apollo Lake | HD 500HD 505 | 无可用驱动 | ||
Gemini Lake | UHD 600UHD 605 | 无可用驱动 | ||
Tiger Lake(Xe) | 无可用驱动 |
Intel platform ID列表
某些SKL/KBL台式机驱动4K显示器时,可尝试0x193b0005
这一ig-platform-id。
通用属性列表如下。
属性 | 类型 | 值 |
---|---|---|
enable-hdmi20 | Data | 01000000 |
framebuffer-fbmem | Data | 00009000 |
framebuffer-patch-enable | Data | 01000000 |
framebuffer-stolenmem | Data | 00003001 |
framebuffer-unifiedmem | Data | 00000080 |
hda-gfx | String | onboard-1 |
Arrandale
适用于10.6.4-10.13.6。仅支持带有LVDS显示屏的笔记本。注意需要将SMBIOS设置为MacBookPro6,1或MacBookPro6,2。
支持的DevID如下。
1 | 0x0042 |
设备属性要求有framebuffer-patch-enable
和framebuffer-singlelink
,不需要AAPL,ig-platform-id
。配置参数含义如下。
参数 | 含义 |
---|---|
Semantic | |
framebuffer-patch-enable | 启用修补 |
framebuffer-linkwidth | 指定链接宽度,默认为1 |
framebuffer-singlelink | 启用单链接模式 |
FBCControl | |
framebuffer-fbccontrol-allzero | 将所有属性设置为零(下面的属性将被覆盖) |
framebuffer-fbccontrol-compression | |
FeatureControl | |
framebuffer-featurecontrol-allzero | 将所有属性设置为零(下面的属性将被覆盖) |
framebuffer-featurecontrol-fbc | |
framebuffer-featurecontrol-gpuinterrupthandling | |
framebuffer-featurecontrol-gamma | |
framebuffer-featurecontrol-maximumselfrefreshlevel | |
framebuffer-featurecontrol-powerstates | |
framebuffer-featurecontrol-rstimertest | |
framebuffer-featurecontrol-renderstandby | |
framebuffer-featurecontrol-watermarks |
对于10.8及以上系统,直接使用WhateverGreen即可正确处理,无需进行以下操作。
对于10.6.4-10.7,安装过程中需要将ig-platform-id设置为0x12345678以禁用显卡,安装完成后需要使用以下kext补丁。
Stride patch如下,用于修复分辨率大于1024x768时的情况。
1 | # 10.6 x86 |
Single link patch 1如下,用于开启single link模式。
1 | # 10.6 x86 |
Single link patch 2如下,用于将除数改变到14。
1 | # 10.6 x86 |
Single link patch 3如下,用于关闭CLKB,修复像素化图像。
1 | Name: AppleIntelHDGraphicsFB::hwRegsNeedUpdate |
Link width patch如下,用于设置链路宽度。
1 | # 10.6 x86 |
FBCControl patch如下,通过将FBCControl替换为XXXControl,防止读取Info.plist中的FBCControl设置,这与将FBCControl部分中的所有值设置为零具有相同的效果。
1 | Name: FBCControl |
FeatureControl patch如下,通过将FeatureControl替换为XXXtureControl,防止读取Info.plist中的FeatureControl设置,这与将FeatureControl部分中的所有值设置为零具有相同的效果。
1 | Name: FeatureControl |
Sandy Bridge
适用于10.7-10.13.6。
可通过以下脚本,在Mojave中启用Sandy Bridge GPU。
1 | https://github.com/Andrej-Antipov/SNBGraphicsMojaveInstaller |
推荐的帧缓冲区加粗显示。
显卡型号 | platform-id | 机型 | 接口 | LVDS | DP | HDMI | 总STOLEN内存 | 备注 |
---|---|---|---|---|---|---|---|---|
Intel HD Graphics 3000 | 0x00010000 | MacBookPro8,1MacBookPro8,2MacBookPro8,3 | 4 | 1 | 3 | 32MB? | 笔记本,默认 | |
Intel HD Graphics 3000 | 0x00020000 | 1 | 1 | 32MB? | 笔记本 | |||
Intel HD Graphics 3000 | 0x00030010 | Macmini5,1Macmini5,3 | 3 | 2 | 1 | 32MB? | 台式机,默认 | |
Intel HD Graphics 3000 | 0x00030020 | Macmini5,1Macmini5,3 | 3 | 2 | 1 | 32MB? | 台式机 | |
Intel HD Graphics 3000 | 0x00030030 | Macmini5,2 | 0 | 32MB? | 台式机 | |||
Intel HD Graphics 3000 | 0x00040000 | MacBookAir4,1MacBookAir4,2 | 3 | 1 | 2 | 32MB? | 笔记本 | |
Intel HD Graphics 3000 | 0x00050000 | iMac12,1/iMac12,2 | 0 | 32MB? | 台式机,默认空Framebuffer,可用于HD2000 |
支持的DevID如下。
1 | 0x0106 |
Sandy Bridge一般不需要指定帧缓冲区。若使用非Sandy Brige Mac型号,则需要指定帧缓冲区。
一般需要添加以下属性。
属性 | 类型 | 值 | 备注 |
---|---|---|---|
AAPL,snb-platform-id | Data | 10000300 | 根据台式机/笔记本更换值 |
device-id | Data | / | 需要仿冒时使用 |
注意,对于台式机,需要伪造device-id为26010000。
对于HD4400,需要伪造device-id为12040000。
对于6系列芯片组的HD2000/3000,需要伪造device-id为02010000。
对于7系列芯片组的HD2000/3000,需要伪造device-id为3A1C0000,并添加SSDT-IMEI,下载链接如下。
1 | https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/Source/SSDT-IMEI.dsl |
对于6系列芯片组的HD2500/4000,需要伪造device-id为3A1E0000,并添加SSDT-IMEI。
【进阶】HD2000/3000所需文件
对于HD2000,需要以下文件。
1 | AppleIntelHDGraphicsFB.kext |
对于HD3000,需要以下文件。
1 | AppleIntelHD3000Graphics.kext |
【进阶】HD 3000接口故障修复
用于High Sierra。若仅将Sandy用于IQSV,以下补丁没有作用。
1 | <dict> |
Ivy Bridge
适用于10.8至今。在10.8.2及更高版本上不可能提供VGA支持。
型号 | platform-id | 机型 | 接口 | LVDS | DP | HDMI | 总STOLEN内存 | 备注 |
---|---|---|---|---|---|---|---|---|
Intel HD Graphics 4000 | 0x01660000 | 4 | 1 | 3 | 24MB | 台式机 | ||
Intel HD Graphics 4000 | 0x01660001 | MacBookPro10,2 | 4 | 1 | 2 | 1 | 24MB | 笔记本 |
Intel HD Graphics 4000 | 0x01660002 | MacBookPro10,1 | 1 | 1 | 24MB | 笔记本 | ||
Intel HD Graphics 4000 | 0x01660003 | MacBookPro9,2 | 4 | 1 | 3 | 16MB | 笔记本,默认分辨率1600x900及更高 | |
Intel HD Graphics 4000 | 0x01660004 | MacBookPro9,1 | 1 | 1 | 16MB | 笔记本eDP/自动侦测 | ||
Intel HD Graphics 4000 | 0x01660005 | 3 | 3 | 16MB | 台式机 | |||
Intel HD Graphics 4000 | 0x01660006 | iMac13,1 | 0 | 0bytes | 台式机 | |||
Intel HD Graphics 4000 | 0x01660007 | iMac13,2 | 0 | 0bytes | 台式机,默认空Framebuffer,可用于HD 2500 | |||
Intel HD Graphics 4000 | 0x01660008 | MacBookAir5,1 | 3 | 1 | 2 | 16MB | 笔记本 | |
Intel HD Graphics 4000 | 0x01660009 | MacBookAir5,2 | 3 | 1 | 2 | 16MB | 笔记本分辨率1366x768 | |
Intel HD Graphics 4000 | 0x0166000A | Macmini6,1 | 3 | 2 | 1 | 16MB | 台式机,默认 | |
Intel HD Graphics 4000 | 0x0166000b | Macmini6,2 | 3 | 2 | 1 | 16MB | 台式机 |
支持的DevID如下。
1 | 0x0152 |
对于6系列芯片组的HD2500/4000,需要伪造device-id为3A1E0000,并添加SSDT-IMEI,下载链接同Sandy Bridge。
Haswell
适用于10.9至今。
显卡型号 | platform-id | 机型 | 接口 | LVDS | DP | eDP | HDMI | 总STOLEN内存 | 备注 |
---|---|---|---|---|---|---|---|---|---|
0x04060000 | 3 | 1 | 1 | 1 | 209MB | 台式机 | |||
0x0c060000 | 3 | 1 | 1 | 1 | 209MB | 台式机 | |||
Intel HD Graphics 4600 | 0x04160000 | 3 | 1 | 1 | 1 | 209MB | 台式机 | ||
Intel HD Graphics 4400 | 0x0a160000 | 3 | 1 | 1 | 1 | 209MB | 台式机/笔记本,默认 | ||
0x0c160000 | 3 | 1 | 1 | 1 | 209MB | 台式机 | |||
Intel HD Graphics 5000 | 0x04260000 | 3 | 1 | 1 | 1 | 209MB | 台式机 | ||
Intel HD Graphics 5000 | 0x0a260000 | 3 | 1 | 1 | 1 | 209MB | 台式机 | ||
0x0c260000 | 3 | 1 | 1 | 1 | 209MB | 台式机 | |||
Intel Iris Pro Graphics 5200 | 0x0d260000 | 3 | 1 | 1 | 1 | 209MB | 台式机 | ||
0x0a26000d | 2 | 131MB | 台式机 | ||||||
0x0d220003 | iMac14,1iMac14,4 | 3 | 1 | 2 | 52MB | 台式机,默认 | |||
Intel HD Graphics 4600 | 0x04120004 | 0 | 1MB | 台式机,默认空Framebuffer | |||||
0x0412000b | 0 | 1MB | 台式机 | ||||||
Intel HD Graphics 5000 | 0x0a260005 | 3 | 1 | 2 | 52MB | 笔记本 | |||
Intel HD Graphics 5000 | 0x0a260006 | MacBookAir6,1MacBookAir6,2Macmini7,1 | 3 | 1 | 2 | 52MB | 笔记本 | ||
Intel Iris Pro Graphics 5200 | 0x0d260007 | MacBookPro11,2MacBookPro11,3 | 4 | 1 | 2 | 1 | 99MB | 笔记本 | |
0x0d260009 | 1 | 99MB | 笔记本 | ||||||
0x0d26000a | 3 | 52MB | 台式机 | ||||||
0x0d26000e | 4 | 131MB | 笔记本 | ||||||
0x0d26000f | 1 | 131MB | 笔记本 | ||||||
Intel Iris Graphics 5100 | 0x0a2e0008 | MacBookPro11,1 | 3 | 1 | 2 | 99MB | 笔记本 | ||
0x0a2e000a | 3 | 52MB | 台式机 | ||||||
0x0a2e000d | 2 | 131MB | 台式机 | ||||||
Intel HD Graphics 4600 | 0x0412000b | iMac15,1 | 0 | ||||||
0x0a16000c | 3 | 99MB | 笔记本 |
支持的DevID如下。
1 | 0x0d26 |
对于台式机HD4400和笔记本HD4200/4400/4600,需要伪造device-id为12040000,列表如下。
属性 | 类型 | 值 |
---|---|---|
AAPL,ig-platform-id | Data | 0600260A |
device-id | Data | 12040000 |
framebuffer-cursormem | Data | 00009000 |
framebuffer-patch-enable | Integer | 1 |
hda-gfx | String | onboard-1 |
Broadwell
适用于10.10.2至今。
显卡型号 | platform-id | 机型 | 接口 | LVDS | DP | eDP | HDMI | 总STOLEN内存 | 备注 |
---|---|---|---|---|---|---|---|---|---|
0x16060000 | 3 | 1 | 1 | 1 | 32MB | 台式机 | |||
0x160e0000 | 3 | 32MB | 台式机 | ||||||
0x160e0001 | 3 | 1 | 2 | 60MB | 笔记本 | ||||
Intel HD Graphics 5500 | 0x16160000 | 3 | 1 | 1 | 1 | 32MB | 台式机 | ||
Intel HD Graphics 5300 | 0x161e0000 | 3 | 1 | 1 | 1 | 32MB | 台式机 | ||
Intel Iris Pro Graphics 6200 | 0x16220000 | 3 | 1 | 1 | 1 | 32MB | 台式机 | ||
Intel HD Graphics 6000 | 0x16260000 | 3 | 1 | 1 | 1 | 32MB | 台式机 | ||
Intel Iris Graphics 6100 | 0x162b0000 | 3 | 1 | 1 | 1 | ||||
Intel HD Graphics 5300 | 0x161e0001 | MacBook8,1 | 3 | 1 | 2 | 60MB | 笔记本 | ||
0x16060002 | 3 | 1 | 2 | 56MB | 笔记本 | ||||
Intel HD Graphics 5500 | 0x16160002 | 3 | 1 | 2 | 56MB | 笔记本 | |||
Intel Iris Pro Graphics 6200 | 0x16220002 | 3 | 1 | 2 | 56MB | 笔记本 | |||
Intel HD Graphics 6000 | 0x16260002 | 3 | 1 | 2 | 56MB | 笔记本 | |||
0x162b0000 | 3 | 32MB | 台式机 | ||||||
Intel Iris Graphics 6100 | 0x162b0002 | MacBookPro12,1 | 3 | 1 | 2 | 56MB | 笔记本 | ||
Intel HD Graphics 5600 | 0x16120003 | 4 | 1 | 2 | 56MB | 笔记本 | |||
Intel HD Graphics 6000 | 0x16260004 | 3 | 1 | 2 | 56MB | 台式机 | |||
Intel Iris Graphics 6100 | 0x162b0004 | 3 | 1 | 2 | 56MB | 台式机 | |||
Intel HD Graphics 6000 | 0x16260005 | 3 | 1 | 2 | 56MB | 笔记本 | |||
Intel HD Graphics 6000 | 0x16260006 | iMac16,1MacBookAir7,1MacBookAir7,2 | 3 | 1 | 2 | 56MB | 笔记本,默认 | ||
Intel Iris Pro Graphics6200 | 0x16220007 | iMac16,2 | 3 | 1 | 2 | 77MB | 台式机,默认 | ||
Intel HD Graphics 6000 | 0x16200008 | 2 | 1 | 1 | |||||
Intel Iris Graphics 6100 | 0x162b0008 | 2 | 1 | 2 | 69MB | 台式机 | |||
0x16260008 | 2 | 69MB | 台式机 |
支持的DevID如下。
1 | 0x0BD1 |
对于HD5000/HD5100/HD5200,属性列表如下。
属性 | 类型 | 值 |
---|---|---|
AAPL,ig-platform-id | Data | 0600260A |
framebuffer-cursormem | Data | 00009000 |
framebuffer-patch-enable | Integer | 1 |
hda-gfx | String | onboard-1 |
对于HD5300/HD5500/HD6000,属性列表如下。
属性 | 类型 | 值 |
---|---|---|
AAPL,ig-platform-id | Data | 06002616 |
framebuffer-fbmem | Data | 00009000 |
framebuffer-patch-enable | Integer | 1 |
framebuffer-stolenmem | Data | 00003001 |
hda-gfx | String | onboard-1 |
对于HD5600,属性列表如下。
属性 | 类型 | 值 |
---|---|---|
AAPL,ig-platform-id | Data | 06002616 |
device-id | Data | 26160000 |
framebuffer-fbmem | Data | 00009000 |
framebuffer-patch-enable | Integer | 1 |
framebuffer-stolenmem | Data | 00003001 |
hda-gfx | String | onboard-1 |
Skylake
适用于10.11.4至今。
显卡型号 | platform-id | 机型 | 接口 | LVDS | DP | HDMI | 总STOLEN内存 | 备注 |
---|---|---|---|---|---|---|---|---|
Intel HD Graphics 530 | 0x19120000 | 3 | 3 | 56MB | 台式机/笔记本,默认 | |||
Intel HD Graphics 520 | 0x19160000 | 3 | 1 | 2 | 56MB | 笔记本,默认 | ||
Intel Iris Graphics 540 | 0x19260000 | 3 | 1 | 2 | 56MB | 笔记本 | ||
Intel Iris Graphics 550 | 0x19270000 | 3 | 1 | 2 | 56MB | 笔记本 | ||
Intel HD Graphics 530 | 0x191b0000 | MacBookPro13,3 | 3 | 1 | 2 | 56MB | 笔记本 | |
Intel HD Graphics 515 | 0x191e0000 | 3 | 1 | 2 | 56MB | 笔记本 | ||
Intel Iris Pro Graphics 580 | 0x193b0000 | 3 | 1 | 1 | 1 | 56MB | 笔记本 | |
Intel HD Graphics 530/4K* | 0x193b0005 | MacBookPro13,1 | 4 | 1 | 3 | 35MB | 笔记本 | |
Intel HD Graphics 510 | 0x19020001 | 0 | 1MB | 台式机 | ||||
Intel HD Graphics 530 | 0x19120001 | 0 | 1MB | 台式机,默认空Framebuffer | ||||
0x19170001 | 0 | 1MB | 台式机 | |||||
Intel Iris Pro Graphics 580 | 0x19320001 | 0 | 1MB | 台式机 | ||||
Intel HD Graphics 520 | 0x19160002 | 3 | 1 | 2 | 58MB | 笔记本 | ||
Intel Iris Graphics 540 | 0x19260002 | MacBookPro13,1 | 3 | 1 | 2 | 58MB | 笔记本 | |
Intel HD Graphics 515 | 0x191e0003 | MacBook9,1 | 3 | 1 | 2 | 41MB | 笔记本 | |
Intel Iris Graphics 540 | 0x19260004 | 3 | 1 | 2 | 35MB | 笔记本 | ||
Intel Iris Graphics 550 | 0x19270004 | MacBookPro13,2 | 3 | 1 | 2 | 58MB | 笔记本 | |
Intel HD Graphics 530 | 0x191b0006 | 1 | 39MB | 笔记本 | ||||
Intel Iris Graphics 540 | 0x19260007 | 3 | 1 | 2 | 35MB | 笔记本 |
支持的DevID如下。
1 | 0x1916 |
对于HD515/HD520/HD530/HD540(第六代),属性列表如下。
属性 | 类型 | 值 |
---|---|---|
AAPL,GfxYTile | Data | 01000000 |
AAPL,ig-platform-id | Data | 00001B19 |
framebuffer-cursormem | Data | 00009000 |
framebuffer-patch-enable | Integer | 1 |
framebuffer-stolenmem | Data | 00003001 |
hda-gfx | String | onboard-1 |
对于HD550/P530,属性列表如下。
属性 | 类型 | 值 |
---|---|---|
AAPL,GfxYTile | Data | 01000000 |
AAPL,ig-platform-id | Data | 00002619 |
device-id | Data | 26190000 |
framebuffer-cursormem | Data | 00009000 |
framebuffer-patch-enable | Integer | 1 |
framebuffer-stolenmem | Data | 00003001 |
hda-gfx | String | onboard-1 |
Kaby Lake & Amber Lake Y
适用于10.12.6至今。UHD617 Amber Lake Y适用于10.14至今。
显卡型号 | platform-id | 机型 | 接口 | LVDS | DP | HDMI | 总STOLEN内存 | 备注 | |
---|---|---|---|---|---|---|---|---|---|
Intel HD Graphics 630 | 0x59120000 | iMac18,2iMac18,3 | 3 | 3 | 39MB | 台式机 | |||
Intel HD Graphics 630 | 0x59120003 | FCPX加速用 | 0 | 台式机,默认空Framebuffer | |||||
Intel HD Graphics 620 | 0x59160000 | MacBookPro14,2 | 3 | 1 | 2 | 35MB | 台式机/笔记本,默认 | ||
Intel HD Graphics 620 | 0x59160009 | 3 | 1 | 2 | 39MB | 笔记本 | |||
0x59180002 | 0 | 1MB | 笔记本 | ||||||
0x59180003 | 0 | 1MB | 笔记本 | ||||||
Intel HD Graphics 630 | 0x591b0000 | MacBookPro14,3 | 3 | 1 | 2 | 39MB | 笔记本,默认 | ||
Intel HD Graphics 630 | 0x591b0006 | 1 | 1 | 39MB | 笔记本 | ||||
0x591c0005 | 3 | 1 | 2 | 58MB | 笔记本 | ||||
Intel HD Graphics 615 | 0x591e0000 | 3 | 1 | 2 | 35MB | 笔记本 | |||
Intel HD Graphics 615 | 0x591e0001 | MacBook10,1 | 3 | 1 | 2 | 39MB | 笔记本 | ||
Intel HD Graphics 635 | 0x59230000 | 3 | 1 | 2 | 39MB | 台式机 | |||
Intel Iris Plus Graphics 640 | 0x59260000 | 3 | 1 | 2 | 39MB | 台式机 | |||
Intel Iris Plus Graphics 640 | 0x59260002 | MacBookPro14,1iMac18,1 | 3 | 1 | 2 | 58MB | 笔记本 | ||
Intel Iris Plus Graphics 640 | 0x59260007 | 3 | 1 | 2 | 79MB | 台式机 | |||
Intel Iris Plus Graphics 650 | 0x59270000 | 3 | 1 | 2 | 39MB | 台式机 | |||
Intel Iris Plus Graphics 650 | 0x59270004 | MacBookPro14,2 | 3 | 1 | 2 | 58MB | 笔记本 | ||
Intel Iris Plus Graphics 650 | 0x59270009 | 3 | 1 | 2 | 39MB | 笔记本 | |||
Intel UHD Graphics 617 | 0x87c00000 | 3 | 1 | 2 | 35MB | 笔记本 | |||
Intel UHD Graphics 617 | 0x87c00005 | MacBookAir8,1 | 3 | 1 | 2 | 58MB | 笔记本 |
支持的DevID如下。
1 | # KBL |
对于UHD620,需要伪造device-id为16590000。
对于HD615/HD620/HD630/HD640/HD650(第七代),属性列表如下。
属性 | 类型 | 值 |
---|---|---|
AAPL,GfxYTile | Data | 01000000 |
AAPL,ig-platform-id | Data | 00001B59 |
device-id | Data | 16590000 |
framebuffer-fbmem | Data | 00009000 |
framebuffer-patch-enable | Integer | 1 |
framebuffer-stolenmem | Data | 00003001 |
hda-gfx | String | onboard-1 |
Coffee Lake & Comet Lake
适用于10.14至今。UHD630 Comet Lake适用于10.15.4至今。
显卡型号 | platform-id | 机型 | 接口 | LVDS | DP | 总STOLEN内存 | 备注 |
---|---|---|---|---|---|---|---|
0x3E000000 | 3 | 1 | 2 | 58MB | 笔记本 | ||
Intel UHD Graphics 630 | 0x3E910003 | FCPX加速用 | 0 | 1MB | 台式机,默认空Framebuffer | ||
Intel UHD Graphics 630 | 0x3E920000 | 3 | 1 | 2 | 58MB | 笔记本 | |
Intel UHD Graphics 630 | 0x3E920003 | FCPX加速用 | 0 | 1MB | 台式机 | ||
Intel UHD Graphics 630 | 0x3E920009 | 1 | 1 | 58MB | 笔记本 | ||
Intel UHD Graphics 630 | 0x3E980003 | iMac19,1FCPX加速用 | 0 | 1MB | 台式机 | ||
Intel UHD Graphics 630 | 0x3E9B0000 | 3 | 1 | 2 | 58MB | 笔记本 | |
Intel UHD Graphics 630 | 0x3E9B0006 | MacBookPro15,1 | 1 | 1 | 39MB | 笔记本 | |
Intel UHD Graphics 630 | 0x3E9B0007 | Macmini8,1iMac19,2 | 3 | 3 | 58MB | 台式机若在Catalina中收到黑屏,则换用0x3E9B0000或0x3E920003 | |
Intel UHD Graphics 630 | 0x3E9B0008 | 1 | 1 | 58MB | 笔记本 | ||
Intel UHD Graphics 630 | 0x3E9B0009 | 3 | 1 | 2 | 58MB | 笔记本 | |
Intel UHD Graphics 630 | 0x3EC40003 | ||||||
Intel UHD Graphics 630 | 0x3EC50003 | ||||||
Intel UHD Graphics 630 | 0x3EC80003 | ||||||
Intel Iris Plus Graphics 655 | 0x3EA50000 | 3 | 1 | 2 | 58MB | 台式机/笔记本,默认 | |
Intel Iris Plus Graphics 655 | 0x3EA50004 | MacBookPro15,2 | 3 | 1 | 2 | 58MB | 笔记本 |
Intel Iris Plus Graphics 655 | 0x3EA50005 | 3 | 1 | 2 | 58MB | 笔记本 | |
Intel Iris Plus Graphics 655 | 0x3EA50009 | 3 | 1 | 2 | 58MB | 笔记本,默认 | |
Intel Iris Plus Graphics 655 | 0x3EA60005 | 3 | 1 | 2 | 58MB | 笔记本 | |
0x9BC80003 | 0 | 1MB | 台式机,默认空Framebuffer | ||||
0x9BC50003 | 0 | 1MB | 台式机 | ||||
0x9BC40003 | 0 | 1MB | 台式机 |
支持的DevID如下。
1 | # CFL |
对于9代Coffee Lake Refresh,需要伪造device-id为923E0000。10.14.4无需该修补。
对于(U)HD620/(U)HD630(第八代),需要伪造device-id为A53E0000。属性列表如下。
属性 | 类型 | 值 |
---|---|---|
AAPL,GfxYTile | Data | 01000000 |
AAPL,ig-platform-id | Data | 0900A53E |
device-id | Data | A53E0000 |
framebuffer-fbmem | Data | 00009000 |
framebuffer-patch-enable | Integer | 1 |
framebuffer-stolenmem | Data | 00003001 |
hda-gfx | String | onboard-1 |
对于HD620/HD630(第九代),属性列表如下。
属性 | 类型 | 值 |
---|---|---|
igfxfw | Data | 02000000 |
hda-gfx | String | onboard-1 |
framebuffer-stolenmem | Data | 00003001 |
framebuffer-patch-enable | Integer | 1 |
AAPL,GfxYTile | Data | 01000000 |
AAPL,ig-platform-id | Data | 09009B3E |
device-id | Data | 9B3E0000 |
framebuffer-fbmem | Data | 00009000 |
Ice Lake
适用于10.15.4至今。
显卡型号 | platform-id | 机型 | 接口 | LVDS | DP | STOLEN | 备注 |
---|---|---|---|---|---|---|---|
Intel HD Graphics ICL SIM | 0xFF050000 | 3 | 1 | 2 | 193MB? | 笔记本 | |
Intel HD Graphics ICL RVP | 0x8A710000 | 6 | 1 | 5 | 193MB? | 笔记本 | |
Intel HD Graphics ICL RVP | 0x8A700000 | 6 | 1 | 5 | 193MB? | 笔记本 | |
Intel HD Graphics ICL RVP | 0x8A510000 | 6 | 1 | 5 | 193MB? | 笔记本 | |
Intel HD Graphics ICL RVP | 0x8A5C0000 | 6 | 1 | 5 | 193MB? | 笔记本 | |
Intel HD Graphics ICL RVP | 0x8A5D0000 | 6 | 1 | 5 | 193MB? | 笔记本 | |
Intel HD Graphics ICL RVP | 0x8A520000 | 6 | 1 | 5 | 193MB? | 笔记本,默认 | |
Intel HD Graphics ICL RVP | 0x8A530000 | 6 | 1 | 5 | 193MB? | 笔记本 | |
Intel HD Graphics ICL RVP | 0x8A5A0000 | 6 | 1 | 5 | 193MB? | 笔记本 | |
Intel HD Graphics ICL RVP | 0x8A5B0000 | 6 | 1 | 5 | 193MB? | 笔记本 | |
Intel HD Graphics ICL RVP BigSur | 0x8A710001 | 5 | 1 | 4 | 193MB? | 笔记本 | |
Intel HD Graphics ICL RVP BigSur | 0x8A700001 | 5 | 1 | 4 | 193MB? | 笔记本 | |
Intel HD Graphics ICL RVP BigSur | 0x8A510001 | 3 | 1 | 2 | 193MB? | 笔记本 | |
Intel HD Graphics ICL RVP BigSur | 0x8A5C0001 | 3 | 1 | 2 | 193MB? | 笔记本 | |
Intel HD Graphics ICL RVP BigSur | 0x8A5D0001 | 3 | 1 | 2 | 193MB? | 笔记本 | |
Intel HD Graphics ICL RVP BigSur | 0x8A520001 | 5 | 1 | 4 | 193MB? | 笔记本 | |
Intel HD Graphics ICL RVP BigSur | 0x8A530001 | 5 | 1 | 4 | 193MB? | 笔记本 | |
Intel HD Graphics ICL RVP BigSur | 0x8A5A0001 | 5 | 1 | 4 | 193MB? | 笔记本 | |
Intel HD Graphics ICL RVP BigSur | 0x8A5B0001 | 5 | 1 | 4 | 193MB? | 笔记本 | |
Intel Iris Plus Graphics | 0x8A510002 | 3 | 1 | 2 | 193MB? | 笔记本 | |
Intel Iris Plus Graphics | 0x8A5C0002 | 3 | 1 | 2 | 193MB? | 笔记本 | |
Intel Iris Plus Graphics | 0x8A520002 | 5 | 1 | 4 | 193MB? | 笔记本 | |
Intel Iris Plus Graphics | 0x8A530002 | 5 | 1 | 4 | 193MB? | 笔记本 |
支持的DevID如下。
1 | 0xff05 |
对于第十代显卡,属性列表如下。
属性 | 类型 | 值 |
---|---|---|
AAPL,GfxYTile | Data | 01000000 |
AAPL,ig-platform-id | Data | 0900528A |
device-id | Data | 528A0000 |
disable-external-gpu | Data | 01000000 |
enable-hdmi20 | Data | 01000000 |
framebuffer-fbmem | Data | 00009000 |
framebuffer-patch-enable | Data | 01000000 |
framebuffer-stolenmem | Data | 00003001 |
framebuffer-unifiedmem | Data | 00000080 |
hda-gfx | String | onboard-1 |
igfxfw | Data | 02000000 |
AMD支持列表
一般而言,对于AMD,最新版本的Mac支持基于GCN的AMD CPU。
各型号兼容性列表如下。
1 | https://sites.google.com/view/hardhack/videocards/amd-radeon-graphics |
若使用MSI Navi 5700XT,安装Catalina时将会崩溃。可在OpenCore临时使用以下补丁处理。
1 | Find: 41 54 59 2C 52 6F 6D 23 00 |
架构 | 最早支持版本 | 最后支持版本 | 型号 | 备注 |
---|---|---|---|---|
X800 | 10.3.x | 10.7.5 | 需要32位内核 | |
X1000 | 10.4.x | 10.7.5 | X1900 XTX1600X1300 | |
Terascale | 10.4.x | 10.13.6 | ||
Terascale 2/3 | 10.6.x | 10.13.6 | ||
GCN 1 | 10.8.3 | 至今 | ||
GCN 2/3 | 10.10.x | 至今 | ||
HD 2000 Series(2xxx) | 10.4 | 10.13.6 | HD 2600 XTHD 2400 XT | |
HD 3000 Series(3xxx) | 10.4 | 10.13.6 | HD 3870 | |
HD 4000 Series(4xxx) | 10.6 | 10.13.6 | HD 4870 | |
HD 5000 Series(5xxx) | 10.6 | 10.13.6 | HD 5450HD 5470HD 5570HD 5630HD 5670HD 5690HD 5730HD 5770HD 5850HD 5870 | |
HD 6000 Series(6xxx) | 10.6 | 10.13.6 | HD 6230HD 6250HD 6350HD 6450HD 6570HD 6510HD 6610HD 6670HD 6790HD 6850HD 6870HD 6950HD 6970FirePro V7900 | |
HD 7000 Series(7xxx) | 10.8 | 至今 | Dual AMD FirePro D300Dual AMD FirePro D500Dual AMD FirePro D700FirePro W5100(FakeID needed)FirePro W7000FirePro W900s0HD 7700HD 7730HD 7750HD 7770HD 7790HD 7850HD 7870HD 7870 XTHD 7950HD 7970HD 7990 | 启动标志radpg=15用于HD 7730/7750/7770,R7 250,R7 250X GPU初始化 |
HD 8000 Series(8xxx) | 10.8 | 至今 | HD 8740HD 8760HD 8770HD 8850HD 8870HD 8890HD 8950HD 8970 | |
Radeon R7/R9 | 10.10.x | 至今 | R9 Fury XR9 FuryR9 NanoR9 390(需要FakeID)R9 290X/390XR9 290/390(需要FakeID)R9 280/380(需要FakeID)R9 270X/370XR7 270/370(需要FakeID)R7 265R7 260x/360xR9 260/360(某些机器需要FakeID)R9 255R7 250XR7 250(需要FakeID)R7 240(需要FakeID) | Sapphire卡对Big Sur的兼容性最好R9 280x/380x不支持Big Sur启动标志radpg=15用于HD 7730/7750/7770,R7 250,R7 250X GPU初始化启动标志-raddvi用于在290X/370上修复DVI |
Polaris 10/20 | 10.12.1 | 至今 | RX 480RX 470DRX 470RX 460RX 590RX 580XRX 580RX 570XRX 570RX 560XRX 560WX 5100WX 4100E9550 | 不要使用XFX |
Vega 10 | 10.12.6 | 至今 | Vega 64 LiquidVega 64Vega 56Vega Frontier EditionRadeon Pro WX 9100Radeon Pro WX 7100 | 不要使用XFX |
Vega 20 | 10.14.5 | 至今 | Radeon VII | |
Navi 10 | 10.15.1 | 至今 | RX 5500RX 5500 XTRX 5600RX 5600 XTRX 5700RX 5700 XTRX 5700 XT 50周年纪念版Radeon Pro W5500Radeon Pro W5700 | 需要启动参数agdpmod=pikera若使用MSI Navi 5700XT,在安装Catalina时将会崩溃,Big Sur中该问题已修复 |
Navi 20 | 11.4 | RX 6800RX 6800 XTRX 6900 XT | 需要启动参数agdpmod=pikera | |
Lexa | WX 3100WX 2100RX 550XRX 550RX 540XRX 540 | 无可用驱动对于RX 550,Lexa内核不支持(Stream Processors 512 (CUs 8)、Memory Speed 1750MHz (7000Mz effective)、Reference Clock 1183MHz),Baffin内核则支持(Stream Processors 640 (CUs 10)、Memory Speed 1500MHz (6000Mz effective)、Reference Clock 1071MHz) | ||
AMD APU | Vega 11(Zen)Vega 8(Zen)GCN 3(Escavator Gen 2, Steamroller)GCN 2(Escavator Gen 1, Puma, Puma +) | 无可用驱动 |
AMD PCI ID列表
Vendor ID | Device ID | Name | Note |
---|---|---|---|
1002 | 0048 | ||
1002 | 1002 | ||
1002 | 1300 | ||
1002 | 1301 | ||
1002 | 1302 | ||
1002 | 1304 | Kaveri | |
1002 | 1305 | Kaveri | |
1002 | 1306 | Kaveri | |
1002 | 1307 | Kaveri | |
1002 | 1308 | Kaveri HDMI/DP Audio Controller | |
1002 | 1309 | Kaveri [Radeon R6/R7 Graphics] | |
1002 | 130a | Kaveri [Radeon R6 Graphics] | |
1002 | 130b | Kaveri [Radeon R4 Graphics] | |
1002 | 130c | Kaveri [Radeon R7 Graphics] | |
1002 | 130d | Kaveri [Radeon R6 Graphics] | |
1002 | 130e | Kaveri [Radeon R5 Graphics] | |
1002 | 130f | Kaveri [Radeon R7 Graphics] | |
1002 | 1310 | Kaveri | |
1002 | 1311 | Kaveri | |
1002 | 1312 | Kaveri | |
1002 | 1313 | Kaveri [Radeon R7 Graphics] | |
1002 | 1314 | Wrestler HDMI Audio | |
1002 | 1315 | Kaveri [Radeon R5 Graphics] | |
1002 | 1316 | Kaveri [Radeon R5 Graphics] | |
1002 | 1317 | Kaveri | |
1002 | 1318 | Kaveri [Radeon R5 Graphics] | |
1002 | 131b | Kaveri [Radeon R4 Graphics] | |
1002 | 131c | Kaveri [Radeon R7 Graphics] | |
1002 | 131d | Kaveri [Radeon R6 Graphics] | |
1002 | 1320 | ||
1002 | 1321 | ||
1002 | 1322 | ||
1002 | 1323 | ||
1002 | 1324 | ||
1002 | 1325 | ||
1002 | 1326 | ||
1002 | 1327 | ||
1002 | 1328 | ||
1002 | 1329 | ||
1002 | 132a | ||
1002 | 132b | ||
1002 | 132c | ||
1002 | 132d | ||
1002 | 132f | ||
1002 | 13e9 | Ariel | |
1002 | 145b | ||
1002 | 1478 | Navi 10 XL Upstream Port of PCI Express Switch | |
1002 | 1479 | Navi 10 XL Downstream Port of PCI Express Switch | |
1002 | 154c | Kryptos [Radeon RX 350] | |
1002 | 154e | Garfield | |
1002 | 1551 | Arlene | |
1002 | 1552 | Pooky | |
1002 | 1561 | Anubis | |
1002 | 15d8 | Picasso | |
1002 | 15dd | Raven Ridge [Radeon Vega Series / Radeon Vega Mobile Series] | |
1002 | 15de | Raven/Raven2/Fenghuang HDMI/DP Audio Controller | |
1002 | 15df | Raven/Raven2/Fenghuang/Renoir Cryptographic Coprocessor | |
1002 | 15ff | Fenghuang [Zhongshan Subor Z+] | |
1002 | 1607 | Arden | |
1002 | 1636 | Renoir | |
1002 | 1638 | Cezanne | |
1002 | 163f | VanGogh | |
1002 | 164c | Lucienne | |
1002 | 1714 | BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series] | |
1002 | 2191 | ||
1002 | 3150 | RV380/M24 [Mobility Radeon X600] | |
1002 | 3151 | RV380 GL [FireMV 2400] | |
1002 | 3152 | RV370/M22 [Mobility Radeon X300] | |
1002 | 3154 | RV380/M24 GL [Mobility FireGL V3200] | |
1002 | 3155 | RV380 GL [FireMV 2400] | |
1002 | 3171 | RV380 GL [FireMV 2400] (Secondary) | |
1002 | 3e50 | RV380 [Radeon X550/X600] | |
1002 | 3e54 | RV380 GL [FireGL V3200] | |
1002 | 3e70 | RV380 [Radeon X550/X600] (Secondary) | |
1002 | 4136 | RS100 [Mobility IGP 320M] | |
1002 | 4137 | RS200 [Radeon IGP 340] | |
1002 | 4144 | R300 [Radeon 9500] | |
1002 | 4145 | ||
1002 | 4146 | R300 [Radeon 9700 PRO] | |
1002 | 4147 | R300 GL [FireGL Z1] | |
1002 | 4148 | R350 [Radeon 9800/9800 SE] | |
1002 | 4149 | ||
1002 | 414a | ||
1002 | 414b | ||
1002 | 4150 | RV350 [Radeon 9550/9600/X1050 Series] | |
1002 | 4151 | RV350 [Radeon 9600 Series] | |
1002 | 4152 | RV360 [Radeon 9600/X1050 Series] | |
1002 | 4153 | RV350 [Radeon 9550] | |
1002 | 4154 | RV350 GL [FireGL T2] | |
1002 | 4155 | RV350 [Radeon 9600] | |
1002 | 4156 | ||
1002 | 4157 | RV350 GL [FireGL T2] | |
1002 | 4158 | 68800AX [Graphics Ultra Pro PCI] | |
1002 | 4164 | R300 [Radeon 9500 PRO] (Secondary) | |
1002 | 4165 | R300 [Radeon 9700 PRO] (Secondary) | |
1002 | 4166 | R300 [Radeon 9700 PRO] (Secondary) | |
1002 | 4168 | RV350 [Radeon 9800 SE] (Secondary) | |
1002 | 4170 | RV350 [Radeon 9550/9600/X1050 Series] (Secondary) | |
1002 | 4171 | RV350 [Radeon 9600] (Secondary) | |
1002 | 4172 | RV350 [Radeon 9600/X1050 Series] (Secondary) | |
1002 | 4173 | RV350 [Radeon 9550] (Secondary) | |
1002 | 4237 | ||
1002 | 4242 | R200 [All-In-Wonder Radeon 8500 DV] | |
1002 | 4243 | R200 PCI Bridge [All-in-Wonder Radeon 8500DV] | |
1002 | 4336 | RS100 [Radeon IGP 320M] | |
1002 | 4337 | RS200M [Radeon IGP 330M/340M/345M/350M] | |
1002 | 4341 | SB200 AC97 Audio Controller | |
1002 | 4342 | SB200 PCI to PCI Bridge | |
1002 | 4345 | SB200 EHCI USB Controller | |
1002 | 4346 | Crayola 6 [XENOS Parent Die (XBOX 360)] | |
1002 | 4347 | SB200 OHCI USB Controller #1 | |
1002 | 4348 | SB200 OHCI USB Controller #2 | |
1002 | 4349 | SB200 IDE Controller | |
1002 | 434c | SB200 PCI to LPC Bridge | |
1002 | 434d | SB200 AC97 Modem Controller | |
1002 | 4353 | SB200 SMBus Controller | |
1002 | 4354 | 215CT [Mach64 CT PCI] | |
1002 | 4358 | Mach64 CX [Graphics Xpression] | |
1002 | 4361 | SB300 AC’97 Audio Controller | |
1002 | 4362 | SB300 PCI to PCI Bridge | |
1002 | 4363 | SB300 SMBus Controller | |
1002 | 4365 | SB300 USB Controller (EHCI) | |
1002 | 4367 | SB300 USB Controller (EHCI) | |
1002 | 4368 | SB300 USB Controller (EHCI) | |
1002 | 4369 | SB300 IDE Controller | |
1002 | 436c | SB300 PCI to LPC Bridge | |
1002 | 436d | SB300 AC97 Modem Controller | |
1002 | 436e | SB300 Serial ATA Controller | |
1002 | 4370 | IXP SB400 AC’97 Audio Controller | |
1002 | 4371 | IXP SB4x0 PCI-PCI Bridge | |
1002 | 4372 | IXP SB4x0 SMBus Controller | |
1002 | 4373 | IXP SB4x0 USB2 Host Controller | |
1002 | 4374 | IXP SB4x0 USB Host Controller | |
1002 | 4375 | IXP SB4x0 USB Host Controller | |
1002 | 4376 | IXP SB4x0 IDE Controller | |
1002 | 4377 | IXP SB4x0 PCI-ISA Bridge | |
1002 | 4378 | IXP SB400 AC’97 Modem Controller | |
1002 | 4379 | IXP SB4x0 Serial ATA Controller | |
1002 | 437a | IXP SB400 Serial ATA Controller | |
1002 | 437b | IXP SB4x0 High Definition Audio Controller | |
1002 | 4380 | SB600 Non-Raid-5 SATA | |
1002 | 4381 | SB600 SATA Controller (RAID 5 mode) | |
1002 | 4382 | SB600 AC97 Audio | |
1002 | 4383 | SBx00 Azalia (Intel HDA) | |
1002 | 4384 | SBx00 PCI to PCI Bridge | |
1002 | 4385 | SBx00 SMBus Controller | |
1002 | 4386 | SB600 USB Controller (EHCI) | |
1002 | 4387 | SB600 USB (OHCI0) | |
1002 | 4388 | SB600 USB (OHCI1) | |
1002 | 4389 | SB600 USB (OHCI2) | |
1002 | 438a | SB600 USB (OHCI3) | |
1002 | 438b | SB600 USB (OHCI4) | |
1002 | 438c | SB600 IDE | |
1002 | 438d | SB600 PCI to LPC Bridge | |
1002 | 438e | SB600 AC97 Modem | |
1002 | 4390 | SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] | |
1002 | 4391 | SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] | |
1002 | 4392 | SB7x0/SB8x0/SB9x0 SATA Controller [Non-RAID5 mode] | |
1002 | 4393 | SB7x0/SB8x0/SB9x0 SATA Controller [RAID5 mode] | |
1002 | 4394 | SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] | |
1002 | 4395 | SB8x0/SB9x0 SATA Controller [Storage mode] | |
1002 | 4396 | SB7x0/SB8x0/SB9x0 USB EHCI Controller | |
1002 | 4397 | SB7x0/SB8x0/SB9x0 USB OHCI0 Controller | |
1002 | 4398 | SB7x0 USB OHCI1 Controller | |
1002 | 4399 | SB7x0/SB8x0/SB9x0 USB OHCI2 Controller | |
1002 | 439c | SB7x0/SB8x0/SB9x0 IDE Controller | |
1002 | 439d | SB7x0/SB8x0/SB9x0 LPC host controller | |
1002 | 43a0 | SB700/SB800/SB900 PCI to PCI bridge (PCIE port 0) | |
1002 | 43a1 | SB700/SB800/SB900 PCI to PCI bridge (PCIE port 1) | |
1002 | 43a2 | SB900 PCI to PCI bridge (PCIE port 2) | |
1002 | 43a3 | SB900 PCI to PCI bridge (PCIE port 3) | |
1002 | 4437 | RS250 [Mobility Radeon 7000 IGP] | |
1002 | 4554 | 210888ET [Mach64 ET] | |
1002 | 4630 | XENOS Parent Die (XBOX 360) | |
1002 | 4631 | XENOS Daughter Die (XBOX 360) | |
1002 | 4654 | Mach64 VT | |
1002 | 4742 | Rage 3 [3D Rage PRO AGP 2X] | |
1002 | 4744 | Rage 3 [3D Rage PRO AGP 1X] | |
1002 | 4747 | ||
1002 | 4748 | ||
1002 | 4749 | 3D Rage PRO PCI | |
1002 | 474c | ||
1002 | 474d | Rage XL AGP 2X | |
1002 | 474e | Rage XC AGP | |
1002 | 474f | Rage XL | |
1002 | 4750 | 3D Rage Pro PCI | |
1002 | 4751 | ||
1002 | 4752 | Rage 3 [Rage XL PCI] | |
1002 | 4753 | Rage XC | |
1002 | 4754 | Mach64 GT/GT-B [3D Rage I/II] | |
1002 | 4755 | Mach64 GT-B [3D Rage II+ DVD] | |
1002 | 4756 | Rage 2 [3D Rage IIC PCI] | |
1002 | 4757 | Rage 2 [3D Rage IIC AGP] | |
1002 | 4758 | Mach64 GX [WinTurbo] | |
1002 | 4759 | Rage 3 [3D Rage IIC PCI] | |
1002 | 475a | 3D Rage IIC AGP | |
1002 | 4845 | Xilleon 220 HBIU for HDTV2 | |
1002 | 4846 | Xilleon 220 IDE for HDTV2 | |
1002 | 4847 | Xilleon 220 USB for HDTV2 | |
1002 | 4848 | Xilleon 220 DAIO-0 for HDTV2 | |
1002 | 4849 | Xilleon 220 DAIO-1 for HDTV2 | |
1002 | 484a | Xilleon 220 LPC for HDTV2 | |
1002 | 4850 | Xilleon 215 HBIU for X215 | |
1002 | 4851 | Xilleon 215 IDE for X215 | |
1002 | 4852 | Xilleon 215 USB for X215 | |
1002 | 4853 | Xilleon 215 DAIO-0 for X215 | |
1002 | 4854 | Xilleon 215 DAIO-1 for X215 | |
1002 | 4855 | Xilleon 225 HBIU for X225 | |
1002 | 4856 | Xilleon 225 IDE for X225 | |
1002 | 4857 | Xilleon 225 USB for X225 | |
1002 | 4858 | Xilleon 225 DAIO-0 for X225 | |
1002 | 4859 | Xilleon 225 DAIO-1 for X225 | |
1002 | 4860 | Xilleon 210 HBIU for X210 | |
1002 | 4861 | Xilleon 210 IDE for X210 | |
1002 | 4862 | Xilleon 210 USB for X210 | |
1002 | 4863 | Xilleon 210 DAIO-0 for X210 | |
1002 | 4864 | Xilleon 210 DAIO-1 for X210 | |
1002 | 4865 | Xilleon 226 HBIU for X226 | |
1002 | 4866 | Xilleon 226 IDE for X226 | |
1002 | 4867 | Xilleon 226 USB for X226 | |
1002 | 4868 | Xilleon 226 DAIO-0 for X226 | |
1002 | 4869 | Xilleon 226 DAIO-1 for X226 | |
1002 | 486a | Xilleon 240S HBIU for X240S | |
1002 | 486b | Xilleon 240H HBIU for X240H | |
1002 | 486c | Xilleon 240S USB for X240S | |
1002 | 486d | Xilleon 240H USB for X240H | |
1002 | 486e | Xilleon 250 USB 1.1 for X250 | |
1002 | 486f | Xilleon 260 USB 1.1 for X260 | |
1002 | 4870 | Xilleon 250 HBIU for X250 | |
1002 | 4871 | Xilleon 250 IDE for X250 | |
1002 | 4872 | Xilleon 234/235 HBIU for X234/X235 | |
1002 | 4873 | Xilleon 244/245 HBIU for X244/X245 | |
1002 | 4874 | Xilleon 234/235 USB 1.1 for X234/X235 | |
1002 | 4875 | Xilleon 260 HBIU for X260 | |
1002 | 4876 | Xilleon 260 IDE for X260 | |
1002 | 4877 | Xilleon 244/245 USB 1.1 for X244/X245 | |
1002 | 4878 | Xilleon 270 HBIU for X270 | |
1002 | 487b | Xilleon 242 HBIU for X242 | |
1002 | 487d | Xilleon 242 USB 1.1 for X242 | |
1002 | 4880 | Xilleon 254 HBIU for X254 | |
1002 | 4881 | Xilleon 254 USB 1.1 for X254 | |
1002 | 4882 | Xilleon 255 HBIU for X255 | |
1002 | 4883 | Xilleon 255 USB 1.1 for X255 | |
1002 | 4884 | Xilleon 243 HBIU for X243 | |
1002 | 4885 | Xilleon 243 USB 1.1 for X243 | |
1002 | 4886 | Xilleon 233 HBIU for X233 | |
1002 | 4887 | Xilleon 233 USB 1.1 for X233 | |
1002 | 4888 | Xilleon 143 HBIU for X143 | |
1002 | 4889 | Xilleon 143 HBIU for X143L | |
1002 | 488a | Xilleon 143 HBIU for X143S | |
1002 | 4964 | ||
1002 | 4965 | ||
1002 | 4966 | RV250 [Radeon 9000 Series] | |
1002 | 4967 | ||
1002 | 496e | RV250 [Radeon 9000] (Secondary) | |
1002 | 4a48 | ||
1002 | 4a49 | R420 [Radeon X800 PRO/GTO AGP] | |
1002 | 4a4a | R420 [Radeon X800 GT AGP] | |
1002 | 4a4b | R420 [Radeon X800 AGP Series] | |
1002 | 4a4c | ||
1002 | 4a4d | R420 GL [FireGL X3-256] | |
1002 | 4a4e | RV420/M18 [Mobility Radeon 9800] | |
1002 | 4a4f | R420 [Radeon X850 AGP] | |
1002 | 4a50 | R420 [Radeon X800 XT Platinum Edition AGP] | |
1002 | 4a54 | R420 [Radeon X800 VE AGP] | |
1002 | 4a69 | R420 [Radeon X800 PRO/GTO] (Secondary) | |
1002 | 4a6a | R420 [Radeon X800] (Secondary) | |
1002 | 4a6b | R420 [Radeon X800 XT AGP] (Secondary) | |
1002 | 4a70 | R420 [Radeon X800 XT Platinum Edition AGP] (Secondary) | |
1002 | 4a74 | R420 [Radeon X800 VE] (Secondary) | |
1002 | 4b48 | ||
1002 | 4b49 | R481 [Radeon X850 XT AGP] | |
1002 | 4b4a | ||
1002 | 4b4b | R481 [Radeon X850 PRO AGP] | |
1002 | 4b4c | R481 [Radeon X850 XT Platinum Edition AGP] | |
1002 | 4b69 | R481 [Radeon X850 XT AGP] (Secondary) | |
1002 | 4b6b | R481 [Radeon X850 PRO AGP] (Secondary) | |
1002 | 4b6c | R481 [Radeon X850 XT Platinum Edition AGP] (Secondary) | |
1002 | 4c42 | Mach64 LT [3D Rage LT PRO AGP] | |
1002 | 4c44 | ||
1002 | 4c45 | ||
1002 | 4c46 | Rage Mobility 128 AGP 2X/Mobility M3 | |
1002 | 4c47 | 3D Rage IIC PCI / Mobility Radeon 7500/7500C | |
1002 | 4c49 | 3D Rage LT PRO PCI | |
1002 | 4c4d | Rage Mobility AGP 2x Series | |
1002 | 4c4e | ||
1002 | 4c50 | Rage 3 LT [3D Rage LT PRO PCI] | |
1002 | 4c51 | ||
1002 | 4c52 | M1 [Rage Mobility-M1 PCI] | |
1002 | 4c53 | ||
1002 | 4c54 | 264LT [Mach64 LT] | |
1002 | 4c57 | RV200/M7 [Mobility Radeon 7500] | |
1002 | 4c58 | RV200/M7 GL [Mobility FireGL 7800] | |
1002 | 4c59 | RV100/M6 [Rage/Radeon Mobility Series] | |
1002 | 4c5a | ||
1002 | 4c64 | ||
1002 | 4c65 | ||
1002 | 4c66 | RV250/M9 GL [Mobility FireGL 9000/Radeon 9000] | |
1002 | 4c67 | ||
1002 | 4c6e | RV250/M9 [Mobility Radeon 9000] (Secondary) | |
1002 | 4d46 | Rage Mobility 128 AGP 4X/Mobility M4 | |
1002 | 4d4c | ||
1002 | 4d52 | Theater 550 PRO PCI [ATI TV Wonder 550] | |
1002 | 4d53 | Theater 550 PRO PCIe | |
1002 | 4e44 | R300 [Radeon 9700/9700 PRO] | |
1002 | 4e45 | R300 [Radeon 9500 PRO/9700] | |
1002 | 4e46 | R300 [Radeon 9600 TX] | |
1002 | 4e47 | R300 GL [FireGL X1] | |
1002 | 4e48 | R350 [Radeon 9800 Series] | |
1002 | 4e49 | R350 [Radeon 9800] | |
1002 | 4e4a | R360 [Radeon 9800 XXL/XT] | |
1002 | 4e4b | R350 GL [FireGL X2 AGP Pro] | |
1002 | 4e50 | RV350/M10 / RV360/M11 [Mobility Radeon 9600 (PRO) / 9700] | |
1002 | 4e51 | RV350 [Radeon 9550/9600/X1050 Series] | |
1002 | 4e52 | RV350/M10 [Mobility Radeon 9500/9700 SE] | |
1002 | 4e53 | ||
1002 | 4e54 | RV350/M10 GL [Mobility FireGL T2] | |
1002 | 4e56 | RV360/M12 [Mobility Radeon 9550] | |
1002 | 4e64 | R300 [Radeon 9700 PRO] (Secondary) | |
1002 | 4e65 | R300 [Radeon 9500 PRO] (Secondary) | |
1002 | 4e66 | RV350 [Radeon 9600] (Secondary) | |
1002 | 4e67 | R300 GL [FireGL X1] (Secondary) | |
1002 | 4e68 | R350 [Radeon 9800 PRO] (Secondary) | |
1002 | 4e69 | R350 [Radeon 9800] (Secondary) | |
1002 | 4e6a | RV350 [Radeon 9800 XT] (Secondary) | |
1002 | 4e71 | RV350/M10 [Mobility Radeon 9600] (Secondary) | |
1002 | 4f72 | RV250 [Radeon 9000 Series] | |
1002 | 4f73 | RV250 [Radeon 9000 Series] (Secondary) | |
1002 | 5041 | ||
1002 | 5042 | ||
1002 | 5043 | ||
1002 | 5044 | All-In-Wonder 128 PCI | |
1002 | 5045 | ||
1002 | 5046 | Rage 4 [Rage 128 PRO AGP 4X] | |
1002 | 5047 | ||
1002 | 5048 | ||
1002 | 5049 | ||
1002 | 504a | ||
1002 | 504b | ||
1002 | 504c | ||
1002 | 504d | ||
1002 | 504e | ||
1002 | 504f | ||
1002 | 5050 | Rage 4 [Rage 128 PRO PCI / Xpert 128 PCI] | |
1002 | 5051 | ||
1002 | 5052 | Rage 4 [Rage 128 PRO AGP 4X] | |
1002 | 5053 | ||
1002 | 5054 | ||
1002 | 5055 | ||
1002 | 5056 | ||
1002 | 5057 | ||
1002 | 5058 | ||
1002 | 5144 | R100 [Radeon 7200 / All-In-Wonder Radeon] | |
1002 | 5145 | ||
1002 | 5146 | ||
1002 | 5147 | ||
1002 | 5148 | R200 GL [FireGL 8800] | |
1002 | 5149 | ||
1002 | 514a | ||
1002 | 514b | ||
1002 | 514c | R200 [Radeon 8500/8500 LE] | |
1002 | 514d | R200 [Radeon 9100] | |
1002 | 514e | ||
1002 | 514f | ||
1002 | 5154 | ||
1002 | 5155 | ||
1002 | 5157 | RV200 [Radeon 7500/7500 LE] | |
1002 | 5158 | ||
1002 | 5159 | RV100 [Radeon 7000 / Radeon VE] | |
1002 | 515a | ||
1002 | 515e | ES1000 | |
1002 | 515f | ||
1002 | 5168 | ||
1002 | 5169 | ||
1002 | 516a | ||
1002 | 516b | ||
1002 | 516c | ||
1002 | 5245 | Rage 128 GL PCI | |
1002 | 5246 | Rage 128 (Rage 4) series | |
1002 | 5247 | ||
1002 | 524b | Rage 128 VR PCI | |
1002 | 524c | Rage 128 VR AGP | |
1002 | 5345 | ||
1002 | 5346 | ||
1002 | 5347 | ||
1002 | 5348 | ||
1002 | 534b | ||
1002 | 534c | ||
1002 | 534d | Rage 128 4X AGP 4x | |
1002 | 534e | ||
1002 | 5354 | Mach 64 VT | |
1002 | 5446 | Rage 128 PRO Ultra AGP 4x | |
1002 | 544c | ||
1002 | 5452 | Rage 128 PRO Ultra4XL VR-R AGP | |
1002 | 5453 | ||
1002 | 5454 | ||
1002 | 5455 | ||
1002 | 5460 | RV370/M22 [Mobility Radeon X300] | |
1002 | 5461 | RV370/M22 [Mobility Radeon X300] | |
1002 | 5462 | RV380/M24C [Mobility Radeon X600 SE] | |
1002 | 5464 | RV370/M22 GL [Mobility FireGL V3100] | |
1002 | 5548 | ||
1002 | 5549 | R423 [Radeon X800 GTO] | |
1002 | 554a | R423 [Radeon X800 XT Platinum Edition] | |
1002 | 554b | R423 [Radeon X800 GT/SE] | |
1002 | 554c | ||
1002 | 554d | R480 [Radeon X800 GTO2/XL] | |
1002 | 554e | R430 [All-In-Wonder X800 GT] | |
1002 | 554f | R430 [Radeon X800] | |
1002 | 5550 | R423 GL [FireGL V7100] | |
1002 | 5551 | R423 GL [FireGL V5100] | |
1002 | 5552 | ||
1002 | 5554 | ||
1002 | 5555 | ||
1002 | 5569 | R423 [Radeon X800 PRO] (Secondary) | |
1002 | 556b | R423 [Radeon X800 GT] (Secondary) | |
1002 | 556d | R480 [Radeon X800 GTO2/XL] (Secondary) | |
1002 | 556f | R430 [Radeon X800] (Secondary) | |
1002 | 5571 | R423 GL [FireGL V5100] (Secondary) | |
1002 | 564a | ||
1002 | 564b | RV410/M26 GL [Mobility FireGL V5000] | |
1002 | 564f | RV410/M26 [Mobility Radeon X700 XL] | |
1002 | 5652 | RV410/M26 [Mobility Radeon X700] | |
1002 | 5653 | RV410/M26 [Mobility Radeon X700] | |
1002 | 5654 | Mach64 VT [Video Xpression] | |
1002 | 5655 | 264VT3 [Mach64 VT3] | |
1002 | 5656 | Mach64 VT4 [Video Xpression+] | |
1002 | 5657 | RV410 [Radeon X550 XTX / X700] | |
1002 | 5830 | RS300 Host Bridge | |
1002 | 5831 | RS300 Host Bridge | |
1002 | 5832 | RS300 Host Bridge | |
1002 | 5833 | RS300 Host Bridge | |
1002 | 5834 | RS300 [Radeon 9100 IGP] | |
1002 | 5835 | RS300M [Mobility Radeon 9100 IGP] | |
1002 | 5838 | RS300 AGP Bridge | |
1002 | 5854 | RS480 [Radeon Xpress 200 Series] (Secondary) | |
1002 | 5874 | RS480 [Radeon Xpress 1150] (Secondary) | |
1002 | 5940 | RV280 [Radeon 9200 PRO] (Secondary) | |
1002 | 5941 | RV280 [Radeon 9200] (Secondary) | |
1002 | 5944 | RV280 [Radeon 9200 SE PCI] | |
1002 | 5950 | RS480/RS482/RS485 Host Bridge | |
1002 | 5951 | RX480/RX482 Host Bridge | |
1002 | 5952 | RD580 Host Bridge | |
1002 | 5954 | RS480 [Radeon Xpress 200 Series] | |
1002 | 5955 | RS480M [Mobility Radeon Xpress 200] | |
1002 | 5956 | RD790 Host Bridge | |
1002 | 5957 | RX780/RX790 Host Bridge | |
1002 | 5958 | RD780 Host Bridge | |
1002 | 5960 | RV280 [Radeon 9200 PRO / 9250] | |
1002 | 5961 | RV280 [Radeon 9200] | |
1002 | 5962 | RV280 [Radeon 9200] | |
1002 | 5964 | RV280 [Radeon 9200 SE] | |
1002 | 5965 | RV280 GL [FireMV 2200 PCI] | |
1002 | 5969 | ||
1002 | 5974 | RS482/RS485 [Radeon Xpress 1100/1150] | |
1002 | 5975 | RS482M [Mobility Radeon Xpress 200] | |
1002 | 5978 | RX780/RD790 PCI to PCI bridge (external gfx0 port A) | |
1002 | 5979 | RD790 PCI to PCI bridge (external gfx0 port B) | |
1002 | 597a | RD790 PCI to PCI bridge (PCI express gpp port A) | |
1002 | 597b | RX780/RD790 PCI to PCI bridge (PCI express gpp port B) | |
1002 | 597c | RD790 PCI to PCI bridge (PCI express gpp port C) | |
1002 | 597d | RX780/RD790 PCI to PCI bridge (PCI express gpp port D) | |
1002 | 597e | RD790 PCI to PCI bridge (PCI express gpp port E) | |
1002 | 597f | RD790 PCI to PCI bridge (PCI express gpp port F) | |
1002 | 5980 | RD790 PCI to PCI bridge (external gfx1 port A) | |
1002 | 5981 | RD790 PCI to PCI bridge (external gfx1 port B) | |
1002 | 5982 | RD790 PCI to PCI bridge (NB-SB link) | |
1002 | 5a10 | RD890 Northbridge only dual slot (2x16) PCI-e GFX Hydra part | |
1002 | 5a11 | RD890 Northbridge only single slot PCI-e GFX Hydra part | |
1002 | 5a12 | RD890 Northbridge only dual slot (2x8) PCI-e GFX Hydra part | |
1002 | 5a13 | RD890S/SR5650 Host Bridge | |
1002 | 5a14 | RD9x0/RX980 Host Bridge | |
1002 | 5a15 | RD890 PCI to PCI bridge (PCI express gpp port A) | |
1002 | 5a16 | RD890/RD9x0/RX980 PCI to PCI bridge (PCI Express GFX port 0) | |
1002 | 5a17 | RD890/RD9x0 PCI to PCI bridge (PCI Express GFX port 1) | |
1002 | 5a18 | RD890/RD9x0/RX980 PCI to PCI bridge (PCI Express GPP Port 0) | |
1002 | 5a19 | RD890/RD9x0/RX980 PCI to PCI bridge (PCI Express GPP Port 1) | |
1002 | 5a1a | RD890/RD9x0/RX980 PCI to PCI bridge (PCI Express GPP Port 2) | |
1002 | 5a1b | RD890/RD9x0/RX980 PCI to PCI bridge (PCI Express GPP Port 3) | |
1002 | 5a1c | RD890/RD9x0/RX980 PCI to PCI bridge (PCI Express GPP Port 4) | |
1002 | 5a1d | RD890/RD9x0/RX980 PCI to PCI bridge (PCI Express GPP Port 5) | |
1002 | 5a1e | RD890/RD9x0/RX980 PCI to PCI bridge (PCI Express GPP2 Port 0) | |
1002 | 5a1f | RD890/RD990 PCI to PCI bridge (PCI Express GFX2 port 0) | |
1002 | 5a20 | RD890/RD990 PCI to PCI bridge (PCI Express GFX2 port 1) | |
1002 | 5a23 | RD890S/RD990 I/O Memory Management Unit (IOMMU) | |
1002 | 5a31 | RC410 Host Bridge | |
1002 | 5a33 | RS400 Host Bridge | |
1002 | 5a34 | RS4xx PCI Express Port [ext gfx] | |
1002 | 5a36 | RC4xx/RS4xx PCI Express Port 1 | |
1002 | 5a37 | RC4xx/RS4xx PCI Express Port 2 | |
1002 | 5a38 | RC4xx/RS4xx PCI Express Port 3 | |
1002 | 5a39 | RC4xx/RS4xx PCI Express Port 4 | |
1002 | 5a3f | RC4xx/RS4xx PCI Bridge [int gfx] | |
1002 | 5a41 | RS400 [Radeon Xpress 200] | |
1002 | 5a42 | RS400M [Radeon Xpress 200M] | |
1002 | 5a43 | ||
1002 | 5a61 | RC410 [Radeon Xpress 200/1100] | |
1002 | 5a62 | RC410M [Mobility Radeon Xpress 200M] | |
1002 | 5a63 | ||
1002 | 5b60 | RV370 [Radeon X300] | |
1002 | 5b62 | RV370 [Radeon X600/X600 SE] | |
1002 | 5b63 | RV370 [Radeon X300/X550/X1050 Series] | |
1002 | 5b64 | RV370 GL [FireGL V3100] | |
1002 | 5b65 | RV370 GL [FireMV 2200] | |
1002 | 5b66 | RV370X | |
1002 | 5b70 | RV370 [Radeon X300 SE] | |
1002 | 5b72 | RV380 [Radeon X300/X550/X1050 Series] (Secondary) | |
1002 | 5b73 | RV370 [Radeon X300/X550/X1050 Series] (Secondary) | |
1002 | 5b74 | RV370 GL [FireGL V3100] (Secondary) | |
1002 | 5b75 | RV370 GL [FireMV 2200] (Secondary) | |
1002 | 5c61 | RV280/M9+ [Mobility Radeon 9200 AGP] | |
1002 | 5c63 | RV280/M9+ [Mobility Radeon 9200 AGP] | |
1002 | 5d44 | RV280 [Radeon 9200 SE] (Secondary) | |
1002 | 5d45 | RV280 GL [FireMV 2200 PCI] (Secondary) | |
1002 | 5d48 | R423/M28 [Mobility Radeon X800 XT] | |
1002 | 5d49 | R423/M28 GL [Mobility FireGL V5100] | |
1002 | 5d4a | R423/M28 [Mobility Radeon X800] | |
1002 | 5d4c | ||
1002 | 5d4d | R480 [Radeon X850 XT Platinum Edition] | |
1002 | 5d4e | R480 [Radeon X850 SE] | |
1002 | 5d4f | R480 [Radeon X800 GTO] | |
1002 | 5d50 | R480 GL [FireGL V7200] | |
1002 | 5d51 | ||
1002 | 5d52 | R480 [Radeon X850 XT] | |
1002 | 5d57 | R423 [Radeon X800 XT] | |
1002 | 5d6d | R480 [Radeon X850 XT Platinum Edition] (Secondary) | |
1002 | 5d6f | R480 [Radeon X800 GTO] (Secondary) | |
1002 | 5d72 | R480 [Radeon X850 XT] (Secondary) | |
1002 | 5d77 | R423 [Radeon X800 XT] (Secondary) | |
1002 | 5e48 | RV410 GL [FireGL V5000] | |
1002 | 5e49 | RV410 [Radeon X700 Series] | |
1002 | 5e4a | RV410 [Radeon X700 XT] | |
1002 | 5e4b | RV410 [Radeon X700 PRO] | |
1002 | 5e4c | RV410 [Radeon X700 SE] | |
1002 | 5e4d | RV410 [Radeon X700] | |
1002 | 5e4f | RV410 [Radeon X700] | |
1002 | 5e6b | RV410 [Radeon X700 PRO] (Secondary) | |
1002 | 5e6d | RV410 [Radeon X700] (Secondary) | |
1002 | 5f57 | R423 [Radeon X800 XT] | |
1002 | 6600 | Mars [Radeon HD 8670A/8670M/8750M / R7 M370] | |
1002 | 6601 | Mars [Radeon HD 8730M] | |
1002 | 6602 | ||
1002 | 6603 | ||
1002 | 6604 | Opal XT [Radeon R7 M265/M365X/M465] | |
1002 | 6605 | Opal PRO [Radeon R7 M260X] | |
1002 | 6606 | Mars XTX [Radeon HD 8790M] | |
1002 | 6607 | Mars LE [Radeon HD 8530M / R5 M240] | |
1002 | 6608 | Oland GL [FirePro W2100] | |
1002 | 6609 | Oland GL [FirePro W2100 / Barco MXRT 2600] | |
1002 | 6610 | Oland XT [Radeon HD 8670 / R5 340X OEM / R7 250/350/350X OEM] | |
1002 | 6611 | Oland [Radeon HD 8570 / R5 430 OEM / R7 240/340 / Radeon 520 OEM] | |
1002 | 6613 | Oland PRO [Radeon R7 240/340] | |
1002 | 6620 | ||
1002 | 6621 | ||
1002 | 6623 | ||
1002 | 6631 | Oland | |
1002 | 6640 | Saturn XT [FirePro M6100] | |
1002 | 6641 | Saturn PRO [Radeon HD 8930M] | |
1002 | 6646 | Bonaire XT [Radeon R9 M280X] | |
1002 | 6647 | Saturn PRO/XT [Radeon R9 M270X/M280X] | |
1002 | 6649 | Bonaire [FirePro W5100] | |
1002 | 664d | Bonaire [FirePro W5100 / Barco MXRT-5600] | |
1002 | 6650 | Bonaire | |
1002 | 6651 | Bonaire | |
1002 | 6658 | Bonaire XTX [Radeon R7 260X/360] | |
1002 | 665c | Bonaire XT [Radeon HD 7790/8770 / R7 360 / R9 260/360 OEM] | |
1002 | 665d | Bonaire [Radeon R7 200 Series] | |
1002 | 665f | Tobago PRO [Radeon R7 360 / R9 360 OEM] | |
1002 | 6660 | Sun XT [Radeon HD 8670A/8670M/8690M / R5 M330 / M430 / Radeon 520 Mobile] | |
1002 | 6663 | Sun PRO [Radeon HD 8570A/8570M] | |
1002 | 6664 | Jet XT [Radeon R5 M240] | |
1002 | 6665 | Jet PRO [Radeon R5 M230 / R7 M260DX / Radeon 520 Mobile] | |
1002 | 6667 | Jet ULT [Radeon R5 M230] | |
1002 | 666f | Sun LE [Radeon HD 8550M / R5 M230] | |
1002 | 6670 | ||
1002 | 66a0 | Vega 20 [Radeon Instinct] | |
1002 | 66a1 | Vega 20 WKS GL-XE [Radeon Pro VII] | |
1002 | 66a2 | Vega 20 | |
1002 | 66a3 | Vega 20 [Radeon Pro Vega II/Radeon Pro Vega II Duo] | |
1002 | 66a7 | Vega 20 [Radeon Pro Vega 20] | |
1002 | 66af | Vega 20 [Radeon VII] | |
1002 | 6700 | ||
1002 | 6701 | ||
1002 | 6702 | ||
1002 | 6703 | ||
1002 | 6704 | Cayman PRO GL [FirePro V7900] | |
1002 | 6705 | ||
1002 | 6706 | ||
1002 | 6707 | Cayman LE GL [FirePro V5900] | |
1002 | 6708 | ||
1002 | 6709 | ||
1002 | 6718 | Cayman XT [Radeon HD 6970] | |
1002 | 6719 | Cayman PRO [Radeon HD 6950] | |
1002 | 671c | Antilles [Radeon HD 6990] | |
1002 | 671d | Antilles [Radeon HD 6990] | |
1002 | 671f | Cayman CE [Radeon HD 6930] | |
1002 | 6720 | Blackcomb [Radeon HD 6970M/6990M] | |
1002 | 6721 | ||
1002 | 6722 | ||
1002 | 6723 | ||
1002 | 6724 | ||
1002 | 6725 | ||
1002 | 6726 | ||
1002 | 6727 | ||
1002 | 6728 | ||
1002 | 6729 | ||
1002 | 6738 | Barts XT [Radeon HD 6870] | |
1002 | 6739 | Barts PRO [Radeon HD 6850] | |
1002 | 673e | Barts LE [Radeon HD 6790] | |
1002 | 6740 | Whistler [Radeon HD 6730M/6770M/7690M XT] | |
1002 | 6741 | Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] | |
1002 | 6742 | Whistler LE [Radeon HD 6610M/7610M] | |
1002 | 6743 | Whistler [Radeon E6760] | |
1002 | 6744 | ||
1002 | 6745 | ||
1002 | 6746 | ||
1002 | 6747 | ||
1002 | 6748 | ||
1002 | 6749 | Turks GL [FirePro V4900] | |
1002 | 674a | Turks GL [FirePro V3900] | |
1002 | 6750 | Onega [Radeon HD 6650A/7650A] | |
1002 | 6751 | Turks [Radeon HD 7650A/7670A] | |
1002 | 6758 | Turks XT [Radeon HD 6670/7670] | |
1002 | 6759 | Turks PRO [Radeon HD 6570/7570/8550 / R5 230] | |
1002 | 675b | Turks [Radeon HD 7600 Series] | |
1002 | 675d | Turks PRO [Radeon HD 7570] | |
1002 | 675f | Turks LE [Radeon HD 5570/6510/7510/8510] | |
1002 | 6760 | Seymour [Radeon HD 6400M/7400M Series] | |
1002 | 6761 | Seymour LP [Radeon HD 6430M] | |
1002 | 6762 | ||
1002 | 6763 | Seymour [Radeon E6460] | |
1002 | 6764 | Seymour [Radeon HD 6400M Series] | |
1002 | 6765 | Seymour [Radeon HD 6400M Series] | |
1002 | 6766 | Caicos | |
1002 | 6767 | Caicos | |
1002 | 6768 | Caicos | |
1002 | 6770 | Caicos [Radeon HD 6450A/7450A] | |
1002 | 6771 | Caicos XTX [Radeon HD 8490 / R5 235X OEM] | |
1002 | 6772 | Caicos [Radeon HD 7450A] | |
1002 | 6778 | Caicos XT [Radeon HD 7470/8470 / R5 235/310 OEM] | |
1002 | 6779 | Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] | |
1002 | 677b | Caicos PRO [Radeon HD 7450] | |
1002 | 6780 | Tahiti XT GL [FirePro W9000] | |
1002 | 6784 | Tahiti [FirePro Series Graphics Adapter] | |
1002 | 6788 | Tahiti [FirePro Series Graphics Adapter] | |
1002 | 678a | Tahiti PRO GL [FirePro Series] | |
1002 | 6790 | ||
1002 | 6791 | ||
1002 | 6792 | ||
1002 | 6798 | Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] | |
1002 | 6799 | ||
1002 | 679a | Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] | |
1002 | 679b | Malta [Radeon HD 7990/8990 OEM] | |
1002 | 679e | Tahiti LE [Radeon HD 7870 XT] | |
1002 | 679f | Tahiti | |
1002 | 67a0 | Hawaii XT GL [FirePro W9100] | |
1002 | 67a1 | Hawaii PRO GL [FirePro W8100] | |
1002 | 67a2 | Hawaii GL | |
1002 | 67a8 | Hawaii | |
1002 | 67a9 | Hawaii | |
1002 | 67aa | Hawaii | |
1002 | 67b0 | Hawaii XT / Grenada XT [Radeon R9 290X/390X] | |
1002 | 67b1 | Hawaii PRO [Radeon R9 290/390] | |
1002 | 67b8 | Hawaii XT [Radeon R9 290X Engineering Sample] | |
1002 | 67b9 | Vesuvius [Radeon R9 295X2] | |
1002 | 67ba | ||
1002 | 67be | Hawaii LE | |
1002 | 67c0 | Ellesmere [Radeon Pro WX 7100 Mobile] | |
1002 | 67c2 | Ellesmere [Radeon Pro V7300X / V7350x2] | |
1002 | 67c4 | Ellesmere [Radeon Pro WX 7100] | |
1002 | 67c7 | Ellesmere [Radeon Pro WX 5100] | |
1002 | 67ca | Ellesmere [Polaris10] | |
1002 | 67cc | Ellesmere [Polaris10] | |
1002 | 67cf | Ellesmere [Polaris10] | |
1002 | 67d0 | Ellesmere [Radeon Pro V7300X / V7350x2] | |
1002 | 67d7 | Ellesmere [Radeon Pro WX 5100 / Barco MXRT-6700] | |
1002 | 67df | Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] | |
1002 | 67e0 | Baffin [Radeon Pro WX 4170] | |
1002 | 67e1 | Baffin [Polaris11] | |
1002 | 67e3 | Baffin [Radeon Pro WX 4100] | |
1002 | 67e8 | Baffin [Radeon Pro WX 4130/4150] | |
1002 | 67e9 | Baffin [Polaris11] | |
1002 | 67eb | Baffin [Radeon Pro V5300X] | |
1002 | 67ef | Baffin [Radeon RX 460/560D / Pro 450/455/460/555/555X/560/560X] | |
1002 | 67ff | Baffin [Radeon RX 550 640SP / RX 560/560X] | |
1002 | 6800 | Wimbledon XT [Radeon HD 7970M] | |
1002 | 6801 | Neptune XT [Radeon HD 8970M] | |
1002 | 6802 | Wimbledon | |
1002 | 6806 | Neptune | |
1002 | 6808 | Pitcairn XT GL [FirePro W7000] | |
1002 | 6809 | Pitcairn LE GL [FirePro W5000] | |
1002 | 6810 | Curacao XT / Trinidad XT [Radeon R7 370 / R9 270X/370X] | |
1002 | 6811 | Curacao PRO [Radeon R7 370 / R9 270/370 OEM] | |
1002 | 6816 | Pitcairn | |
1002 | 6817 | Pitcairn | |
1002 | 6818 | Pitcairn XT [Radeon HD 7870 GHz Edition] | |
1002 | 6819 | Pitcairn PRO [Radeon HD 7850 / R7 265 / R9 270 1024SP] | |
1002 | 6820 | Venus XTX [Radeon HD 8890M / R9 M275X/M375X] | |
1002 | 6821 | Venus XT [Radeon HD 8870M / R9 M270X/M370X] | |
1002 | 6822 | Venus PRO [Radeon E8860] | |
1002 | 6823 | Venus PRO [Radeon HD 8850M / R9 M265X] | |
1002 | 6824 | ||
1002 | 6825 | Heathrow XT [Radeon HD 7870M] | |
1002 | 6826 | Chelsea LP [Radeon HD 7700M Series] | |
1002 | 6827 | Heathrow PRO [Radeon HD 7850M/8850M] | |
1002 | 6828 | Cape Verde PRO [FirePro W600] | |
1002 | 6829 | Cape Verde | |
1002 | 682a | Venus PRO | |
1002 | 682b | Cape Verde PRO / Venus LE / Tropo PRO-L [Radeon HD 8830M / R7 250 / R7 M465X] | |
1002 | 682c | Cape Verde GL [FirePro W4100] | |
1002 | 682d | Chelsea XT GL [FirePro M4000] | |
1002 | 682f | Chelsea LP [Radeon HD 7730M] | |
1002 | 6830 | ||
1002 | 6831 | ||
1002 | 6835 | Cape Verde PRX [Radeon R9 255 OEM] | |
1002 | 6837 | Cape Verde LE [Radeon HD 7730/8730] | |
1002 | 6838 | ||
1002 | 6839 | ||
1002 | 683b | ||
1002 | 683d | Cape Verde XT [Radeon HD 7770/8760 / R7 250X] | |
1002 | 683f | Cape Verde PRO [Radeon HD 7750/8740 / R7 250E] | |
1002 | 6840 | Thames [Radeon HD 7500M/7600M Series] | |
1002 | 6841 | Thames [Radeon HD 7550M/7570M/7650M] | |
1002 | 6842 | Thames LE [Radeon HD 7000M Series] | |
1002 | 6843 | Thames [Radeon HD 7670M] | |
1002 | 6849 | ||
1002 | 684c | ||
1002 | 6850 | ||
1002 | 6858 | ||
1002 | 6859 | ||
1002 | 6860 | Vega 10 [Radeon Instinct MI25] | |
1002 | 6861 | Vega 10 XT [Radeon PRO WX 9100] | |
1002 | 6862 | Vega 10 XT [Radeon PRO SSG] | |
1002 | 6863 | Vega 10 XTX [Radeon Vega Frontier Edition] | |
1002 | 6864 | Vega 10 [Radeon Pro V340] | |
1002 | 6867 | Vega 10 XL [Radeon Pro Vega 56] | |
1002 | 6868 | Vega 10 [Radeon PRO WX 8100/8200] | |
1002 | 6869 | Vega 10 XGA [Radeon Pro Vega 48] | |
1002 | 686a | Vega 10 LEA | |
1002 | 686b | Vega 10 XTXA [Radeon Pro Vega 64X] | |
1002 | 686c | Vega 10 [Radeon Instinct MI25 MxGPU] | |
1002 | 686d | Vega 10 GLXTA | |
1002 | 686e | Vega 10 GLXLA | |
1002 | 687f | Vega 10 XL/XT [Radeon RX Vega 56/64] | |
1002 | 6880 | Lexington [Radeon HD 6550M] | |
1002 | 6888 | Cypress XT [FirePro V8800] | |
1002 | 6889 | Cypress PRO [FirePro V7800] | |
1002 | 688a | Cypress XT [FirePro V9800] | |
1002 | 688c | Cypress XT GL [FireStream 9370] | |
1002 | 688d | Cypress PRO GL [FireStream 9350] | |
1002 | 6898 | Cypress XT [Radeon HD 5870] | |
1002 | 6899 | Cypress PRO [Radeon HD 5850] | |
1002 | 689b | Cypress PRO [Radeon HD 6800 Series] | |
1002 | 689c | Hemlock [Radeon HD 5970] | |
1002 | 689d | Hemlock [Radeon HD 5970] | |
1002 | 689e | Cypress LE [Radeon HD 5830] | |
1002 | 68a0 | Broadway XT [Mobility Radeon HD 5870] | |
1002 | 68a1 | Broadway PRO [Mobility Radeon HD 5850] | |
1002 | 68a8 | Granville [Radeon HD 6850M/6870M] | |
1002 | 68a9 | Juniper XT [FirePro V5800] | |
1002 | 68b8 | Juniper XT [Radeon HD 5770] | |
1002 | 68b9 | Juniper LE [Radeon HD 5670 640SP Edition] | |
1002 | 68ba | Juniper XT [Radeon HD 6770] | |
1002 | 68be | Juniper PRO [Radeon HD 5750] | |
1002 | 68bf | Juniper PRO [Radeon HD 6750] | |
1002 | 68c0 | Madison [Mobility Radeon HD 5730 / 6570M] | |
1002 | 68c1 | Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] | |
1002 | 68c7 | Pinewood [Mobility Radeon HD 5570/6550A] | |
1002 | 68c8 | Redwood XT GL [FirePro V4800] | |
1002 | 68c9 | Redwood PRO GL [FirePro V3800] | |
1002 | 68d8 | Redwood XT [Radeon HD 5670/5690/5730] | |
1002 | 68d9 | Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] | |
1002 | 68da | Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] | |
1002 | 68de | Redwood | |
1002 | 68e0 | Park [Mobility Radeon HD 5430/5450/5470] | |
1002 | 68e1 | Park [Mobility Radeon HD 5430] | |
1002 | 68e4 | Robson CE [Radeon HD 6370M/7370M] | |
1002 | 68e5 | Robson LE [Radeon HD 6330M] | |
1002 | 68e8 | Cedar | |
1002 | 68e9 | Cedar [ATI FirePro (FireGL) Graphics Adapter] | |
1002 | 68f1 | Cedar GL [FirePro 2460] | |
1002 | 68f2 | Cedar GL [FirePro 2270] | |
1002 | 68f8 | Cedar [Radeon HD 7300 Series] | |
1002 | 68f9 | Cedar [Radeon HD 5000/6000/7350/8350 Series] | |
1002 | 68fa | Cedar [Radeon HD 7350/8350 / R5 220] | |
1002 | 68fe | Cedar LE | |
1002 | 6900 | Topaz XT [Radeon R7 M260/M265 / M340/M360 / M440/M445 / 530/535 / 620/625 Mobile] | |
1002 | 6901 | Topaz PRO [Radeon R5 M255] | |
1002 | 6907 | Meso XT [Radeon R5 M315] | |
1002 | 6920 | Amethyst [Radeon R9 M395/ M395X Mac Edition] | |
1002 | 6921 | Amethyst XT [Radeon R9 M295X / M390X] | |
1002 | 6929 | Tonga XT GL [FirePro S7150] | |
1002 | 692b | Tonga PRO GL [FirePro W7100] | |
1002 | 692f | Tonga XTV GL [FirePro S7150V] | |
1002 | 6938 | Tonga XT / Amethyst XT [Radeon R9 380X / R9 M295X] | |
1002 | 6939 | Tonga PRO [Radeon R9 285/380] | |
1002 | 693b | Tonga PRO GL [FirePro W7100 / Barco MXRT-7600] | |
1002 | 694c | Polaris 22 XT [Radeon RX Vega M GH] | |
1002 | 694e | Polaris 22 XL [Radeon RX Vega M GL] | |
1002 | 694f | Polaris 22 MGL XL [Radeon Pro WX Vega M GL] | |
1002 | 6980 | Polaris12 | |
1002 | 6981 | Lexa XT [Radeon PRO WX 3200] | |
1002 | 6985 | Lexa XT [Radeon PRO WX 3100] | |
1002 | 6986 | Polaris12 | |
1002 | 6987 | Lexa [Radeon 540X/550X/630 / RX 640 / E9171 MCM] | |
1002 | 6995 | Lexa XT [Radeon PRO WX 2100] | |
1002 | 699f | Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X] | |
1002 | 69a0 | Vega 12 | |
1002 | 69a1 | Vega 12 | |
1002 | 69a2 | Vega 12 | |
1002 | 69a3 | Vega 12 | |
1002 | 69af | Vega 12 [Radeon Pro Vega 20] | |
1002 | 6b76 | ||
1002 | 6fdf | Polaris 20 XL [Radeon RX 580 2048SP] | |
1002 | 700f | RS100 AGP Bridge | |
1002 | 7010 | RS200/RS250 AGP Bridge | |
1002 | 7100 | R520 [Radeon X1800 XT] | |
1002 | 7101 | R520/M58 [Mobility Radeon X1800 XT] | |
1002 | 7102 | R520/M58 [Mobility Radeon X1800] | |
1002 | 7103 | ||
1002 | 7104 | R520 GL [FireGL V7200 / Barco MXTR-5100] | |
1002 | 7105 | ||
1002 | 7106 | ||
1002 | 7108 | ||
1002 | 7109 | R520 [Radeon X1800 XL] | |
1002 | 710a | R520 [Radeon X1800 GTO] | |
1002 | 710b | R520 [Radeon X1800 GTO] | |
1002 | 710c | ||
1002 | 710e | R520 GL [FireGL V7300] | |
1002 | 710f | R520 GL [FireGL V7350] | |
1002 | 7120 | R520 [Radeon X1800] (Secondary) | |
1002 | 7124 | R520 GL [FireGL V7200] (Secondary) | |
1002 | 7129 | R520 [Radeon X1800] (Secondary) | |
1002 | 712e | R520 GL [FireGL V7300] (Secondary) | |
1002 | 712f | R520 GL [FireGL V7350] (Secondary) | |
1002 | 7140 | RV515 [Radeon X1300/X1550/X1600 Series] | |
1002 | 7142 | RV515 PRO [Radeon X1300/X1550 Series] | |
1002 | 7143 | RV505 [Radeon X1300/X1550 Series] | |
1002 | 7145 | RV515/M54 [Mobility Radeon X1400] | |
1002 | 7146 | RV515 [Radeon X1300/X1550] | |
1002 | 7147 | RV505 [Radeon X1550 64-bit] | |
1002 | 7149 | RV515/M52 [Mobility Radeon X1300] | |
1002 | 714a | RV515/M52 [Mobility Radeon X1300] | |
1002 | 714b | ||
1002 | 714c | ||
1002 | 714d | ||
1002 | 714e | ||
1002 | 7152 | RV515 GL [FireGL V3300] | |
1002 | 7153 | RV515 GL [FireGL V3350] | |
1002 | 715e | ||
1002 | 715f | RV505 CE [Radeon X1550 64-bit] | |
1002 | 7162 | RV515 PRO [Radeon X1300/X1550 Series] (Secondary) | |
1002 | 7163 | RV505 [Radeon X1550 Series] (Secondary) | |
1002 | 7166 | RV515 [Radeon X1300/X1550 Series] (Secondary) | |
1002 | 7167 | RV515 [Radeon X1550 64-bit] (Secondary) | |
1002 | 716e | ||
1002 | 7172 | RV515 GL [FireGL V3300] (Secondary) | |
1002 | 7173 | RV515 GL [FireGL V3350] (Secondary) | |
1002 | 7180 | ||
1002 | 7181 | RV516 [Radeon X1600/X1650 Series] | |
1002 | 7183 | RV516 [Radeon X1300/X1550 Series] | |
1002 | 7186 | RV516/M64 [Mobility Radeon X1450] | |
1002 | 7187 | RV516 [Radeon X1300/X1550 Series] | |
1002 | 7188 | RV516/M64-S [Mobility Radeon X2300] | |
1002 | 718a | RV516/M64 [Mobility Radeon X2300] | |
1002 | 718b | RV516/M62 [Mobility Radeon X1350] | |
1002 | 718c | RV516/M62-CSP64 [Mobility Radeon X1350] | |
1002 | 718d | RV516/M64-CSP128 [Mobility Radeon X1450] | |
1002 | 7193 | RV516 [Radeon X1550 Series] | |
1002 | 7196 | RV516/M62-S [Mobility Radeon X1350] | |
1002 | 719b | RV516 GL [FireMV 2250] | |
1002 | 719f | RV516 [Radeon X1550 Series] | |
1002 | 71a0 | RV516 [Radeon X1300/X1550 Series] (Secondary) | |
1002 | 71a1 | RV516 [Radeon X1600/X1650 Series] (Secondary) | |
1002 | 71a3 | RV516 [Radeon X1300/X1550 Series] (Secondary) | |
1002 | 71a7 | RV516 [Radeon X1300/X1550 Series] (Secondary) | |
1002 | 71bb | RV516 GL [FireMV 2250] (Secondary) | |
1002 | 71c0 | RV530 [Radeon X1600 XT/X1650 GTO] | |
1002 | 71c1 | RV535 [Radeon X1650 PRO] | |
1002 | 71c2 | RV530 [Radeon X1600 PRO] | |
1002 | 71c3 | RV530 [Radeon X1600 PRO] | |
1002 | 71c4 | RV530/M56 GL [Mobility FireGL V5200] | |
1002 | 71c5 | RV530/M56-P [Mobility Radeon X1600] | |
1002 | 71c6 | RV530LE [Radeon X1600/X1650 PRO] | |
1002 | 71c7 | RV535 [Radeon X1650 PRO] | |
1002 | 71ce | RV530 [Radeon X1300 XT/X1600 PRO] | |
1002 | 71d2 | RV530 GL [FireGL V3400] | |
1002 | 71d4 | RV530/M66 GL [Mobility FireGL V5250] | |
1002 | 71d5 | RV530/M66-P [Mobility Radeon X1700] | |
1002 | 71d6 | RV530/M66-XT [Mobility Radeon X1700] | |
1002 | 71de | RV530/M66 [Mobility Radeon X1700/X2500] | |
1002 | 71e0 | RV530 [Radeon X1600] (Secondary) | |
1002 | 71e1 | RV535 [Radeon X1650 PRO] (Secondary) | |
1002 | 71e2 | RV530 [Radeon X1600] (Secondary) | |
1002 | 71e6 | RV530 [Radeon X1650] (Secondary) | |
1002 | 71e7 | RV535 [Radeon X1650 PRO] (Secondary) | |
1002 | 71f2 | RV530 GL [FireGL V3400] (Secondary) | |
1002 | 7210 | RV550/M71 [Mobility Radeon HD 2300] | |
1002 | 7211 | RV550/M71 [Mobility Radeon X2300 HD] | |
1002 | 7240 | R580+ [Radeon X1950 XTX] | |
1002 | 7241 | ||
1002 | 7242 | ||
1002 | 7243 | ||
1002 | 7244 | R580+ [Radeon X1950 XT] | |
1002 | 7245 | ||
1002 | 7246 | ||
1002 | 7247 | ||
1002 | 7248 | R580 [Radeon X1950] | |
1002 | 7249 | R580 [Radeon X1900 XT] | |
1002 | 724a | ||
1002 | 724b | R580 [Radeon X1900 GT] | |
1002 | 724c | ||
1002 | 724d | ||
1002 | 724e | R580 GL [FireGL V7350] | |
1002 | 7269 | R580 [Radeon X1900 XT] (Secondary) | |
1002 | 726b | R580 [Radeon X1900 GT] (Secondary) | |
1002 | 726e | R580 [AMD Stream Processor] (Secondary) | |
1002 | 7280 | RV570 [Radeon X1950 PRO] | |
1002 | 7288 | RV570 [Radeon X1950 GT] | |
1002 | 7291 | RV560 [Radeon X1650 XT] | |
1002 | 7293 | RV560 [Radeon X1650 GT] | |
1002 | 72a0 | RV570 [Radeon X1950 PRO] (Secondary) | |
1002 | 72a8 | RV570 [Radeon X1950 GT] (Secondary) | |
1002 | 72b1 | RV560 [Radeon X1650 XT] (Secondary) | |
1002 | 72b3 | RV560 [Radeon X1650 GT] (Secondary) | |
1002 | 7300 | Fiji [Radeon R9 FURY / NANO Series] | |
1002 | 7310 | Navi 10 [Radeon Pro W5700X] | |
1002 | 7312 | Navi 10 [Radeon Pro W5700] | |
1002 | 7314 | Navi 10 USB | |
1002 | 731f | Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT] | |
1002 | 7340 | Navi 14 [Radeon RX 5500/5500M / Pro 5500M] | |
1002 | 7341 | Navi 14 [Radeon Pro W5500] | |
1002 | 7347 | Navi 14 [Radeon Pro W5500M] | |
1002 | 734f | Navi 14 [Radeon Pro W5300M] | |
1002 | 7360 | Navi 12 [Radeon Pro 5600M / V520] | |
1002 | 7362 | Navi 12 [Radeon Pro V520] | |
1002 | 7388 | Arcturus GL-XL | |
1002 | 738c | Arcturus GL-XL [AMD Instinct MI100] | |
1002 | 738e | Arcturus GL-XL | |
1002 | 73a4 | Navi 21 USB | |
1002 | 73af | Navi 21 [Radeon RX 6900 XT] | |
1002 | 73bf | Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] | |
1002 | 73c3 | Navi 22 | |
1002 | 73c4 | Navi 22 USB | |
1002 | 73df | Navi 22 [Radeon RX 6700/6700 XT / 6800M] | |
1002 | 73e0 | Navi 23 | |
1002 | 73e1 | Navi 23 | |
1002 | 73e4 | Navi 23 USB | |
1002 | 73ff | Navi 23 [Radeon RX 6600/6600 XT] | |
1002 | 7833 | RS350 Host Bridge | |
1002 | 7834 | RS350 [Radeon 9100 PRO/XT IGP] | |
1002 | 7835 | RS350M [Mobility Radeon 9000 IGP] | |
1002 | 7838 | RS350 AGP Bridge | |
1002 | 7910 | RS690 Host Bridge | |
1002 | 7911 | RS690/RS740 Host Bridge | |
1002 | 7912 | RS690/RS740 PCI to PCI Bridge (Internal gfx) | |
1002 | 7913 | RS690 PCI to PCI Bridge (PCI Express Graphics Port 0) | |
1002 | 7915 | RS690 PCI to PCI Bridge (PCI Express Port 1) | |
1002 | 7916 | RS690 PCI to PCI Bridge (PCI Express Port 2) | |
1002 | 7917 | RS690 PCI to PCI Bridge (PCI Express Port 3) | |
1002 | 7919 | RS690 HDMI Audio [Radeon Xpress 1200 Series] | |
1002 | 791e | RS690 [Radeon X1200] | |
1002 | 791f | RS690M [Radeon Xpress 1200/1250/1270] | |
1002 | 7930 | RS600 Host Bridge | |
1002 | 7932 | RS600 PCI to PCI Bridge (Internal gfx) | |
1002 | 7933 | RS600 PCI to PCI Bridge (PCI Express Graphics Port 0) | |
1002 | 7935 | RS600 PCI to PCI Bridge (PCI Express Port 1) | |
1002 | 7936 | RS600 PCI to PCI Bridge (PCI Express Port 2) | |
1002 | 7937 | RS690 PCI to PCI Bridge (PCI Express Port 3) | |
1002 | 793b | RS600 HDMI Audio [Radeon Xpress 1250] | |
1002 | 793f | RS690M [Radeon Xpress 1200/1250/1270] (Secondary) | |
1002 | 7941 | RS600 [Radeon Xpress 1250] | |
1002 | 7942 | RS600M [Radeon Xpress 1250] | |
1002 | 796c | ||
1002 | 796d | ||
1002 | 796e | RS740 [Radeon 2100] | |
1002 | 796f | ||
1002 | 7c37 | ||
1002 | 9400 | R600 [Radeon HD 2900 PRO/XT] | |
1002 | 9401 | R600 [Radeon HD 2900 XT] | |
1002 | 9402 | ||
1002 | 9403 | R600 [Radeon HD 2900 PRO] | |
1002 | 9405 | R600 [Radeon HD 2900 GT] | |
1002 | 940a | R600 GL [FireGL V8650] | |
1002 | 940b | R600 GL [FireGL V8600] | |
1002 | 940f | R600 GL [FireGL V7600] | |
1002 | 9440 | RV770 [Radeon HD 4870] | |
1002 | 9441 | R700 [Radeon HD 4870 X2] | |
1002 | 9442 | RV770 [Radeon HD 4850] | |
1002 | 9443 | R700 [Radeon HD 4850 X2] | |
1002 | 9444 | RV770 GL [FirePro V8750] | |
1002 | 9446 | RV770 GL [FirePro V7760] | |
1002 | 944a | RV770/M98L [Mobility Radeon HD 4850] | |
1002 | 944b | RV770/M98 [Mobility Radeon HD 4850 X2] | |
1002 | 944c | RV770 LE [Radeon HD 4830] | |
1002 | 944e | RV770 CE [Radeon HD 4710] | |
1002 | 9450 | RV770 GL [FireStream 9270] | |
1002 | 9452 | RV770 GL [FireStream 9250] | |
1002 | 9456 | RV770 GL [FirePro V8700] | |
1002 | 945a | RV770/M98-XT [Mobility Radeon HD 4870] | |
1002 | 945b | ||
1002 | 945e | ||
1002 | 9460 | RV790 [Radeon HD 4890] | |
1002 | 9462 | RV790 [Radeon HD 4860] | |
1002 | 946a | RV770 GL [FirePro M7750] | |
1002 | 946b | ||
1002 | 947a | ||
1002 | 947b | ||
1002 | 9480 | RV730/M96 [Mobility Radeon HD 4650/5165] | |
1002 | 9485 | ||
1002 | 9487 | ||
1002 | 9488 | RV730/M96-XT [Mobility Radeon HD 4670] | |
1002 | 9489 | RV730/M96 GL [Mobility FireGL V5725] | |
1002 | 948a | ||
1002 | 948f | ||
1002 | 9490 | RV730 XT [Radeon HD 4670] | |
1002 | 9491 | RV730/M96-CSP [Radeon E4690] | |
1002 | 9495 | RV730 [Radeon HD 4600 AGP Series] | |
1002 | 9498 | RV730 PRO [Radeon HD 4650] | |
1002 | 949c | RV730 GL [FirePro V7750] | |
1002 | 949e | RV730 GL [FirePro V5700] | |
1002 | 949f | RV730 GL [FirePro V3750] | |
1002 | 94a0 | RV740/M97 [Mobility Radeon HD 4830] | |
1002 | 94a1 | RV740/M97-XT [Mobility Radeon HD 4860] | |
1002 | 94a3 | RV740/M97 GL [FirePro M7740] | |
1002 | 94b1 | ||
1002 | 94b3 | RV740 PRO [Radeon HD 4770] | |
1002 | 94b4 | RV740 PRO [Radeon HD 4750] | |
1002 | 94b5 | ||
1002 | 94b9 | ||
1002 | 94c0 | ||
1002 | 94c1 | RV610 [Radeon HD 2400 PRO/XT] | |
1002 | 94c3 | RV610 [Radeon HD 2400 PRO] | |
1002 | 94c4 | RV610 LE [Radeon HD 2400 PRO AGP] | |
1002 | 94c5 | RV610 [Radeon HD 2400 LE] | |
1002 | 94c6 | ||
1002 | 94c7 | RV610 [Radeon HD 2350] | |
1002 | 94c8 | RV610/M74 [Mobility Radeon HD 2400 XT] | |
1002 | 94c9 | RV610/M72-S [Mobility Radeon HD 2400] | |
1002 | 94cb | RV610 [Radeon E2400] | |
1002 | 94cc | RV610 LE [Radeon HD 2400 PRO PCI] | |
1002 | 94cd | ||
1002 | 9500 | RV670 [Radeon HD 3850 X2] | |
1002 | 9501 | RV670 [Radeon HD 3870] | |
1002 | 9504 | RV670/M88 [Mobility Radeon HD 3850] | |
1002 | 9505 | RV670 [Radeon HD 3690/3850] | |
1002 | 9506 | RV670/M88 [Mobility Radeon HD 3850 X2] | |
1002 | 9507 | RV670 [Radeon HD 3830] | |
1002 | 9508 | RV670/M88-XT [Mobility Radeon HD 3870] | |
1002 | 9509 | RV670/M88 [Mobility Radeon HD 3870 X2] | |
1002 | 950f | R680 [Radeon HD 3870 X2] | |
1002 | 9511 | RV670 GL [FireGL V7700] | |
1002 | 9513 | RV670 [Radeon HD 3850 X2] | |
1002 | 9515 | RV670 PRO [Radeon HD 3850 AGP] | |
1002 | 9517 | ||
1002 | 9519 | RV670 GL [FireStream 9170] | |
1002 | 9540 | RV710 [Radeon HD 4550] | |
1002 | 9541 | ||
1002 | 9542 | ||
1002 | 954e | ||
1002 | 954f | RV710 [Radeon HD 4350/4550] | |
1002 | 9552 | RV710/M92 [Mobility Radeon HD 4330/4350/4550] | |
1002 | 9553 | RV710/M92 [Mobility Radeon HD 4530/4570/545v] | |
1002 | 9555 | RV710/M92 [Mobility Radeon HD 4350/4550] | |
1002 | 9557 | RV711 GL [FirePro RG220] | |
1002 | 9559 | ||
1002 | 955f | RV710/M92 [Mobility Radeon HD 4330] | |
1002 | 9580 | RV630 [Radeon HD 2600 PRO] | |
1002 | 9581 | RV630/M76 [Mobility Radeon HD 2600] | |
1002 | 9583 | RV630/M76 [Mobility Radeon HD 2600 XT/2700] | |
1002 | 9586 | RV630 XT [Radeon HD 2600 XT AGP] | |
1002 | 9587 | RV630 PRO [Radeon HD 2600 PRO AGP] | |
1002 | 9588 | RV630 XT [Radeon HD 2600 XT] | |
1002 | 9589 | RV630 PRO [Radeon HD 2600 PRO] | |
1002 | 958a | RV630 [Radeon HD 2600 X2] | |
1002 | 958b | RV630/M76 [Mobility Radeon HD 2600 XT] | |
1002 | 958c | RV630 GL [FireGL V5600] | |
1002 | 958d | RV630 GL [FireGL V3600] | |
1002 | 958e | ||
1002 | 958f | ||
1002 | 9590 | ||
1002 | 9591 | RV635/M86 [Mobility Radeon HD 3650] | |
1002 | 9593 | RV635/M86 [Mobility Radeon HD 3670] | |
1002 | 9595 | RV635/M86 GL [Mobility FireGL V5700] | |
1002 | 9596 | RV635 PRO [Radeon HD 3650 AGP] | |
1002 | 9597 | RV635 PRO [Radeon HD 3650 AGP] | |
1002 | 9598 | RV635 [Radeon HD 3650/3750/4570/4580] | |
1002 | 9599 | RV635 PRO [Radeon HD 3650 AGP] | |
1002 | 959b | ||
1002 | 95c0 | RV620 PRO [Radeon HD 3470] | |
1002 | 95c2 | RV620/M82 [Mobility Radeon HD 3410/3430] | |
1002 | 95c4 | RV620/M82 [Mobility Radeon HD 3450/3470] | |
1002 | 95c5 | RV620 LE [Radeon HD 3450] | |
1002 | 95c6 | RV620 LE [Radeon HD 3450 AGP] | |
1002 | 95c7 | ||
1002 | 95c9 | RV620 LE [Radeon HD 3450 PCI] | |
1002 | 95cc | RV620 GL [FirePro V3700] | |
1002 | 95cd | RV620 GL [FirePro 2450] | |
1002 | 95ce | ||
1002 | 95cf | RV620 GL [FirePro 2260] | |
1002 | 960f | RS780 HDMI Audio [Radeon 3000/3100 / HD 3200/3300] | |
1002 | 9610 | RS780 [Radeon HD 3200] | |
1002 | 9611 | RS780C [Radeon 3100] | |
1002 | 9612 | RS780M [Mobility Radeon HD 3200] | |
1002 | 9613 | RS780MC [Mobility Radeon HD 3100] | |
1002 | 9614 | RS780D [Radeon HD 3300] | |
1002 | 9615 | RS780E [Radeon HD 3200] | |
1002 | 9616 | RS780L [Radeon 3000] | |
1002 | 9640 | Sumo [Radeon HD 6550D] | |
1002 | 9641 | Sumo [Radeon HD 6620G] | |
1002 | 9642 | SuperSumo [Radeon HD 6370D] | |
1002 | 9643 | SuperSumo [Radeon HD 6380G] | |
1002 | 9644 | SuperSumo [Radeon HD 6410D] | |
1002 | 9645 | SuperSumo [Radeon HD 6410D] | |
1002 | 9647 | Sumo [Radeon HD 6520G] | |
1002 | 9648 | Sumo [Radeon HD 6480G] | |
1002 | 9649 | SuperSumo [Radeon HD 6480G] | |
1002 | 964a | Sumo [Radeon HD 6530D] | |
1002 | 964b | Sumo | |
1002 | 964c | Sumo | |
1002 | 964e | Sumo | |
1002 | 964f | Sumo | |
1002 | 970f | RS880 HDMI Audio [Radeon HD 4200 Series] | |
1002 | 9710 | RS880 [Radeon HD 4200] | |
1002 | 9711 | ||
1002 | 9712 | RS880M [Mobility Radeon HD 4225/4250] | |
1002 | 9713 | RS880M [Mobility Radeon HD 4100] | |
1002 | 9714 | RS880 [Radeon HD 4290] | |
1002 | 9715 | RS880 [Radeon HD 4250] | |
1002 | 9723 | ||
1002 | 9802 | Wrestler [Radeon HD 6310] | Radeon HD 6250 too? |
1002 | 9803 | Wrestler [Radeon HD 6310] | |
1002 | 9804 | Wrestler [Radeon HD 6250] | |
1002 | 9805 | Wrestler [Radeon HD 6250] | |
1002 | 9806 | Wrestler [Radeon HD 6320] | |
1002 | 9807 | Wrestler [Radeon HD 6290] | |
1002 | 9808 | Wrestler [Radeon HD 7340] | |
1002 | 9809 | Wrestler [Radeon HD 7310] | |
1002 | 980a | Wrestler [Radeon HD 7290] | |
1002 | 9830 | Kabini [Radeon HD 8400 / R3 Series] | |
1002 | 9831 | Kabini [Radeon HD 8400E] | |
1002 | 9832 | Kabini [Radeon HD 8330] | |
1002 | 9833 | Kabini [Radeon HD 8330E] | |
1002 | 9834 | Kabini [Radeon HD 8210] | |
1002 | 9835 | Kabini [Radeon HD 8310E] | |
1002 | 9836 | Kabini [Radeon HD 8280 / R3 Series] | |
1002 | 9837 | Kabini [Radeon HD 8280E] | |
1002 | 9838 | Kabini [Radeon HD 8240 / R3 Series] | |
1002 | 9839 | Kabini [Radeon HD 8180] | |
1002 | 983a | ||
1002 | 983b | ||
1002 | 983c | ||
1002 | 983d | Temash [Radeon HD 8250/8280G] | |
1002 | 983e | ||
1002 | 983f | ||
1002 | 9840 | Kabini HDMI/DP Audio | |
1002 | 9850 | Mullins [Radeon R3 Graphics] | |
1002 | 9851 | Mullins [Radeon R4/R5 Graphics] | |
1002 | 9852 | Mullins [Radeon R2 Graphics] | |
1002 | 9853 | Mullins [Radeon R2 Graphics] | |
1002 | 9854 | Mullins [Radeon R3E Graphics] | |
1002 | 9855 | Mullins [Radeon R6 Graphics] | |
1002 | 9856 | Mullins [Radeon R1E/R2E Graphics] | |
1002 | 9857 | Mullins [Radeon APU XX-2200M with R2 Graphics] | |
1002 | 9858 | Mullins | |
1002 | 9859 | Mullins | |
1002 | 985a | Mullins | |
1002 | 985b | Mullins | |
1002 | 985c | Mullins | |
1002 | 985d | Mullins | |
1002 | 985e | Mullins | |
1002 | 985f | Mullins | |
1002 | 9874 | Wani [Radeon R5/R6/R7 Graphics] | |
1002 | 9890 | Amur | |
1002 | 98c0 | Nolan | |
1002 | 98e4 | Stoney [Radeon R2/R3/R4/R5 Graphics] | |
1002 | 9900 | Trinity [Radeon HD 7660G] | |
1002 | 9901 | Trinity [Radeon HD 7660D] | AMD A10-5800K CPU |
1002 | 9902 | Trinity HDMI Audio Controller | |
1002 | 9903 | Trinity [Radeon HD 7640G] | |
1002 | 9904 | Trinity [Radeon HD 7560D] | |
1002 | 9905 | Trinity GL [FirePro A300] | |
1002 | 9906 | Trinity GL [FirePro A320] | |
1002 | 9907 | Trinity [Radeon HD 7620G] | |
1002 | 9908 | Trinity [Radeon HD 7600G] | |
1002 | 9909 | Trinity [Radeon HD 7500G] | |
1002 | 990a | Trinity [Radeon HD 7500G] | |
1002 | 990b | Richland [Radeon HD 8650G] | |
1002 | 990c | Richland [Radeon HD 8670D] | |
1002 | 990d | Richland [Radeon HD 8550G] | |
1002 | 990e | Richland [Radeon HD 8570D] | |
1002 | 990f | Richland [Radeon HD 8610G] | |
1002 | 9910 | Trinity [Radeon HD 7660G] | |
1002 | 9913 | Trinity [Radeon HD 7640G] | |
1002 | 9917 | Trinity [Radeon HD 7620G] | |
1002 | 9918 | Trinity [Radeon HD 7600G] | |
1002 | 9919 | Trinity [Radeon HD 7500G] | |
1002 | 991e | Bishop [Xbox One S APU] | |
1002 | 9920 | Liverpool [Playstation 4 APU] | |
1002 | 9921 | Liverpool HDMI/DP Audio Controller | |
1002 | 9922 | Starshp | |
1002 | 9923 | Starsha2 [Kingston/Clayton] | |
1002 | 9924 | Gladius | |
1002 | 9925 | Kingston/Clayton/Jupiter/Gladius/Montego HDMI Controller | |
1002 | 9926 | Jupiter | |
1002 | 9927 | ||
1002 | 9928 | ||
1002 | 9929 | ||
1002 | 992a | ||
1002 | 992b | ||
1002 | 992c | ||
1002 | 992d | ||
1002 | 992e | ||
1002 | 992f | ||
1002 | 9930 | ||
1002 | 9931 | ||
1002 | 9932 | ||
1002 | 9933 | ||
1002 | 9934 | ||
1002 | 9935 | ||
1002 | 9936 | ||
1002 | 9937 | ||
1002 | 9938 | ||
1002 | 9939 | ||
1002 | 993a | ||
1002 | 993b | ||
1002 | 993c | ||
1002 | 993d | ||
1002 | 993e | ||
1002 | 993f | ||
1002 | 9990 | Trinity 2 [Radeon HD 7520G] | |
1002 | 9991 | Trinity 2 [Radeon HD 7540D] | |
1002 | 9992 | Trinity 2 [Radeon HD 7420G] | |
1002 | 9993 | Trinity 2 [Radeon HD 7480D] | |
1002 | 9994 | Trinity 2 [Radeon HD 7400G] | |
1002 | 9995 | Richland [Radeon HD 8450G] | |
1002 | 9996 | Richland [Radeon HD 8470D] | |
1002 | 9997 | Richland [Radeon HD 8350G] | |
1002 | 9998 | Richland [Radeon HD 8370D] | |
1002 | 9999 | Richland [Radeon HD 8510G] | |
1002 | 999a | Richland [Radeon HD 8410G] | |
1002 | 999b | Richland [Radeon HD 8310G] | |
1002 | 999c | Richland [Radeon HD 8650D] | |
1002 | 999d | Richland [Radeon HD 8550D] | AMD Quad-Core A8-Series APU A8-6500T with Radeon HD 8550D |
1002 | 99a0 | Trinity 2 [Radeon HD 7520G] | |
1002 | 99a2 | Trinity 2 [Radeon HD 7420G] | |
1002 | 99a4 | Trinity 2 [Radeon HD 7400G] | |
1002 | aa00 | R600 HDMI Audio [Radeon HD 2900 GT/PRO/XT] | |
1002 | aa01 | RV635 HDMI Audio [Radeon HD 3650/3730/3750] | |
1002 | aa08 | RV630 HDMI Audio [Radeon HD 2600 PRO/XT / HD 3610] | |
1002 | aa10 | RV610 HDMI Audio [Radeon HD 2350 PRO / 2400 PRO/XT / HD 3410] | |
1002 | aa18 | RV670/680 HDMI Audio [Radeon HD 3690/3800 Series] | |
1002 | aa20 | RV635 HDMI Audio [Radeon HD 3650/3730/3750] | |
1002 | aa28 | RV620 HDMI Audio [Radeon HD 3450/3470/3550/3570] | |
1002 | aa30 | RV770 HDMI Audio [Radeon HD 4850/4870] | |
1002 | aa38 | RV710/730 HDMI Audio [Radeon HD 4000 series] | |
1002 | aa50 | Cypress HDMI Audio [Radeon HD 5830/5850/5870 / 6850/6870 Rebrand] | |
1002 | aa58 | Juniper HDMI Audio [Radeon HD 5700 Series] | |
1002 | aa60 | Redwood HDMI Audio [Radeon HD 5000 Series] | 5500, 5600 and mobile 5700 series |
1002 | aa68 | Cedar HDMI Audio [Radeon HD 5400/6300/7300 Series] | |
1002 | aa80 | Cayman/Antilles HDMI Audio [Radeon HD 6930/6950/6970/6990] | |
1002 | aa88 | Barts HDMI Audio [Radeon HD 6790/6850/6870 / 7720 OEM] | |
1002 | aa90 | Turks HDMI Audio [Radeon HD 6500/6600 / 6700M Series] | |
1002 | aa98 | Caicos HDMI Audio [Radeon HD 6450 / 7450/8450/8490 OEM / R5 230/235/235X OEM] | |
1002 | aaa0 | Tahiti HDMI Audio [Radeon HD 7870 XT / 7950/7970] | |
1002 | aab0 | Oland/Hainan/Cape Verde/Pitcairn HDMI Audio [Radeon HD 7000 Series] | |
1002 | aab8 | Tiran HDMI Audio | |
1002 | aac0 | Tobago HDMI Audio [Radeon R7 360 / R9 360 OEM] | |
1002 | aac8 | Hawaii HDMI Audio [Radeon R9 290/290X / 390/390X] | |
1002 | aad8 | Tonga HDMI Audio [Radeon R9 285/380] | |
1002 | aae0 | Baffin HDMI/DP Audio [Radeon RX 550 640SP / RX 560/560X] | |
1002 | aae8 | Fiji HDMI/DP Audio [Radeon R9 Nano / FURY/FURY X] | |
1002 | aaf0 | Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] | |
1002 | aaf8 | Vega 10 HDMI Audio [Radeon Vega 56/64] | |
1002 | ab00 | Baffin HDMI/DP Audio [Radeon RX 550 640SP / RX 560/560X] | |
1002 | ab08 | Polaris 22 HDMI Audio | |
1002 | ab10 | Lexa HDMI Audio | |
1002 | ab18 | Vega 12 HDMI Audio | |
1002 | ab20 | Vega 20 HDMI Audio [Radeon VII] | |
1002 | ab38 | Navi 10 HDMI Audio | |
1002 | ac00 | Theater 506 World-Wide Analog Decoder | |
1002 | ac01 | Theater 506 World-Wide Analog Decoder | |
1002 | ac02 | TV Wonder HD 600 PCIe | |
1002 | ac03 | Theater 506 PCIe | |
1002 | ac04 | Theater 506 USB | |
1002 | ac05 | Theater 506 USB | |
1002 | ac06 | Theater 506 External USB | |
1002 | ac07 | Theater 506 External USB | |
1002 | ac08 | Theater 506A World-Wide Analog Decoder + Demodulator | |
1002 | ac09 | Theater 506A World-Wide Analog Decoder + Demodulator | |
1002 | ac0a | Theater 506A PCIe | |
1002 | ac0b | Theater 506A PCIe | |
1002 | ac0c | Theater 506A USB | |
1002 | ac0d | Theater 506A USB | |
1002 | ac0e | Theater 506A External USB | |
1002 | ac0f | Theater 506A External USB | |
1002 | ac12 | Theater HD T507 (DVB-T) TV tuner/capture device | |
1002 | ad08 | ||
1002 | ad10 | ||
1002 | ad18 | ||
1002 | ad20 | ||
1002 | ad28 | ||
1002 | ad30 | ||
1002 | ad38 | ||
1002 | ad40 | ||
1002 | ad48 | ||
1002 | ad50 | ||
1002 | ad58 | ||
1002 | ad68 | ||
1002 | ad70 | ||
1002 | ad78 | ||
1002 | ad80 | ||
1002 | ad98 | ||
1002 | cab0 | RS100 Host Bridge | |
1002 | cab2 | RS200 Host Bridge | |
1002 | cab3 | RS250 Host Bridge | |
1002 | cbb2 | RS200 Host Bridge |
AMD kext支持列表
AMD7000Controller
原生驱动显卡列表如下。
1 | 0x67901002 0x67981002 0x679A1002 0x679E1002 0x67801002 0x68201002 0x68211002 0x68231002 0x68251002 0x68271002 0x682B1002 0x682D1002 0x682F1002 0x68351002 0x68391002 0x683B1002 0x683D1002 0x683F1002 0x68001002 0x68011002 0x68061002 0x68081002 0x68101002 0x68181002 0x68191002 |
通过Fake ID可驱动的显卡列表如下。
1 | 0x67901002: Unknown |
AMD8000Controller
原生驱动显卡列表如下。
1 | 0x66401002 0x66411002 0x66461002 0x66471002 0x66501002 0x66511002 0x665C1002 0x665D1002 0x67B01002 |
通过Fake ID可驱动的显卡列表如下。
1 | 0x66401002: Saturn XT ( FirePro M6100 ) |
AMD9000Controller
原生驱动显卡列表如下。
1 | 0x69201002 0x69211002 0x69301002 0x69381002 0x69391002 0x73001002 0x730F1002 |
通过Fake ID可驱动的显卡列表如下。
1 | 0x69201002: Unknown |
AMD9500Controller
原生驱动显卡列表如下。
1 | 0x67E01002 0x67E31002 0x67E81002 0x67EB1002 0x67EF1002 0x67FF1002 0x67E11002 0x67E71002 0x67E91002 0x67C01002 0x67C11002 0x67C21002 0x67C41002 0x67C71002 0x67DF1002 0x67D01002 0x67C81002 0x67C91002 0x67CA1002 0x67CC1002 0x67CF1002 |
通过Fake ID可驱动的显卡列表如下。
1 | 0x67E01002: Baffin ( Radeon PRO WX 4170 ) |
AMD10000Controller
原生驱动显卡列表如下。
1 | 0x68601002 0x68611002 0x68621002 0x68631002 0x68641002 0x68671002 0x68681002 0x68691002 0x686A1002 0x686B1002 0x686C1002 0x686D1002 0x686E1002 0x687F1002 0x69A01002 0x69A11002 0x69A21002 0x69A31002 0x69AF1002 0x66A01002 0x66A11002 0x66A21002 0x66A31002 0x66A71002 0x66AF1002 |
通过Fake ID可驱动的显卡列表如下。
1 | 0x68601002: Vega 10 ( Radeon Instinct MI25 ) |
AMDRadeonX4000
原生驱动显卡列表如下。
1 | 0x67E01002 0x67E31002 0x67E81002 0x67EB1002 0x67EF1002 0x67FF1002 0x67E11002 0x67E71002 0x67E91002 |
通过Fake ID可驱动的显卡列表如下。
1 | 0x67E01002: Baffin ( Radeon PRO WX 4170 ) |
AMDRadeonX5000
原生驱动显卡列表如下。
1 | 0x68601002 0x68611002 0x68621002 0x68631002 0x68641002 0x68671002 0x68681002 0x68691002 0x686A1002 0x686B1002 0x686D1002 0x686E1002 0x687F1002 0x686C1002 |
通过Fake ID可驱动的显卡列表如下。
1 | 0x68601002: Vega 10 ( Radeon Instinct MI25 ) |
Nvidia支持列表
Turing和Volta GPU在任何版本的macOS中均不支持。Pascal和Maxwell在High Sierra中停止支持,同时它们需要WebDriver。
各型号兼容性列表如下。
1 | https://sites.google.com/view/hardhack/videocards/nvidia-graphics |
架构 | 最早支持版本 | 最后支持版本 | 型号 | 备注 |
---|---|---|---|---|
GeForce 6 (6xxx) | 10.2.x | 10.7.5 | 6600 GT | 需要32位内核和NVCAP修补 |
GeForce 7 (7xxx) | 10.4.x | 10.7.5 | 7600 GT7300 GTFX 4500 | 需要32位内核和NVCAP修补 |
GeForce 8 (8xxx) | 10.5 | 10.13.6 | GeForce 8800FX 5600 | |
GeForce 9 (9xxx) | 10.5 | 10.13.6 | 9800 GT9600 GT9400 GT9300 GT | |
Tesla (1xx, 2xx, 3xx) | 10.4.x | 10.13.6 | GT 340GT 330GT 320GTX 285GTX 280GTX 275GTX 260GT 240GT 230GT 220GT 140GT 130GT 120 | 需要NVCAP修补 |
Tesla (8XXX) | 10.13.6 | |||
Tesla (7XXX) | 10.11.6 | |||
Tesla V2 | 10.5.x | 10.13.6 | 需要NVCAP修补 | |
Fermi(GF108/GF117/GF119, 4xx, 5xx) | 10.7.x | 10.13.6 | GT 730(GF108变体)GT 720AGT 710(GF119变体)GT 705GT 640(GF108和GF116)GT 630(GF108变体GT 620GT 610GTX 570GTX 470 | 需要NVCAP修补大部分只可到10.12 |
Kepler(6XX/7XX) | 10.7.x | 至今 | GTX Titan(GK 110 Maxwell内核)GTX Titan Black(GK 110 Maxwell内核)GTX Titan Z(双核显卡,但仅有单核可用)GTX 780 TiGTX 780GTX 770GTX 760 TiGTX 760GT 740(GK107变体)GT 730(GK208变体)GT 720GT 710(GK208变体)GTX 690(双核显卡,但仅有单核可用)GTX 680GTX 670GTX 660 TiGTX 660(必须运行GK 104内核而非GK 106)GTX 650(GK107变体)GT 640(Kepler版,GK 107/208内核)GT 635GT 630(Kepler版,GK 107/208内核)Quadro K6000Quadro K5200Quadro K5000Quadro K4200Quadro K2000DQuadro K2000Quadro K600Quadro K420Quadro 410NVS 510 | 启动参数shikigva=40将boardID设置为iMac14,2,以获得更好的Nvidia支持 |
Kepler V2 | 10.8.x | 至今 | ||
Maxwell(9XX, 745, 750/ti) | 10.10.x | 10.13.6 | GTX Titan X(GM 200 Maxwell内核)GTX 980 TiGTX 980GTX 970GTX 960GTX 950GTX 750 TiGTX 750GTX 745Quadro M6000Quadro M5000Quadro M4000Quadro M2000Quadro K2200Quadro K1200Quadro K620 | 需要WebDriver启动参数shikigva=40将boardID设置为iMac14,2,以获得更好的Nvidia支持启动参数nvda_drv=1以启用WebDriver |
Pascal(10XX) | 10.12.4 | 10.13.6 | GTX Titan X(GP 102-400 Pascal内核)GTX Titan Xp(GP 102-450 Pascal内核)GTX 1080 TiGTX 1080GTX 1070 TiGTX 1070GTX 1060(GP104/GDDR5X不支持WebDriver)GTX 1050 TiGTX 1050GT 1030Quadro GP100Quadro P6000Quadro P5000Quadro P4000Quadro P2000Quadro P1000Quadro P620Quadro P600Quadro P400 | 需要WebDriver启动参数shikigva=40将boardID设置为iMac14,2,以获得更好的Nvidia支持启动参数nvda_drv=1以启用WebDriver |
Kepler(GK106变体) | GT 740(GK106变体)GTX 660GTX 650 TiGTX 650GTX 645K4000 | 具有严重的有关VRAM泄漏的问题,出现失真和整体不稳定的情况 | ||
Volta | Titan VTitan V CEO版 | 无可用驱动 | ||
Turing(20XX/16XX) | Titan RTXRTX 2080 TiRTX 2080 SuperRTX 2080RTX 2070 SuperRTX 2070RTX 2060 SuperRTX 2060GTX 1660 TiGTX 1660GTX 1650Quadro RTX 8000Quadro RTX 6000Quadro RTX 5000Quadro RTX 4000 | 无可用驱动 | ||
Ampere(30XX) | RTX 3090RTX 3080RTX 3070 | 无可用驱动 |
不支持列表
不应使用HIS和VisionTek的所有显卡,XFX的VEGA和590/560/460型号,Powercolor,MSI的Navi型号(Vega和Polaris均可用)。XFX可在CSM/Legacy模式关闭时使用。
1 | # 完全不支持 |
声卡
AppleALC编码器支持
AppleALC支持的编码器如下。注意,编解码器一般不为ALC 3XXX,如ALC3601的真实名称为ALC 671。
生产商 | 型号 | Revision和layout | 最早支持版本 | 最后支持版本 |
---|---|---|---|---|
AnalogDevices | AD1984 | 0x100400, layout 11 | 10.9 | — |
AnalogDevices | AD1984A | 0x100400, layout 11, 13, 44 | 10.9 | — |
AnalogDevices | AD1988A | layout 12 | 10.9 | — |
AnalogDevices | AD1988B | layout 5, 7, 12 | 10.9 | — |
AnalogDevices | AD2000B | layout 5, 7 | 10.9 | — |
Creative | CA0132 | 0x100918 layout 0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 99 | 10.9 | — |
CirrusLogic | CS4210 | 0x100101 layout 13 | 10.9 | — |
CirrusLogic | CS4213 | 0x100100 layout 28 | 10.9 | — |
Conexant | CX8050 | layout 3, 13 | 10.12 | — |
Conexant | CX8070/CX11880 | layout 15 | 10.9 | — |
Conexant | CX8150 | layout 21, 22 | 10.9 | — |
Conexant | CX8200 | layout 3, 15, 21, 23, 80 | 10.12 | — |
Conexant | CX8400 | layout 12 | 10.9 | — |
Conexant | CX20561 | 0x100000, layout 11 | 10.9 | — |
Conexant | CX20583 | layout 3 | 10.9 | — |
Conexant | CX20585 | layout 3, 13 | 10.9 | — |
Conexant | CX20588 | layout 3 | 10.9 | — |
Conexant | CX20590 | 0x100000, 0x100002, 0x100003, layout 3, 12, 13, 14, 28 | 10.9 | — |
Conexant | CX20632 | layout 20, 23, 28 | 10.9 | — |
Conexant | CX20641 | layout 11, 13 | 10.9 | — |
Conexant | CX20642 | layout 11, 13 | 10.9 | — |
Conexant | CX20722 | layout 3 | 10.12 | — |
Conexant | CX20724 | layout 3, 13 | 10.9 | — |
Conexant | CX20751/CX20752 | layout 3, 21, 28 | 10.9 | — |
Conexant | CX20753/CX20754 | layout 3, 14, 15, 21 | 10.12 | — |
Conexant | CX20755 | layout 3 | 10.9 | — |
Conexant | CX20756 | layout 3, 13 | 10.9 | — |
Conexant | CX20757 | layout 3, 28 | 10.9 | — |
IDT | IDT92HD66C3/65 | layout 3 | 10.9 | — |
IDT | IDT92HD71B7X | layout 3 | 10.9 | — |
IDT | IDT92HD73C1X5 | layout 19, 21 | 10.9 | — |
IDT | IDT92HD73E1X5 | layout 15 | 10.9 | — |
IDT | IDT92HD75B2X5 | layout 3 | 10.9 | — |
IDT | IDT92HD75B3X5 | layout 3, 11 | 10.9 | — |
IDT | IDT92HD99BXX | layout 3 | 10.9 | — |
IDT | IDT92HD87B1 | layout 3 | 10.9 | — |
IDT | IDT92HD81B1C5 | layout 3, 11 | 10.9 | — |
IDT | IDT92HD81B1X5 | layout 3, 11, 12, 20, 21, 28 | 10.9 | — |
IDT | IDT92HD87B1 | layout 3 | 10.9 | — |
IDT | IDT92HD87B1/3 | layout 12, 13 | 10.9 | — |
IDT | IDT92HD87B2/4 | layout 13 | 10.9 | — |
IDT | IDT92HD90BXX | layout 3, 12 | 10.9 | — |
IDT | IDT92HD91BXX | 0x100102, 0x100303 layout 3, 12, 13, 33, 84 | 10.9 | — |
IDT | IDT92HD93BXX | 0x100203, layout 12 | 10.9 | — |
IDT | IDT92HD95 | layout 11, 12 | 10.9 | — |
IDT | IDT92HD99BXX | layout 3 | 10.9 | — |
Realtek | ALC215 | layout 18 | 10.9 | - |
Realtek | ALC221 | layout 11, 15, 88 | 10.8 | — |
Realtek | ALC222 | layout 11 | 10.8 | - |
Realtek | ALC225/ALC3253 | layout 28, 30, 33 | 10.9 | — |
Realtek | ALC230 | layout 13, 20 | 10.9 | — |
Realtek | ALC233/ALC3236 | layout 3, 4, 5, 13, 21, 27, 28, 29, 32, 33 | 10.9 | — |
Realtek | ALC235 | layout 3, 11, 12, 14, 15, 16, 17, 21, 22, 24, 28, 35, 37, 99 | 10.9 | — |
Realtek | ALC236 | 0x100001, 0x100002 layout 3, 11, 12, 13, 14, 15, 16, 18, 54, 99 | 10.9 | — |
Realtek | ALC245 | layout 11, 12, 13 | 10.9 | - |
Realtek | ALC255/ALC3234 | layout 3, 11, 13, 15, 17, 18, 20, 21, 27, 28, 29, 30, 31, 66, 71, 86, 99, 100 | 10.9 | — |
Realtek | ALC256/ALC3246 | layout 5, 11, 13, 14, 16, 17, 19, 21, 22, 23, 28, 56, 57, 66, 67, 69, 76, 97 | 10.9 | — |
Realtek | ALC257 | layout 11, 18, 86, 99, 100 | 10.9 | — |
Realtek | ALC260 | layout 11, 12 | 10.9 | — |
Realtek | ALC262 | 0x100202 layout 7, 11, 12, 13, 28, 66 | 10.9 | — |
Realtek | ALC268 | layout 3 | 10.9 | — |
Realtek | ALC269/ALC271X | 0x100004, 0x100100, 0x100202, 0x100203 layout 1-24, 27-33, 35, 40, 44, 45, 47, 55, 58, 66, 76, 77, 88, 91, 93, 99, 100, 127, 188 | 10.8 | — |
Realtek | ALC270 | 0x100100, layout 3, 4, 21, 27, 28 | 10.9 | — |
Realtek | ALC272 | 0x100001, layout 3, 11, 12, 18, 21 | 10.9 | — |
Realtek | ALC274 | 0x100004, layout 21 | 10.9 | — |
Realtek | ALC275 | 0x100005, 0x100008, layout 3, 13, 28 | 10.9 | — |
Realtek | ALC280 | layout 3, 4, 11, 13, 15, 16, 17, 21 | 10.9 | — |
Realtek | ALC282 | 0x100003, layout 3, 4, 13, 22, 27, 28, 29, 41, 43, 51, 76, 86, 127 | 10.8 | — |
Realtek | ALC283 | layout 1, 3, 11, 13, 15, 44, 45, 66, 88 | 10.9 | — |
Realtek | ALC284 | layout 3 | 10.9 | — |
Realtek | ALC285 | layout 11, 21, 31, 52, 61, 71 | 10.9 | — |
Realtek | ALC286 | 0x100002, 0x100003 layout 3, 11 | 10.9 | — |
Realtek | ALC287 | layout 11 | 10.9 | - |
Realtek | ALC288 | layout 3, 13, 23 | 10.9 | — |
Realtek | ALC289 | layout 11, 23 | 10.9 | — |
Realtek | ALC290/ALC3241 | layout 3, 4, 10, 15, 28 | 10.9 | — |
Realtek | ALC292 | layout 12, 15, 18, 28, 32, 55 | 10.9 | — |
Realtek | ALC293 | layout 11, 28, 29 | 10.9 | — |
Realtek | ALC294 | layout 11, 12, 13, 21, 22, 28, 66 | 10.9 | — |
Realtek | ALC295 | layout 1, 3, 13, 14, 15, 21, 22, 23, 24, 28, 77 | 10.9 | — |
Realtek | ALC298 | 0x100101, 0x100103 layout 3, 11, 13, 16, 21, 22, 28, 29, 30, 32, 47, 66, 72, 99 | 10.9 | — |
Realtek | ALC299 | 0x100002 layout 21, 22 | 10.9 | — |
Realtek | ALC662 | 0x100101, 0x100300 layout 5, 7, 11, 12, 13, 15, 16, 17, 18, 66 | 10.9 | — |
Realtek | ALC663 | 0x100001, 0x100002, layout 3, 4, 15, 28, 99 | 10.9 | — |
Realtek | ALC665 | layout 12, 13 | 10.9 | — |
Realtek | ALC668 | 0x100003, layout 3, 20, 27, 28, 29 | 10.9 | — |
Realtek | ALC670 | 0x100002, layout 12 | 10.9 | — |
Realtek | ALC671 | layout 12, 15, 16, 88 | 10.9 | — |
Realtek | ALC700 | layout 11 | 10.9 | — |
Realtek | ALC882 | 0x100101, layout 5, 7 | 10.9 | — |
Realtek | ALC883 | 0x100002, layout 7 | 10.9 | — |
Realtek | ALC885 | 0x100101, 0x100103 layout 1, 12, 15 | 10.9 | — |
Realtek | ALC887 | 0x100202, 0x100302, layout 1, 2, 3, 5, 7, 11, 12, 13, 17, 18, 20, 33, 40, 50, 52, 53, 87, 99 | 10.9 | — |
Realtek | ALC888/ALC1200 | 0x100101, 0x100001, 0x100202, 0x100302 layout 1, 2, 3, 4, 5, 7, 11, 27, 28, 29 | 10.9 | — |
Realtek | ALC889 | 0x100004, layout 1, 2, 3, 11, 12 | 10.9 | — |
Realtek | ALC891/ALC867 | 0x100002, layout 11, 13 | 10.9 | — |
Realtek | ALC892 | 0x100302, layout 1, 2, 3, 4, 5, 7, 12, 15, 16, 17, 18, 20, 22, 28, 31, 90, 92, 97, 99, 100 | 10.9 | — |
Realtek | ALC898/ALC899 | 0x100003, layout 1, 2, 3, 5, 7, 11, 13, 65, 66, 98, 99, 101 | 10.9 | — |
Realtek | ALC1150 | 0x100001, layout 1, 2, 3, 5, 7, 11, 99 | 10.8 | — |
Realtek | ALC1220 | 0x100003, layout 1, 2, 3, 5, 7, 11, 13, 15, 16, 21, 27, 28, 29, 30, 34, 99 | 10.11 | — |
Realtek | ALCS1200A | layout 1, 2, 3, 11, 49, 50, 51 | 10.8 | — |
Realtek | ALCS1220A | layout 1, 2, 3, 5, 7, 11, 20, 21 | 10.11 | — |
SigmaTel | STAC9200 | 0x102201, layout 11 | 10.8 | — |
SigmaTel | STAC9872AK | 0x100201, layout 12 | 10.8 | — |
VIA | VT1705 | 0x100000, layout 21 | 10.9 | — |
VIA | VT1802 | 0x100000, layout 3, 33, 65 | 10.9 | — |
VIA | VT2020/VT2021 | 0x100100, layout 5, 7, 9, 13 | 10.9 | — |
AMD | Radeon 290/290X | 10.11 | — | |
AMD | Radeon R9 Fury/R9 Fury X | 10.11 | — | |
AMD | Vega-M | 10.11 | — | |
AMDZEN | Controller 0x1457 | — | ||
AMDZEN | Controller 0x1487 | — | ||
AMDZEN | Controller 0x15E3 | — | ||
Intel | HD4600 | 10.9 | — | |
Intel | Atom Z36xxx/Z37xxx | 10.9 | — | |
Intel | Z97 controller | 10.9 | — | |
Intel | X99 controller 0x8D20 | 10.9 | — | |
Intel | X99 controller 0x8D21 | 10.9 | — | |
Intel | WhiskeyLake | 10.12 | — | |
Intel | 200 Series Mobile | 10.12 | — | |
Intel | 200 Series | 10.12 | — | |
Intel | 300 Series | 10.12 | — | |
Nvidia | GK208 | 10.13.4 | — | |
Nvidia | GM200 | 10.13.4 | — | |
Nvidia | GM204 | 10.13.4 | — | |
Nvidia | GM206 | 10.13.4 | — | |
Nvidia | GP102 | 10.13.4 | — | |
Nvidia | GP104 | 10.13.4 | — | |
Nvidia | GP106 | 10.13.4 | — | |
Nvidia | GP107 | 10.13.4 | — | |
Nvidia | GP108 | 10.13.4 | — | |
Nvidia | GTX860M | 10.13 | — |
硬盘
无线网卡
Broadcom
低版本支持高版本系统的无线网卡。
1 | # 11(+) |
不支持列表
1 | # Broadcom |
其它硬件
指纹识别、Windows Hello人脸识别、英特尔智能声音技术将无法工作。
SMBIOS列表
CPU层级表示如下。
字母 | 类型 |
---|---|
Y | 移动端(低端) |
U/M | 移动端(中端) |
H/QM/HQ | 移动端(高端) |
S | 桌面端 |
EP/SP/W/X | HEDT/服务器端 |
注意,主板号board-id仅适用于Intel Mac,不适用于PowerPC和ARM。
Apple CPU不依赖ACPI/UEFI,固件中不包含DeviceProperties,将iPad8,6用于iOS/iPadOS应用程序。
MacBook Pro
OpenCore不支持MacBookPro17,1。
型号标识符 | 描述 | 发布日期 | CPU Family | GPU(/ 为双显卡,, 为单显卡) |
最低macOS版本 | 最高macOS版本 | 部件号 | 主板号 | BIOS版本 | 备注 |
---|---|---|---|---|---|---|---|---|---|---|
MacBookPro17,1 | MacBook Pro 13寸 2020年 M1 | 2020年11月 | Apple M1 | 八核Apple图形卡 | 11.0.0(20A2411) | 至今 | MYD83xx/AMYD92xx/AMYDA2xx/AMYDC2xx/A | Apple M1芯片,型号标识符J293 | ||
MacBookPro16,3 | MacBook Pro 13寸 2020年初 2端口 | 2020年05月 | Coffee Lake(U) | Intel Iris Plus Graphics 645 | 10.15.4(19E2269) | 至今 | MXK32xx/AMXK52xx/AMXK62xx/AMXK72xx/A | Mac-E7203C0F68AA0004 | ||
MacBookPro16,2 | MacBook Pro 13寸 2020年初 4端口 | 2020年05月 | Ice Lake(U) | Intel Iris Plus Graphics | 10.15.4(19E2269) | 至今 | MWP42xx/AMWP52xx/AMWP62xx/AMWP72xx/AMWP82xx/A | Mac-5F9802EFE386AA28 | ||
MacBookPro16,4 | MacBook Pro 16寸 2019年末 | 2019年11月 | Coffee Lake(H) | AMD Radeon Pro 5600M | 10.15.1(19B2093) | 至今 | MVVJ2xx/AMVVK2xx/AMVVL2xx/AMVVM2xx/A | Mac-A61BADE1FDAD7B05 | ||
MacBookPro16,1 | MacBook Pro 16寸 2019年末 | 2019年11月 | Caffee Lake(H) | Intel UHD Graphics 630, AMD Radeon Pro 5300M/5500M | 10.15.1(19B2093) | 至今 | MVVJ2xx/AMVVK2xx/AMVVL2xx/AMVVM2xx/A | Mac-E1008331FDC96864 | ||
MacBookPro15,4 | MacBook Pro 13寸 2019年中期 2端口 | 2019年7月 | Coffee Lake(U) | Intel Iris Plus Graphics 645 | 10.14.5(18F2058) | 至今 | MUHN2xx/AMUHP2xx/aMUHQ2xx/AMUHR2xx/AMUHR2xx/B | Mac-53FDB3D8DB8CA971 | ||
MacBookPro15,3 | MacBook Pro 15寸 2019年中期 | 2019年5月 | Coffee Lake(H) | UHD630/Radeon Pro555X/560X, Radeon Pro Vega 16/20 | 10.14.1(18B3094) | 至今 | MV902xx/AMV912xx/AMV922xx/AMV932xx/AMV942xx/AMV952xx/A | Mac-1E7E29AD0135F9BC | ||
MacBookPro15,2 | MacBook Pro 13寸 2019年中期 4端口 | 2019年5月 | Coffee Lake(U) | Intel Iris Plus Graphics 655 | 10.14.6 | 至今 | MV962xx/AMV972xx/AMV982xx/AMV992xx/AMV9A2xx/A | Mac-827FB448E656EC26 | ||
MacBookPro15,1 | MacBook Pro 15寸 2019年中期 | 2019年5月 | Coffee Lake(H) | Intel UHD Graphics 630 | 10.14.6 | 至今 | MV902xx/AMV912xx/AMV922xx/AMV932xx/AMV942xx/AMV952xx/A | Mac-937A206F2EE63C01 | ||
MacBookPro15,2 | MacBook Pro 13寸 有触控条 2018年中期 | 2018年6月 | Coffee Lake(U) | Intel Iris Plus Graphics 655 | 10.13.6(17G2112) | 至今 | MR9Q2xx/AMR9R2xx/AMR9T2xx/AMR9U2xx/AMR9V2xx/A | Mac-827FB448E656EC26 | 最低要求 10.13.6 17G2208 | |
MacBookPro15,1 | MacBook Pro 15寸 有触控条 2018年中期 | 2018年6月 | Coffee Lake(H) | Intel UHD Graphics 630 | 10.13.6(17G2112) | 至今 | MR932xx/AMR942xx/AMR952xx/AMR962xx/AMR972xx/AMUQH2xx/A | Mac-937A206F2EE63C01 | 最低要求 10.13.6 17G2208 | |
MacBookPro14,3 | MacBook Pro 15寸 有触控条 2017年 | 2017年6月 | Kaby Lake(H) | HDs 630/Radeon Pro 555(/560) | 10.12.5(16F2073) | 至今 | MPTR2xx/AMPTT2xx/AMPTU2xx/AMPTV2xx/AMPTW2xx/AMPTX2xx/A | Mac-551B86E5744E2388 | ||
MacBookPro14,2 | MacBook Pro 13寸 有触控条 2017年 | 2017年6月 | Kaby Lake(U) | Iris Plus 650 | 10.12.5(16F2073) | 至今 | MPXV2xx/AMPXW2xx/AMPXX2xx/AMPXY2xx/AMQ002xx/AMQ012xx/A | Mac-CAD6701F7CEA0921 | ||
MacBookPro14,1 | MacBook Pro 13寸 无触控条 2017年 | 2017年6月 | Kaby Lake(U) | Iris Plus 640 | 10.12.5(16F2073) | 至今 | MPXQ2xx/AMPXR2xx/AMPXT2xx/AMPXU2xx/A | Mac-B4831CEBD52A0C4C | ||
MacBookPro13,3 | MacBook Pro 15寸 2016年末 | 2016年11月 | Skylake(H) | HD 530/Radeon Pro 450(/455/460) | 10.12.1(16B2659) | 至今 | MLH32xx/AMLH42xx/AMLH52xx/AMLW72xx/AMLW82xx/AMLW92xx/A | Mac-A5C67F76ED83108C | ||
MacBookPro13,2 | MacBook Pro 13寸 2016年末 有触控条 | 2016年11月 | Skylake(U) | Iris 550 | 10.12.1(16B2657) | 至今 | MLH12xx/AMLVP2xx/AMNQF2xx/AMNQG2xx/AMPDK2xx/AMPDL2xx/A | Mac-66E35819EE2D0D05 | ||
MacBookPro13,1 | MacBook Pro 13寸 2016年末 无触控条 | 2016年10月 | Skylake(U) | Iris 540 | 10.12(16A2323a) | 至今 | MLL42xx/AMLUQ2xx/A | Mac-473D31EABEB93F9B | ||
MacBookPro11,5 | MacBook Pro 15寸 2015年中 | 2015年5月 | Haswell(HQ) | Iris Pro 5200/Radeon R9 M370X | 10.10.3(14D2134) | 至今 | MJLQ2xx/AMJLT2xx/AMJLU2xx/A | Mac-06F11F11946D27C5 | ||
MacBookPro11,4 | MacBook Pro 15寸 2015年中 | 2015年5月 | Haswell(HQ) | Iris Pro 5200 | 10.10.3(14D2134) | 至今 | MJLQ2xx/AMJLT2xx/AMJLU2xx/A | Mac-06F11FD93F0323C5 | ||
MacBookPro12,1 | MacBook Pro 13寸 2015年初 | 2015年3月 | Broadwell(U) | Iris 6100 | 10.10.2(14C2507) | 至今 | MF839xx/AMF840xx/AMF841xx/AMF843xx/A | Mac-E43C1C25D4880AD6 | ||
MacBookPro11,3 | MacBook Pro 15寸 2014年中 | 2014年7月 | Haswell(HQ) | Iris Pro 5200/GeForce GT 750M | 10.9(13A3017) | 至今 | MGXC2xx/AMGXA2xx/A | Mac-2BD1B31983FE1663 | ||
MacBookPro11,2 | MacBook Pro 15寸 2014年中 | 2014年7月 | Haswell(HQ) | Iris Pro 5200 | 10.9(13A3017) | 至今 | MGXC2xx/AMGXA2xx/A | Mac-3CBD00234E554E41 | ||
MacBookPro11,1 | MacBook Pro 13寸 2014年中 | 2014年7月 | Haswell(U) | Iris 5100 | 10.9(13A2093) | 至今 | MGX72xx/AMGX82xx/AMGX92xx/A | Mac-189A3D4F975D5FFC | ||
MacBookPro11,3 | MacBook Pro 15寸 2013年末 | 2013年10月 | Haswell(HQ) | Iris Pro 5200/GeForce GT 750M | 10.9(13A3017) | 至今 | ME293xx/AME294xx/A | Mac-2BD1B31983FE1663 | ||
MacBookPro11,2 | MacBook Pro 15寸 2013年末 | 2013年10月 | Haswell(HQ) | Iris Pro 5200 | 10.9(13A3017) | 至今 | ME293xx/AME294xx/A | Mac-3CBD00234E554E41 | ||
MacBookPro11,1 | MacBook Pro 13寸 2013年末 | 2013年10月 | Haswell(U) | Iris 5100 | 10.9(13A2093) | 至今 | ME864xx/AME865xx/AME866xx/A | Mac-189A3D4F975D5FFC | ||
MacBookPro10,2 | MacBook Pro 13寸 2013年初 | 2013年2月 | Ivy Bridge(M) | HD 4000 | 10.8.5 | 至今 | MD212xx/AME662xx/A | Mac-AFD8A9D944EA4843 | ||
MacBookPro10,1 | MacBook Pro 15寸 2013年初 | 2013年2月 | Ivy Bridge(QM) | HD 4000/GeForce GT 650M | 10.8.5 | 至今 | ME664xx/AME665xx/A | Mac-C3EC7CD22292981F | ||
MacBookPro10,2 | MacBook Pro 13寸 Retina 2012年末 | 2012年10月 | Ivy Bridge(M) | HD 4000 | 10.8.2(12C2034) | 10.15.7 | MD212xx/AMD213xx/A | Mac-AFD8A9D944EA4843 | ||
MacBookPro10,1 | MacBook Pro 15寸 Retina 2012年中 | 2012年6月 | Ivy Bridge(QM) | HD 4000/GeForce GT 650M | 10.7.4(11E2068) | 10.15.7 | MC975xx/AMC976xx/A | Mac-C3EC7CD22292981F | ||
MacBookPro9,2 | MacBook Pro 13寸 2012年中 | 2012年6月 | Ivy Bridge(M) | HD 4000 | 10.7.3(11D2515) | 10.15.7 | MD101xx/AMD102xx/A | Mac-6F01561E16C75D06 | ||
MacBookPro9,1 | MacBook Pro 15寸 2012年中 | 2012年6月 | Ivy Bridge(QM) | HD 4000/GeForce GT 650M | 10.7.3(11D2097) | 10.15.7 | MD103xx/AMD104xx/A | Mac-4B7AC7E43945597E | ||
MacBookPro8,3 | MacBook Pro 17寸 2011年末 | 2011年10月 | Sandy Bridge(QM) | HD 3000/Radeon HD 6750M(/6770M) | 10.6.6(10J3210) | 10.13.6 | MD311xx/A | Mac-942459F5819B171B | ||
MacBookPro8,2 | MacBook Pro 15寸 2011年末 | 2011年10月 | Sandy Bridge(QM) | HD 3000/Radeon HD 6490M | 10.6.6(10J3210) | 10.13.6 | MD322xx/AMD318xx/A | Mac-94245A3940C91C80 | ||
MacBookPro8,1 | MacBook Pro 13寸 2011年末 | 2011年10月 | Sandy Bridge(M) | HD 3000 | 10.6.6(10J3210) | 10.13.6 | MD314xx/AMD313xx/A | Mac-94245B3640C91C81 | ||
MacBookPro8,3 | MacBook Pro 17寸 2011年初 | 2011年2月 | Sandy Bridge(QM) | HD 3000/Radeon HD 6750M | 10.6.6(10J3210) | 10.13.6 | MC725xx/A | Mac-942459F5819B171B | ||
MacBookPro8,2 | MacBook Pro 15寸 2011年初 | 2011年2月 | Sandy Bridge(QM) | HD 3000/Radeon HD 6490M(/6750M) | 10.6.6(10J3210) | 10.13.6 | MC723xx/AMC721xx/A | Mac-94245A3940C91C80 | ||
MacBookPro8,1 | MacBook Pro 13寸 2011年初 | 2011年2月 | Sandy Bridge(M) | HD 3000 | 10.6.6(10J3210) | 10.13.6 | MC724xx/AMC700xx/A | Mac-94245B3640C91C81 | MBP81.88Z.0047.B04.1102071707 | |
MacBookPro7,1 | MacBook Pro 13寸 2010年中 | 2010年4月 | Penryn(M) | GeForce 320M | 10.6.3(10D2125) | 10.13.6 | MC375xx/AMC374xx/A | Mac-F222BEC8 | MBP71.88Z.0039.B05.1003251322 | 出厂附送的10.6.3也支持 |
MacBookPro6,2 | MacBook Pro 15寸 2010年中 | 2010年4月 | Arrandale(M) | HD Graphics/GeForce GT 330M | 10.6.3(10D2094) | 10.13.6 | MC373xx/AMC372xx/AMC371xx/A | Mac-F22586C8 | ||
MacBookPro6,1 | MacBook Pro 17寸 2010年中 | 2010年4月 | Arrandale(M) | HD Graphics/GeForce GT 330M | 10.6.3(10D2063a) | 10.13.6 | MC024xx/A | Mac-F22589C8 | MBP61.88Z.0057.B0C.1007261552 | |
MacBookPro5,5 | MacBook Pro 13寸 2009年中 | 2009年6月 | Penryn | GeForce 9400M/9600M GT | 10.5.7(9J3050) | 10.11.6 | MB991xx/AMB990xx/A | Mac-F2268AC8 | MBP55.88Z.00AC.B03.0906151708 | |
MacBookPro5,4 | MacBook Pro 15寸 2009年中 | 2009年6月 | Penryn(M) | GeForce 9400M/9600M GT | 10.5.7(9J3050) | 10.11.6 | / | Mac-F22587A1 | ||
MacBookPro5,3 | MacBook Pro 15寸 2009年中 | 2009年6月 | Penryn(M) | GeForce 9400M/9600M GT | 10.5.7(9J3050) | 10.11.6 | MB985xx/AMB986xx/A | Mac-F22587C8 | MBP53.88Z.00AC.B03.0906151647 | |
MacBookPro5,3 | MacBook Pro 15寸 2.53 GHz 2009年中 | 2009年6月 | Penryn(M) | GeForce 9400M/9600M GT | 10.5.7(9J3050) | 10.11.6 | MC118xx/A | Mac-F22587C8 | MBP53.88Z.00AC.B03.0906151647 | |
MacBookPro5,2 | MacBook Pro 17寸 2009年中 | 2009年6月 | Penryn(M) | GeForce 9400M/9600M GT | 10.5.6(9G2141) | 10.11.6 | MC226xx/A | Mac-F2268EC8 | MBP52.88Z.008E.B05.0905042202 | |
MacBookPro5,2 | MacBook Pro 17寸 2009年初 | 2009年1月 | Penryn(M) | GeForce 9400M/9600M GT | 10.5.5(9F2114) | 10.11.6 | MB604xx/A | Mac-F2268EC8 | MBP52.88Z.008E.B05.0905042202 | |
MacBookPro5,1 | MacBook Pro 15寸 2008年末 | 2008年10月 | Penryn(M) | GeForce 9400M/9600M GT | 10.5.5(9F2114) | 10.11.6 | MB470xx/AMB471xx/A | Mac-F42D86C8Mac-F42D86A9 | MBP51.88Z.007E.B05.0803171226 | |
MacBookPro4,1 | MacBook Pro 17寸 2008年初 | 2008年10月 | Penryn(M) | GeForce 8600MG GT | 10.5.2(9C2018) | 10.11.6 | MB166xx/A | Mac-F42C89C8Mac-F42C86C8 | MBP41.88Z.00C1.B00.0802091544 | |
MacBookPro4,1 | MacBook Pro 15寸 2008年初 | 2008年10月 | Penryn(M) | GeForce 8600MG GT | 10.5.2(9C2018) | 10.11.6 | MB133xx/AMB134xx/A | Mac-F42C89C8Mac-F42C86C8 | MBP41.88Z.00C1.B00.0802091544 | |
MacBookPro3,1 | MacBook Pro 17寸 2.4/2.2 GHz | 2007年6月 | Merom(M) | GeForce 8600M GT | 10.4.9(8Q1058) | 10.11.6 | MA897xx/A | Mac-F4238BC8Mac-F42388C8 | MBP31.88Z.0070.B07.0803051658 | |
MacBookPro3,1 | MacBook Pro 15寸 2.4/2.2 GHz | 2007年6月 | Merom(M) | GeForce 8600M GT | 10.4.9(8Q1058) | 10.11.6 | MA895xx/A | Mac-F4238BC8Mac-F42388C8 | MBP31.88Z.0070.B07.0803051658 | |
MacBookPro2,2 | MacBook Pro 17寸 Core 2 Duo | 2006年10月 | Merom(M) | Radeon X1600 | 10.4.8(8N1037) | 10.7.5 | MA609xx/AMA610xx/A | Mac-F42187C8 | ||
MacBookPro2,1 | MacBook Pro 15寸 Core 2 Duo | 2006年10月 | Merom(M) | Radeon X1600 | 10.4.8(8N1051) | 10.7.5 | MA611xx/A | Mac-F42189C8 | ||
MacBookPro1,2 | MacBook Pro 17寸 镜面 | 2006年2/4月 | Yonah(M) | Radeon X1600 | 10.4.6(8I2032) | 10.6.8 | MA092xx/A | Mac-F42DBEC8 | ||
MacBookPro1,1 | MacBook Pro 15寸 镜面 | 2006年2/4月 | Yonah(M) | Radeon X1600 | 10.4.5(8G1453) | 10.6.8 | MA601xx/AMA463xx/A | Mac-F425BEC8 |
MacBook Air
OpenCore不支持MacBookAir10,1。
型号标识符 | 描述 | 发布日期 | CPU Family | GPU(/ 为双显卡,, 为单显卡) |
最低macOS版本 | 最高macOS版本 | 部件号 | 主板号 | 备注 |
---|---|---|---|---|---|---|---|---|---|
MacBookAir10,1 | MacBook Air 13寸 2020年 M1 | 2020年11月 | Apple M1 | 七/八核Apple图形卡 | 11.0.0(20A2411) | 至今 | MGN63xx/AMGN93xx/AMGND3xx/AMGN73xx/AMGNA3xx/AMGNE3xx/A | Apple M1芯片,型号标识符J313 | |
MacBookAir9,1 | MacBook Air 13寸 2020年初 | 2020年03月 | Ice Lake(Y) | Intel Iris Plus Graphics G4/G7 | 10.15.4(19E287) | 至今 | MVH22xx/AMVH42xx/AMVH52xx/AMWTJ2xx/AMWTK2xx/AMWTL2xx/A | Mac-0CFF9C7C2B63DF8D | |
MacBookAir8,2 | MacBook Air 13寸 2019年中期 | 2019年7月9日 | Kaby Lake | Intel UHD Graphics 617 | 10.14.6 | 至今 | MVFH2xx/AMVFJ2xx/AMVFK2xx/AMVFL2xx/AMVFM2xx/AMVFN2xx/AMVH62xx/AMVH82xx/A | ||
MacBookAir8,1 | MacBook Air 13寸 2018年 | 2018年10月 | Amber Lake(Y) | Intel UHD Graphics 617 | 10.14.6 | 至今 | MRE82xx/AMREA2xx/AMREE2xx/AMRE92xx/AMREC2xx/AMREF2xx/AMUQT2xx/AMUQU2xx/AMUQV2xx/A | Mac-112818653D3AABFC | |
MacBookAir7,2 | MacBook Air 13寸 2017年 | 2017年6月 | Broadwell(U) | HD 6000 | 10.12.6 | 至今 | MQD32xx/AMQD42xx/AMQD52xx/A | Mac-937CB26E2E02BB01 | |
MacBookAir7,2 | MacBook Air 13寸 2015年初 | 2015年3月 | Broadwell(U) | HD 6000 | 10.10.2(14C2507) | 至今 | MJVE2xx/AMJVG2xx/AMMGF2xx/AMMGG2xx/A | Mac-937CB26E2E02BB01 | |
MacBookAir7,1 | MacBook Air 11 2015年初 | 2015年3月 | Broadwell(U) | HD 6000 | 10.10.2(14C2507) | 至今 | MJVM2xx/AMJVP2xx/A | Mac-9F18E312C5C2BF0B | |
MacBookAir6,2 | MacBook Air 13寸 2014年初 | 2014年4月 | Haswell(U) | HD 5000 | 10.9.5 | 至今 | MD760xx/BMD761xx/B | Mac-7DF21CB3ED6977E5 | |
MacBookAir6,1 | MacBook Air 11寸 2014年初 | 2014年4月 | Haswell(U) | HD 5000 | 10.9.5 | 至今 | MD711xx/BMD712xx/B | Mac-35C1E88140C3E6CF | |
MacBookAir6,2 | MacBook Air 13寸 2013年中 | 2013年6月 | Haswell(U) | HD 5000 | 10.8.4(12E3067) | 至今 | MD760xx/AMD761xx/A | Mac-7DF21CB3ED6977E5 | |
MacBookAir6,1 | MacBook Air 11寸 2013年中 | 2013年6月 | Haswell(U) | HD 5000 | 10.8.4(12E3067) | 至今 | MD711xx/AMD712xx/A | Mac-35C1E88140C3E6CF | |
MacBookAir5,2 | MacBook Air 13寸 2012年中 | 2012年6月 | Ivy Bridge(U) | HD 4000 | 10.8.2(12C2034) | 10.15.7 | MD231xx/AMD232xx/A | Mac-2E6FAB96566FE58C | |
MacBookAir5,1 | MacBook Air 11寸 2012年中 | 2012年6月 | Ivy Bridge(U) | HD 4000 | 10.7.4(11E2520) | 10.15.7 | MD223xx/AMD224xx/A | Mac-66F35F19FE2A0D05 | |
MacBookAir4,2 | MacBook Air 13寸 2011年中 | 2011年7月 | Sandy Bridge(M) | HD 3000 | 10.7(11A2063) | 10.13.6 | MC965xx/AMC966xx/A | Mac-742912EFDBEE19B3 | |
MacBookAir4,1 | MacBook Air 11寸 2011年中 | 2011年7月 | Sandy Bridge(M) | HD 3000 | 10.7(11A2063) | 10.13.6 | MC968xx/AMC969xx/A | Mac-C08A6BB70A942AC2 | |
MacBookAir3,2 | MacBook Air 13寸 2010年末 | 2010年10月 | Penryn(M) | GeForce 320M | 10.6.4(10F3061) | 10.13.6 | MC503xx/AMC504xx/A | Mac-942C5DF58193131B | |
MacBookAir3,1 | MacBook Air 11寸 2010年末 | 2010年10月 | Penryn(M) | GeForce 320M | 10.6.4(10F3061) | 10.13.6 | MC505xx/AMC506xx/A | Mac-942452F5819B1C1B | |
MacBookAir2,1 | MacBook Air 13寸 2009年中 | 2009年6月 | Penryn(M) | GeForce 9400M | 10.5.6 | 10.11.6 | MC505xx/AMC233xx/AMC234xx/A | Mac-F42D88C8 | |
MacBookAir2,1 | MacBook Air 13寸 2008年末 | 2008年11月 | Penryn(M) | GeForce 9400M | 10.5.5 | 10.11.6 | MB543xx/AMB940xx/A | Mac-F42D88C8 | |
MacBookAir1,1 | MacBook Air 11寸 2008年初 | 2008年11月 | Merom(M) | GMA X3100 | 10.5.1(9B2324) | 10.7.5 | MB003xx/A | Mac-F42C8CC8 |
MacBook
型号标识符 | 描述 | 发布日期 | CPU Family | GPU(/ 为双显卡,, 为单显卡) |
最低macOS版本 | 最高macOS版本 | 部件号 | 主板号 | 备注 |
---|---|---|---|---|---|---|---|---|---|
MacBook10,1 | MacBook 12寸 2017年 | 2017年6月 | Kaby Lake(Y) | HD 615 | 10.12.5(16F207) | 至今 | MNYF2XX/AMNYG2XX/AMNYH2XX/AMNYJ2XX/AMNYK2XX/AMNYL2XX/AMNYM2XX/AMNYN2XX/A | Mac-EE2EBD4B90B839A8 | |
MacBook9,1 | MacBook 12寸 2016初 | 2016年4月 | Skylake(Y) | HD 515 | 10.11.4(15E2066) | 至今 | MLH72xx/AMLH82xx/AMLHA2xx/AMLHC2xx/AMLHE2xx/AMLHF2xx/AMMGL2xx/AMMGM2xx/A | Mac-9AE82516C7C6B903 | |
MacBook8,1 | MacBook 12寸 2015初 | 2015年4月 | Broadwell(Y) | HD 5300 | 10.10.2(14C2061) | 至今 | MF855xx/AMF865xx/AMJY32xx/AMJY42xx/AMK4M2xx/AMK4N2xx/A | Mac-BE0E8AC46FE800CC | |
MacBook7,1 | MacBook 13寸 2010中 | 2010年5月 | Penryn(M) | GeForce 320M | 10.6.3(10D2162) | 10.13.6 | MC516xx/A | Mac-F22C89C8 | |
MacBook6,1 | MacBook 13寸 2009末 | 2009年10月 | Penryn(M) | GeForce 9400M | 10.6.1(10A2047) | 10.13.6 | MC207xx/A | Mac-F22C8AC8 | |
MacBook5,2 | MacBook 13寸 2009中 | 2009年1月 | Penryn(M) | GeForce 9400M | 10.5.6 | 10.11.6 | MC240xx/A | Mac-F22788AA | |
MacBook5,2 | MacBook 13寸 2009初 | 2009年1月 | Penryn(M) | GeForce 9400M | 10.5.6(9G2110) | 10.11.6 | MB881xx/A | Mac-F22788AA | |
MacBook5,1 | MacBook 13寸 2008末铝合金外壳 | 2008年10月 | Penryn(M) | GeForce 9400M | 10.5.5(9F2114) | 10.11.6 | MB466*/AMB467*/A | Mac-F42D89C8Mac-F42D89A9 | |
MacBook4,2 | MacBook 13寸 2008末 (非铝合金外壳) | 2008年10月 | Penryn(M) | GMA X3100 | 10.5.6 | 10.7.5 | MB402*/B | 10.7.5最低要2G内存 | |
MacBook4,1 | MacBook 13寸 2008初 | 2008年2月 | Penryn(M) | GMA X3100 | 10.5.2(9C2015) | 10.7.5 | MB402*/AMB403*/AMB404*/A | Mac-F22788A9 | 10.7.5最低要2G内存 |
MacBook3,1 | MacBook 13寸 2007末 | 2007年5/10月 | Merom(M) | GMA X3100 | 10.5(9A3111) | 10.7.5 | MB061*/BMB062*/BMB063*/B | Mac-F22788C8 | 10.6.x最低要1G内存 |
MacBook2,1 | MacBook 13寸 2007中 | 2007年5/10月 | Merom(M) | GMA 950 | 10.5.6 | 10.7.5 | MB061*/AMB062*/AMB063*/A | 10.7.5要求2G或以上的内存 | |
MacBook2,1 | MacBook 13寸 2006年末 | 2006年11月 | Merom(M) | GMA 950 | 10.4.8(8N1108) | 10.7.5 | MA699*/AMA700*/AMA701*/A | Mac-F4208CA9 | 10.7.5要求2G或以上的内存 |
MacBook1,1 | MacBook 13寸 2006年初 | 2006年5月 | Yonah(M) | GMA 950 | 10.4.6(8I2025) | 10.6.8 | MA254*/AMA255*/AMA472*/A | Mac-F4208CC8 | 10.6.x要求1G或以上的内存 |
iMac
OpenCore不支持iMac21,1及更新SMBIOS。
型号标识符 | 描述 | 发布日期 | CPU Family | GPU(/ 为双显卡,, 为单显卡) |
最低macOS版本 | 最高macOS版本 | 部件号 | 主板号 | BIOS版本 | 备注 |
---|---|---|---|---|---|---|---|---|---|---|
iMac21,2 | Mid 2021 | Apple M1 | 11.3(20E232?) | Apple M1芯片,型号标识符J257 | ||||||
iMac21,1 | Mid 2021 | Apple M1 | 11.3(20E232?) | Apple M1芯片,型号标识符J256 | ||||||
iMac20,2 | iMac 27寸 5K 2020年 | 2020年8月 | Comet Lake | Radeon Pro 5700/5700 XT | 10.15.6(19G2005) | 至今 | MXWT2xx/AMXWU2xx/AMXWV2xx/A | Mac-AF89B6D9451A490B | T2芯片 | |
iMac20,1 | iMac 27寸 5K 2020年 | 2020年8月 | omet Lake(S) | Radeon Pro 5300/5500 XT | 10.15.6(19G2005) | 至今 | MXWT2xx/AMXWU2xx/AMXWV2xx/A | Mac-CFF7D910A743CAAF | T2芯片 | |
iMac19,2 | iMac 21.5寸 4K 2019年 | 2020年8月 | Coffee Lake(S) | Radeon Pro 580X(/570X/575X)/Radeon Pro Vega 48 | 10.14.4(18E226) | 至今 | MRT3xx/AMRT4xx/AMHK23xx/A | 对比2019年款只更新了硬盘 | ||
iMac19,2 | iMac 21.5寸 4K 2019年 | 2019年3月 | Coffee Lake(S) | Radeon Pro 580X(/570X/575X)/Radeon Pro Vega 48 | 10.14.4(18E226) | 至今 | MRT3xx/AMRT4xx/AMHK23xx/A | Mac-63001698E7A34814 | ||
iMac19,1 | iMac 27寸 5K 2019年 | 2019年3月 | Coffee Lake(S) | Radeon Pro 580 | 10.14.4(18E226) | 至今 | MRQYxx/AMRR0xx/AMRR1xx/A | Mac-AA95B1DDAB278B95 | ||
iMacPro1,1 | iMac Pro 27寸 5K 2017年 | 2017年12月 | Skylake-W | Radeon Pro Vega 56(/64/64X) | 10.13.2(17C2111) | 至今 | MQ2Y2xx/AMHLV3xx/A | Mac-7BA5B2D9E42DDD94 | ||
iMac18,3 | iMac 27寸 5K 2017年 | 2017年6月 | Kaby Lake(S) | Radeon Pro 570(/575/580) | 10.12.4(16F2073) | 至今 | MNE92xx/AMNEA2xx/AMNED2xx/A | Mac-BE088AF8C5EB4FA2 | ||
iMac18,2 | iMac 21.5寸 4K 2017年 | 2017年6月 | Kaby Lake(S) | Radeon Pro 555(/560) | 10.12.4(16F2073) | 至今 | MNDY2xx/AMNE02xx/A | Mac-77F17D7DA9285301 | ||
iMac18,1 | iMac 21.5寸 普通屏 2017年 | 2017年6月 | Kaby Lake(U) | Iris Plus 640 | 10.12.4(16E2193) | 至今 | MMQA2xx/AMHK03xx/A | Mac-4B682C642B45593E | ||
iMac17,1 | iMac 27寸 5K 2015年末 | 2015年10月 | Skylake(S) | Radeon R9 M380(/M390/M395/M395X) | 10.11(15A4310) | 至今 | MK462xx/AMK472xx/AMK482xx/A | Mac-DB15BD556843C820Mac-B809C3757DA9BB8DMac-65CE76090165799A | ||
iMac16,2 | iMac 21.5寸 4K 2015年末 | 2015年10月 | Broadwell(S) | Iris Pro 6200 | 10.11(15A2301) | 至今 | MK452xx/A | Mac-FFE5EF870D7BA81A | ||
iMac16,1 | iMac 21.5寸 2015年末 | 2015年10月 | Broadwell(U) | HD 6000/Iris Pro 6200 | 10.11(15A2301) | 至今 | MK142xx/AMK442xx/A | Mac-A369DDC4E67F1C45 | ||
iMac15,1 | iMac 27寸 5K 2015年中 | 2015年5月 | Haswell(S) | Radeon R9 M290X | 10.10(14A389) | 至今 | MF885xx/A | Mac-42FD25EABCABB274 | ||
iMac15,1 | iMac 27寸 5K 2014年末 | 2014年10月 | Haswell(S) | Radeon R9 M290(/M295X)/AMD M290(/M295) | 10.10(14A389) | 至今 | MF886xx/A | Mac-42FD25EABCABB274 | ||
iMac14,4 | iMac 21.5寸 2014年中 | 2014年6月 | Haswell(U) | HD 5000 | 10.9.3(13D2061) | 至今 | MF883xx/AMG022xx/A | Mac-81E3E92DD6088272 | ||
iMac14,3 | iMac 21.5寸 2013年末 | 2013年9月 | Haswell(S) | GeForce GT 750M | 10.8.4(12E4022) | 10.15.7 | ME087LL/A | Mac-77EB7D7DAF985301 | ||
iMac14,2 | iMac 27寸 2013年末 | 2013年9月 | Haswell(S) | GeForce GT 755M(/GTX 775M/GTX 780M) | 10.8.4(12E4022) | 10.15.7 | ME086xx/AME088xx/A | Mac-27ADBB7B4CEE8E61 | ||
iMac14,1 | iMac 21.5寸 2013年末 | 2013年9月 | Haswell(S) | Iris Pro 5200/GeForce GT 750M | 10.8.4(12E4022) | 10.15.7 | ME086xx/AME087xx/A | Mac-031B6874CF7F642A | ||
iMac13,3 | iMac 21.5寸 2013年初 | / | Ivy Bridge(S) | HD 4000 | 10.8.2(12C2037) | 10.15.7 | ME699LL/A | Mac-7DF2A3B5E5D671ED | ||
iMac13,2 | iMac 27寸 2012年末 | 2012年11/12月 | Ivy Bridge(S) | GeForce GTX 660MX(/GTX 675MX/GT 680M) | 10.8.2(12C2037) | 10.15.7 | MD095xx/AMD096xx/A | Mac-FC02E91DDD3FA6A4 | ||
iMac13,1 | iMac 21.5寸 2012年末 | 2012年11/12月 | Ivy Bridge(S) | GeForce GT 640M(/650M), HD 4000 | 10.8.2(12C3104) | 10.15.7 | MD093xx/AMD094xx/A | Mac-00BE6ED71E35EB86 | ||
iMac12,1 | iMac 21.5寸 2011年末 | 2011年8月 | Sandy Bridge(S) | Radeon HD 6750M | 10.7.5 | 10.13.6 | MC978xx/A | Mac-942B5BF58194151B | 仅用于教育 | |
iMac12,2 | iMac 27寸 2011年中 | 2011年5月 | Sandy Bridge(S) | Radeon HD 6770M(/6970M) | 10.6.6(10J4026) | 10.13.6 | MC813xx/AMC814xx/A | Mac-942B59F58194171B | IM121.88Z.0047.B00.1102091756 | 仅支持随机附送的10.6.6 |
iMac12,1 | iMac 21.5寸 2011年中 | 2011年5月 | Sandy Bridge(S) | Radeon HD 6750M(/6770M) | 10.6.6(10J4026) | 10.13.6 | MC309xx/AMC812xx/A | Mac-942B5BF58194151B | 仅支持随机附送的10.6.6 | |
iMac11,3 | iMac 27寸 2010年中 | 2010年7月 | Clarkdale(S) | Radeon HD 5670(/5750) | 10.6.3(10D2322a) | 10.13.6 | MC510xx/AMC511xx/A | Mac-F2238BAE | ||
iMac11,2 | iMac 21.5寸 2010年中 | 2010年7月 | Clarkdale(S) | Radeon HD 4670(/5670) | 10.6.3(10D2322a) | 10.13.6 | MC508xx/AMC509xx/A | Mac-F2238AC8 | IM112.88Z.0057.B00.1005031455 | |
iMac11,1 | iMac 27寸 2009年末 | 2009年10/11月 | Lynnfield(S) | Radeon HD 4850(/4670) | 10.6.2(10C2234) | 10.13.6 | MB953LL/AMC507LL/A | Mac-F2268DAE | IM111.88Z.0034.B02.1003171314 | |
iMac10,1 | iMac 27寸 2009年末 | 2009年10/11月 | Wolfdale(S) | Radeon HD 4670/GeForce 9400M | 10.6.1(10A2155) | 10.13.6 | MB952xx/AMB953xx/A | Mac-F2268DC8Mac-F2268CC8Mac-F221DCC8 | IM101.88Z.00CC.B00.0909031926 | |
iMac10,1 | iMac 21.5寸 2009年末 | 2009年10/11月 | Wolfdale(S) | Radeon HD 4670/GeForce 9400M | 10.6.1(10A2155) | 10.13.6 | MB950xx/AMC413xx/A | Mac-F2268DC8Mac-F2268CC8Mac-F221DCC8 | IM101.88Z.00CC.B00.0909031926 | |
/ | iMac 20寸 2009年中 | 2009年4月 | / | / | 10.5.6 | 10.11.6 | / | |||
iMac9,1 | iMac 24寸 2009年初 | 2009年3月 | Penryn(M) | GeForce 9400M(/NVIDIA GeForce GT 120/NVIDIA GeForce GT 130) | 10.5.6(9G2030) | 10.11.6 | MB418xx/AMB419xx/A | Mac-F2218FC8Mac-F2218FA9Mac-F2218EC8Mac-F2218EA9 | ||
iMac9,1 | iMac 20寸 2009年初 | 2009年3月 | Penryn(M) | GeForce 9400M | 10.5.6(9G2030) | 10.11.6 | MB417xx/AMC019xx/A | Mac-F2218FC8Mac-F2218FA9Mac-F2218EC8Mac-F2218EA9 | ||
iMac8,1 | iMac 20/24寸 2008年初 | 2008年4月 | Penryn(M) | Radeon HD 2400 XT | 10.5.2(9C2028) | 10.11.6 | MB323XX/AMB324XX/AMB388XX/AMB391XX/AMB325XX/AMB393XX/AMB398XX/A | Mac-F227BEC8Mac-F226BEC8 | ||
iMac7,1 | iMac 20/24寸 2007年中 | 2007年8月 | Merom(M) | Radeon HD 2400 XT(/ATI Radeon HD 2400/ATI Radeon HD 2600 Pro) | 10.4.10(8R4031) | 10.11.6 | MA876XX/AMA877XX/AMB199XX/AMB200XX/AMA878XX/AMB201XX/AMB322XX/A | Mac-F4238CC8Mac-F42386C8 | ||
iMac6,1 | iMac 24寸 2006年末 | 2006年9月 | Merom(M) | GeForce 7300GT | 10.4.7(8K1123) | 10.7.5 | MA456xx/A | Mac-F4218FC8 | ||
iMac5,2 | iMac 17寸 2006年末 | 2006年9月 | Merom(M) | GMA 950 | 10.4.7(8K1106) | 10.7.5 | MA710xx/A | Mac-F4218EC8 | ||
iMac5,1 | iMac 17寸 2006年末 | 2006年9月 | Merom(M) | Radeon X1600 | 10.4.7(8K1106) | 10.7.5 | MA590xx/A | Mac-F4228EC8 | ||
iMac5,1 | iMac 20寸 2006年末 | 2006年9月 | Merom(M) | Radeon X1600 | 10.4.7(8K1106) | 10.7.5 | MA589xx/A | Mac-F4228EC8 | ||
iMac4,2 | iMac 17 2006年中 | 2006年7月 | Yonah(M) | GMA 950 | 10.4.7(8I2057) | 10.6.8 | MA406xx/A | Mac-F4218EC8 | ||
iMac4,1 | iMac 17 2006年初 | 2006年1月 | Yonah(M) | Radeon X1600 | 10.4.4(8G1165) | 10.6.8 | MA199xx/AMA200xx/A | Mac-F42786C8 |
Mac Mini
OpenCore不支持Macmini9,1。
型号标识符 | 描述 | 发布日期 | CPU Family | GPU(/ 为双显卡,, 为单显卡) |
最低macOS版本 | 最高macOS版本 | 部件号 | 主板号 | 备注 |
---|---|---|---|---|---|---|---|---|---|
Macmini9,1 | Mac Mini 2020年 M1 | 2020年11月 | Apple M1 | 八核Apple图形卡 | 11.0.0(20A2411) | 至今 | MGNR3xx/AMGNT3xx/A | Apple M1芯片,型号标识符J274 | |
Macmini8,1 | Mac Mini 2018年末 | 2020年03月 | Coffee Lake(H) | UHD Graphics 630 | 10.14(18A2063) | 至今 | MRTR2xx/AMRTT2xx/AMXNF2xx/AMXNG2xx/A | Mac-7BA5B2DFE22DDD8C | 只升级了硬盘 |
Macmini8,1 | Mac Mini 2018年末 | 2018年10月 | Coffee Lake(H) | UHD Graphics 630 | 10.14(18A2063) | 至今 | MRTR2xx/AMRTT2xx/AMXNF2xx/AMXNG2xx/A | Mac-7BA5B2DFE22DDD8C | |
Macmini7,1 | Mac Mini 2014年末 | 2014年10月 | Haswell(U) | HD 5000/Iris 5100 | 10.10(14A389) | 至今 | MGEM2xx/AMGEN2xx/AMGEQ2xx/A | Mac-35C5E08120C7EEAF | |
Macmini6,2 | Mac Mini/Server 2012年末 | 2012年10月 | Ivy Bridge(QM) | HD 4000 | 10.8.1(12B2080) | 10.15.7 | MD387xx/AMD388xx/AMD389xx/A | Mac-F65AE981FFA204ED | |
Macmini6,1 | Mac Mini/Server 2012年末 | 2012年10月 | Ivy Bridge(M) | HD 4000 | 10.8.1(12B2080) | 10.15.7 | MD387xx/AMD388xx/AMD389xx/A | Mac-031AEE4D24BFF0B1 | |
Macmini5,3 | Mac Mini/Server 2011年中 | 2011年7月 | Sandy Bridge(QM) | HD 3000 | 10.7(11A2061) | 10.13.6 | MC936LL/A | Mac-7BA5B2794B2CDB12 | |
Macmini5,2 | Mac Mini/Server 2011年中 | 2011年7月 | Sandy Bridge(M) | Radeon HD 6630M | 10.7(11A2061) | 10.13.6 | MC815xx/AMC816xx/AMC936xx/A | Mac-4BC72D62AD45599E | |
Macmini5,1 | Mac Mini/Server 2011年中 | 2011年7月 | Sandy Bridge(M) | HD 3000 | 10.7(11A2061) | 10.13.6 | MC815xx/AMC816xx/AMC936xx/A | Mac-8ED6AF5B48C039E1 | |
Macmini4,1 | Mac Mini 2010年中 | 2010年6月 | Penryn(M) | GeForce 320M | 10.6.4(10F2025) | 10.13.6 | MC438xx/AMC270xx/A | Mac-F2208EC8 | |
Macmini3,1 | Mac Mini 2009年末 | 2009年10月 | Penryn(M) | GeForce 9400M | 10.6.3 | 10.11.6 | MC238xx/AMC239xx/AMC408xx/A | Mac-F22C86C8 | |
Macmini3,1 | Mac Mini 2009年初 | 2009年3月 | Penryn(M) | GeForce 9400M | 10.5.6(9G2030) | 10.11.6 | MB464xx/AMB463xx/A | Mac-F22C86C8 | |
Macmini2,1 | Mac Mini 2007年中 | 2007年8月 | Merom(M) | GMA 950 | 10.4.10(8R3014) | 10.7.5 | MB138*/AMB139*/A | Mac-F4208EAA | |
Macmini1,1 | Mac Mini 2006年末 | 2006年9月 | Yonah(M) | GMA 950 | 10.4.5(8H1619) | 10.6.8 | MA607*/AMA608*/A | Mac-F4208EC8 | |
Macmini1,1 | Mac Mini 2006年初 | 2006年3月 | Yonah(M) | GMA 950 | 10.4.5(8H1619) | 10.6.8 | MA205*/AMA206*/A | Mac-F4208EC8 |
Mac Pro
型号标识符 | 描述 | 发布日期 | CPU Family | GPU(/ 为双显卡,, 为单显卡) |
最低macOS版本 | 最高macOS版本 | 部件号 | 主板号 | BIOS版本 | 备注 |
---|---|---|---|---|---|---|---|---|---|---|
MacPro7,1 | Mac Pro Rack 2019年末 | 2019年12月 | CCascade Lake-W | Radeon Pro 580X/Radeon Pro Vega II(/Duo) | 10.15.0(19A583) | 至今 | / | Mac-27AD2F918AE68F61 | ||
MacPro7,1 | Mac Pro 2019年末 | 2019年12月 | Cascade Lake-W | Radeon Pro 580X/Radeon Pro Vega II(/Duo) | 10.15.0(19A583) | 至今 | / | Mac-27AD2F918AE68F61 | ||
MacPro6,1 | Mac Pro 2013年末 | 2013年12月 | Ivy BridgeEP | FirePro D300(/D500/D700) | 10.9.1(13B4116) | 至今 | ME253xx/AMD878xx/A | Mac-F60DEB81FF30ACF6 | ||
MacPro5,1 | Mac Pro 2012年中 | 2012年6月 | Westmere EP | Radeon HD 5770(/5870) | 10.7.5 | 10.14.6 | MD770xx/AMD771xx/A | Mac-F221BEC8 | 安装Mojave需要支持Metal的图形卡,具体查看https://support.apple.com/zh-cn/HT208898 | |
MacPro5,1 | Mac Pro Server 2012年中 | 2012年6月 | Westmere EP | Radeon HD 5770(/5870) | 10.7.5 | 10.14.6 | MD772xx/A | Mac-F221BEC8 | 安装Mojave需要支持Metal的图形卡,具体查看https://support.apple.com/zh-cn/HT208898 | |
MacPro5,1 | Mac Pro 2010年中 | 2010年8月 | Westmere EP | Radeon HD 5770(/5870) | 10.6.4(10F2521) | 10.14.6 | MC250xx/AMC560xx/AMC561xx/A | Mac-F221BEC8 | 安装Mojave需要支持Metal的图形卡,具体查看https://support.apple.com/zh-cn/HT208898 | |
MacPro5,1 | Mac Pro Server 2010年中 | 2010年8月 | Nehalem | Radeon HD 5770(/5870) | 10.6.4(10F2521) | 10.14.6 | MC915xx/A | Mac-F221BEC8 | MP51.88Z.007F.B03.1010071432 | 安装Mojave需要支持Metal的图形卡,具体查看https://support.apple.com/zh-cn/HT208898 |
MacPro4,1 | Mac Pro 2009年初 | 2009年3月 | Nehalem | GeForce GT 120(/NVIDIA Geforce GTX 285/NVIDIA Geforce Quadro FX 4800/ATI Radeon HD 4870) | 10.5.6(9G3553) | 10.11.6 | MB871xx/AMB535xx/A | Mac-F221BEC8 | MP41.88Z.0081.B07.0910130729 | |
MacPro3,1 | Mac Pro 2008年初 | 2008年1月 | Harpertown | Radeon HD 2600(/NVIDIA GeForce 8800 GT/NVIDIA Quadro FX 5600) XT | 10.5.1(9B2117) | 10.11.6 | MA970*/A | Mac-F42C88C8 | MP31.88Z.006C.B05.0802291410 | |
MacPro2,1 | Mac Pro 2007年初 | 2007年4月 | Clovertown | GeForce 7300 GT | 10.4.9(8P4037) | 10.7.5 | MA356*/A | Mac-F4208DA9 | ||
MacPro1,1 | Mac Pro 2006年中 | 2006年8月 | Woodcrest | GeForce 7300 GT | 10.4.7(8K1079) | 10.7.5 | MA356*/A | Mac-F4208DC8 |
Xserve
型号标识符 | 描述 | 发布日期 | CPU Family | GPU(/ 为双显卡,, 为单显卡) |
最低macOS版本 | 最高macOS版本 | 部件号 | 主板号 | 备注 |
---|---|---|---|---|---|---|---|---|---|
Xserve3,1 | Xserve 2009年初 | 2009年4月 | Nehalem EP | GeForce GT 120 | Server 10.5.6 | 10.11.6 | / | Mac-F223BEC8 | |
Xserve2,1 | Xserve 2008年初 | 2008年1月 | Harpertown | Radeon X1300 | Server 10.5(9B2117) | 10.7.5 | / | Mac-F42289C8 | |
Xserve1,1 | Xserve 2006年末 | 2006年11月 | Woodcrest | Radeon X1300 | Server 10.4.8(8N1215) | Server 10.7.5 | / | Mac-F4208AC8 | |
RackMac3,1 | Early 2004 | PowerPC 970fx (G5) | 10.3.0 | Server 10.5.8 | |||||
RackMac1,2 | Early 2003 | PowerPC 7455 (G4) | 10.2.4(6I34) | Server 10.5.8 | |||||
RackMac1,1 | Mid-2002 | PowerPC 7455 (G4) | 10.1.5 (6C115) | Server 10.5.8 |
Developer Transition Kit
OpenCore不支持。
型号标识符 | 发布日期 | CPU Family | 产品标识符 | 最低macOS版本 |
---|---|---|---|---|
ADP3,2 | Mid 2020 | Apple A12Z | J273 | 11.0.0 (20A5299w) |
ADP2,1 | Mid 2005 | Intel Prescott | / | 10.4.1 (8B1025) |
PowerBook/iBook
OpenCore不支持。
型号标识符 | 发布日期 | CPU Family | 最低macOS版本 | 最高macOS版本 | 类型 |
---|---|---|---|---|---|
PowerBook6,8 | Early 2005 | PowerPC 7447a (G4) | 10.3.7 | 10.5.8 | PowerBook |
PowerBook6,7 | Mid-2005 | PowerPC 7447a (G4) | 10.4.2(8D37) | 10.5.8 | iBook |
PowerBook6,5 | Mid-2004 | PowerPC 7447a (G4) | 10.3.3(7G51) | 10.5.8 | iBook |
PowerBook6,4 | Mid-2004 | PowerPC 7447a (G4) | 10.2.7 | 10.5.8 | PowerBook |
PowerBook6,3 | Late 2003 | PowerPC 7457 (G4) | 10.3(7B85) | 10.4.11 | iBook |
PowerBook6,2 | Early 2003 | PowerPC 7455 (G4) | 10.2.3 | 10.5.8 | PowerBook |
PowerBook6,1 | Early 2003 | PowerPC 7455 (G4) | 10.2.3 | 10.5.8 | PowerBook |
PowerBook5,9 | Late 2005 | 10.4.2 | 10.5.8 | PowerBook | |
PowerBook5,8 | Late 2005 | 10.4.2 | 10.5.8 | PowerBook | |
PowerBook5,7 | Early 2005 | 10.3.3 | 10.5.8 | PowerBook | |
PowerBook5,6 | Early 2005 | 10.3.3 | 10.5.8 | PowerBook | |
PowerBook5,5 | Mid-2004 | PowerPC 7447a (G4) | 10.3.3 | 10.5.8 | PowerBook |
PowerBook5,4 | Mid-2004 | PowerPC 7447a (G4) | 10.3.3 | 10.5.8 | PowerBook |
PowerBook5,3 | Late 2003 | PowerPC 7447 (G4) | 10.2.7 | 10.5.8 | PowerBook |
PowerBook5,2 | Late 2003 | PowerPC 7447 (G4) | 10.2.7 | 10.5.8 | PowerBook |
PowerBook5,1 | Early 2003 | PowerPC 7455 (G4) | 10.2.4 | 10.5.8 | PowerBook |
PowerBook4,3 | Mid-2002 | PowerPC 750fx (G3) | 9.2.2 | 10.4.11 | iBook |
PowerBook4,2 | Early 2002 | PowerPC 750cx (G3) | 9.2.1 | 10.4.11 | iBook |
PowerBook4,1 | Late 2002 | PowerPC 7455 (G4) | 9.2.2 | 10.5.8 | iBook |
PowerBook3,5 | Late 2002 | PowerPC 7455 (G4) | 9.2.2 | 10.5.8 | PowerBook |
PowerBook3,4 | Mid-2002 | PowerPC 7451 (G4) | 9.2.2 | 10.4.11 | PowerBook |
PowerBook3,3 | Late 2001 | PowerPC 7440 (G4) | 9.2.1 | 10.4.11 | PowerBook |
PowerBook3,2 | Early 2001 | PowerPC 7410 (G4) | 9.1 | 10.4.11 | PowerBook |
PowerBook3,1 | Early 2000 | PowerPC 750 (G3) | 9.0.2 | 10.4.11 | PowerBook |
PowerBook2,2 | Late 2000 | PowerPC 750cx (G3) | 9.0.4 | 10.4.11 | iBook |
PowerBook2,1 | Mid-1999 | PowerPC 750 (G3) | 8.6 | 10.3.9 | iBook |
PowerBook1,1 | Mid-1999 | PowerPC 750 (G3) | 8.6 | 10.3.9 | PowerBook |
PowerMac/eMac/Cube/Mac Mini
OpenCore不支持。
型号标识符 | 发布日期 | CPU Family | 最低macOS版本 | 最高macOS版本 | 备注 |
---|---|---|---|---|---|
PowerMac12,1 | Late 2005 | PowerPC 970fx (G5) | 10.4.2(8E102) | 10.5.8 | iMac |
PowerMac11,2 | Late 2005 | PowerPC 970MP (G5) | 10.4.2 | 10.5.8 | PowerMac |
PowerMac10,2 | Late 2005 | PowerPC 7447a (G4) | 10.4.2(8D40) | 10.5.8 | Mac Mini |
PowerMac10,1 | Early 2005 | PowerPC 7447a (G4) | 10.3.7(7T11) | 10.5.8 | Mac Mini |
PowerMac9,1 | Late 2004 | PowerPC 970fx (G5) | 10.3.5(8E90) | 10.5.8 | PowerMac |
PowerMac8,2 | Mid-2005 | PowerPC 970 (G5) | 10.4(8A428) | 10.5.8 | iMac |
PowerMac8,1 | Mid-2004 | PowerPC 970 (G5) | 10.3.5(7P35) | 10.5.8 | iMac |
PowerMac7,3 | Early-2005 | PowerPC 970fx (G5) | 10.4 | 10.5.8 | PowerMac |
PowerMac7,2 | Mid-2003 | PowerPC 970 (G5) | 10.2.7 | 10.5.8 | PowerMac |
PowerMac6,4 | Early 2004 | PowerPC 7447a (G4) | 10.3.3 | 10.5.8 | eMac |
PowerMac6,3 | Late 2003 | PowerPC 7445 (G4) | 10.3.1 | 10.5.8 | iMac |
PowerMac6,1 | Early 2003 | PowerPC 7445 (G4) | 10.2.3 | 10.5.8 | iMac |
PowerMac5,2 | Mid-2000 | PowerPC 7400 (G4) | 9.0.4 | 10.4.11 | Cube |
PowerMac5,1 | Mid-2000 | PowerPC 7400 (G4) | 9.0.4 | 10.4.11 | Cube |
PowerMac4,5 | Mid-2002 | PowerPC 7445 (G4) | 9.2.2 | 10.4.11 | iMac |
PowerMac4,4 | Mid-2003 | PowerPC 7445 (G4) | 9.2.2 | 10.5.8 | eMac |
PowerMac4,2 | Early 2002 | PowerPC 7441 (G4) | 9.2.2 | 10.4.11 | iMac |
PowerMac4,1 | Early 2001 | PowerPC 750cx (G3) | 9.1 | 10.4.11 | iMac |
PowerMac3,6 | Mid-2002 | PowerPC 7455 (G4) | 9.2.2 | 10.5.8 | PowerMac |
PowerMac3,5 | Mid-2001 | PowerPC 7450 (G4) | 9.2 | 10.5.8 | PowerMac |
PowerMac3,4 | Early 2001 | PowerPC 7410 (G4) | 9.1 | 10.4.11 | PowerMac |
PowerMac3,3 | Mid-2000 | PowerPC 7400 (G4) | 9.0.4 | 10.4.11 | PowerMac |
PowerMac3,2 | Mid-2001 | PowerPC 7450 (G4) | 9.2 | 10.4.11 | PowerMac |
PowerMac3,1 | Mid 1999 | PowerPC 7400 (G4) | 8.6 | 10.4.11 | PowerMac |
PowerMac2,2 | Mid 2000 | PowerPC 750 (G3) | 9.0.4 | 10.3.9 | iMac |
PowerMac2,1 | Late 1999 | PowerPC 750 (G3) | 8.6 | 10.4.11 | iMac |
PowerMac1,2 | Mid 1999 | PowerPC 7400 (G4) | 8.6 | 10.4.11 | PowerMac |
PowerMac1,1 | Early 1999 | PowerPC 750 (G3) | 8.5.1 | 10.4.11 | PowerMac |
iMac,1 | Mid 1998 | PowerPC 750 (G3) | 8.1 | 10.3.9 | iMac |
重要事件
时间 | 事件 |
---|---|
WWDC 2005 | 推出了搭载 Intel 处理器的 DTK(Dev Transition Kit),搭载了兼容 Intel 的 Mac OS X 10.4.1 |
2006-01-10 | 发布使用UEFI引导方式的MacBook Pro |
2006-02-14 | The Guru团队发布首个Patch补丁,通过该补丁修补XNU内核即可解除引导和安装限制,在任何内置SSE-2指令集的Intel处理器上运行Mac OS X 10.4.4(10.4.4-10.4.7可通过修补内核安装,但从10.4.8开始,苹果开始更广泛地使用SSE-3指令集,意味仅仅通过修补XNU 内核已经无法再兼容只支持SSE-2指令集的处理器,如早期的奔腾4) |
2007 | BrazilMac发布了对Leopard的通用补丁(基于补丁制作的Mac OS X发行版开始出现,如iATKOS、KALYWAY和iPC) |
Rosetta
苹果使用过后的CPU体系结构有摩托罗拉68000系列->PowerPC系列->英特尔酷睿系列->Apple的ARM型处理器系列。Rosetta是苹果在CPU架构过渡时推出的编译器,允许新的平台来模拟以前的平台,以正常运行应用程序。
Rosetta用于从PowerPC到Intel的过渡,可用于10.4.4–10.6.8,不适用于Mac OS 9或更早版本以及10.7或更新版本。Lion安装Rosetta的相关讨论可见以下链接。
1 | https://www.insanelymac.com/forum/topic/262890-installing-rosetta-on-lion/ |
Rosetta 2用于从Intel到Apple Silicon的过渡,可用于Big Sur。
相关知识
Kext
即驱动程序。使用kext的替代方法为添加EFI String或修补DSDT。
EFI String
EFI String一般用于com.apple.Boot.plist中的device-properties部分,表示显卡信息。打开该文件并添加以下内容即可。
1 | <key>device-properties</key> |
EFI String可通过以下命令生成,注意需要gfxutil。打开生成的out.hex,复制所有的十六进制字符串即为所求。
1 | # in.plist包含了设备属性信息 |
以GMA950为例,示例如下。
1 | <key>device-properties</key> |
base64与ASCII
在plist的文本中,data是以base64的格式存储的,而在用Xcode等编辑器打开后,base64将被显示为十六进制ASCII码。以下示例均在终端进行。
1 | // base64->ASCII |
Distros
Distributions的另一个名称,指发行版。安装时不要使用macOS发行版。
OOB
开机即用,无需安装驱动/修补DSDT等。
Vanilla
指未修改系统盘内容,如LE和SLE的系统。
mach_kernel
10.8及以下的系统有mach_kernel,10.9及以上创建USB引导盘时不会有mach_kernel。
可以提取mach_kernel并放到安装盘根目录。在安装包APP上点击显示包内容,进入Contents/SharedSupport/InstallESD.dmg/Packages/BaseSystemBinaries.pkg/mach_kernel,提取即可。
extentions.mkext
旧版Mac将kext的缓存放到extentions.mkext以加快加载速度。10.7及以后被弃用。
用Chameleon引导时,若需要使用kext缓存,则启动参数需要添加UseKernelCache=Yes。
NVRAM
NVRAM与RAM相反,可以在主机设备电源关闭后保留数据。Mac利用NVRAM运行iMessage/FaceTime、引导设备等。很多平台的NVRAM不稳定,需要模拟NVRAM以实现正常功能。
Chameleon不支持NVRAM,需要额外的模块FileNVRAM。Clover将尝试使用系统的原生NVRAM,若无法使用则需要通过EmuVariableUEFI.efi进行模拟,并安装RC脚本。
SMC
系统管理控制器。通过重置SMC可以解决计算机无法启动、不显示视频、睡眠、风扇噪音等问题。
RTC/AWAC
实时时钟RTC(Real-Time Clock)是逻辑板上的芯片,用于控制计算机的日期和时间功能。如果计算机遇到引导问题,则重置RTC可能会解决该问题。
主板内部时钟AWAC(ACPI Wake Alarm Counter Clock)与RTC冲突,Mac无法与AWAC时钟通信。
安全启动
Apple安全启动最初出现于搭载T2芯片的机型上的macOS 10.13。
对于OpenCore,将SecureBootModel设置为除Disabled以外的任意有效值,相当于实现了Apple安全启动的中等安全性。如要实现完整安全性,还需要指定ApECID值。
在安全启动模式下,将无法安装任何未签名的内核驱动程序。还有一些内核驱动程序尽管已签名,但也无法安装,包括但不限于NVIDIA Web Drivers。
驱动程序缓存的列表可能不同,因此需要改变Add或Force内核驱动程序列表。比如IO80211Family将不能被注入。
某些系统(比如macOS 11)是封装保护的,更改受保护的系统卷可能会导致操作系统无法启动。除非禁用了Apple安全启动,否则不要禁用系统卷加密。
OpenCore中的IgnoreInvalidFlexRatio或HashServices可能会导致安全启动失败。
在Apple推出安全启动功能之前发布的操作系统(10.12或更早的版本)仍然会正常启动,除非启用了UEFI安全启动。因为从Apple安全启动的角度来看,它们都是不兼容的系统,会被认为应该由BIOS来处理。
在较旧的CPU上(Sandy Bridge之前),启用Apple安全启动可能会使加载速度略微变慢,最长可达1秒。
启用Apple安全启动时,HFS+文件系统的卷宗无法作为目标卷宗安装macOS。没有其他备用APFS硬盘的情况下,HFS+文件系统的硬盘也同样无法安装。
USB与驱动
USB3
USB3.0需要SLE中有AppleUSBXHCI,该kext在10.7.5及以后存在。AppleUSBXHCI继承自IOUSBControllerV3,该文件存在于10.6.8的IOUSBFamily中。
若无USB3.0设备,则不要放置以下驱动。
GenericUSBXHCI/AppleUSBXHCI
GenericUSBXHCI适用于10.7.5-10.10。
1 | https://sourceforge.net/projects/genericusbxhci/files/ |
也可使用AppleUSBXHCI,适用于10.9-10.10。建议首先使用GenericUSBXHCI。
1 | https://www.insanelymac.com/forum/files/file/150-patched-appleusbxhci/?changelog=133 |
【进阶】GenericUSBXHCI的DSDT底层实现
即USB3 Mutliplex补丁。进行DSDT修补后即无需放置GenericUSBXHCI。
1 | https://www.insanelymac.com/forum/topic/287901-how-to-get-intel-7-series-usb-30-fully-working-step-by-step-guide/ |
CalDigit USB 3.0
适用于10.5-10.8。
1 | https://archive.caldigit.com/KB/index.asp?KBID=108&viewlocale=1 |
PXHCD
LaCie专用,适用于10.6.3-10.6.8。
1 | https://www.root86.com/files/file/527-usb-30-kext-f%C3%BCr-snow-leopard/ |
USB-3.0-NEC
适用于10.9-10.15。
1 | https://github.com/chris1111/USB-3.0-NEC |
驱动原理
从10.11开始,系统设置了15端口限制。注意,此处的15端口限制指真正连接到USB控制器上的端口,而不包括USB外置集线器。一个USB端口通过集线器,最多可拆分为127个端口,这些端口包括了连接到集线器的集线器。
同时,从10.11开始,系统通过遮盖器即Injector驱动USB。具体而言,System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns之下的AppleUSBEHCIPCI.kext/Contents/Info.plist和AppleUSBXHCIPCI.kext/Contents/Info.plist当中的条目指定了SMBIOS与USB控制器名称的关系,通过当前SMBIOS直接定位到设备名称,而不通过DSDT。
若在DSDT中未找到Injector对应的设备名称,则以DSDT指定的为准。因此可通过change EHC1/EHC2 to EH01/EH02这一ACPI更名补丁使遮盖失效。
XSEL方法和ESEL方法用于将XHCI路由到EHCI,其中较旧的Windows调用ESEL,较新的Windows调用XSEL。睡眠唤醒后从_WAK调用XWAK,有时会导致端口在睡眠后无法正常工作,因此可尝试禁用XWAK,即使该方法直接返回。
1 | Method (XWAK, ...) |
将XHCI路由到EHCI,也可使用FakePCIID和FakePCIID_XHCIMux。
DSDT源码
Skylake及以下具有EHCI和XHCI设备,其中EHCI为USB 2.0,XHCI为USB 3.0。对于Skylake以上,只有XHCI设备,USB 2.0和3.0都通过XHCI处理。
XHCI可处理USB2/3,EHCI只可处理USB2。
在DSDT中搜索XHC或RHUB,可查看所有端口。以PR11为例,代码及含义如下。
1 | Device (PR11) |
部分机型的_UPC
内容与上面不同,示例如下。
1 | Scope (\_SB.PCI0.XHC.RHUB.HS01) |
IRQ冲突
IRQ有限制且有编号,USB主控器需要IRQ。若其他设备争抢了原设备的IRQ,将导致原设备无法正确工作。
打开IORegistryExplorer,点击需要查看IRQ的设备,查看右侧的IOInterruptSpecifiers的Data值。若不存在,则表示该设备无IRQ可用。
有时HPET会抢夺USB主控器的IRQ,导致USB无法正确工作。可打开DSDT并应用以下Patch,保存后放置到引导器的ACPI部分即可。
1 | # This can fix non-working audio and also has an affect on HPET. |
PLUG
允许XCPM(Apple XNU电源管理)提供更好的整体CPU控制。仅在Haswell和更新版本上受支持。
HPET
即高精度事件定时器(High Precision Event Timer),操作系统使用它来确定如何与设备通信(IRQ)。
RHUB
即根USB集线器(Root USB Hub),定义USB端口。
IMEI
即英特尔管理引擎接口(Intel Management Engine Interface),处理杂项任务。在Mac中依靠IMEI实现Intel GPU加速。如果使用未知ID,例如使用带有Sandy Bridge的7系列芯片组,Mac将无法找到IMEI,导致GPU加速丢失。
UNC
即Uncore Bridge,类似于北桥,处理与缓存相关的功能。若OEM定义了该设备,但该设备无法使用,Mac将无法进行处理。
SMBS
即系统管理总线(System Managment Bus),用于允许设备之间的通信。
PNLF
内置背光显示,用于控制亮度。
Intel显卡启用过程
需要WhateverGreen。
更正设备名称
对于Intel管理引擎为IMEI,对于视频卡为IGPU。WhateverGreen会自动处理该步骤。
注入属性
device-id
用于伪造显卡。
帧缓冲区
指定AAPL,ig-platform-id
或AAPL,snb-platform-id
,以描述视频卡的可用输出和其他属性。以0x16260006为例,帧缓冲区数据如下。
1 | 06002616 01030303 00002002 00005001 |
06002616即0x16260006的小端形式,01030303与端口和管道数量有关。
00002002为帧缓冲区内存大小即framebuffer-stolenmem,00005001为游标字节大小即framebuffer-fbmem。两者的和必须小于DVMT的值。00002002转换为大端为0x02200000即34MB,00005001转换为大端为0x01500000即21MB,总计55MB,故DVMT必须大于55MB。
若DVMT仅可为32MB,可适当调整两者大小,将framebuffer-stolenmem设置为19MB即0x01300000,将framebuffer-fbmem设置为9MB即0x00900000。在Clover的KextToPatch中添加以下补丁即可。
1 | Comment: 0x16260006, 32MB BIOS, 19MB framebuffer, 9MB cursor bytes (credit RehabMan) |
也可将字段缩短,以适合更多平台的显卡。
1 | Comment: 0x19160002, 0x16160002, 0x16260002, 0x16220002, 0x162b0002, 0x16260005, 0x16260006, 32MB BIOS, 19MB framebuffer, 9MB cursor bytes (credit RehabMan) |
也可直接在设备属性中指定,如下。
1 | framebuffer-patch-enable=1 |
另外Skylake的0x19160000示例如下。
1 | ID: 19160000, STOLEN: 34 MB, FBMEM: 21 MB, VRAM: 1536 MB, Flags: 0x0000090F |
含义如下。注意有以下公式成立。
1 | MAX STOLEN = 0x100000 + STOLEN * FBMemoryCount + FBMEM |
参数 | 含义 |
---|---|
Flags | 帧缓冲区位掩码配置 |
STOLEN | framebuffer-stolenmem中的值 |
FBMEM | framebuffer-fbmem中的值 |
TOTAL STOLEN | 必须小于或等于BIOS中设置的值 |
TOTAL CURSOR | 屏幕上硬件光标的计算出的内存值 |
MAX STOLEN | 一般为TOTAL STOLEN,但如果Flags中有一个配置,则配置应尽可能地节省内存 |
MAX OVERALL | MAX STOLEN+TOTAL CURSOR |
FBMemoryCount | 可用帧缓冲区数量 |
自定义补丁
列表
所有自定义补丁如下。
参数 | 含义 |
---|---|
Semantic | |
framebuffer-patch-enable | 启用Semantic修补 |
framebuffer-framebufferid | 正在修补的帧缓冲区(默认为当前) |
framebuffer-mobile | |
framebuffer-pipecount | |
framebuffer-portcount | |
framebuffer-memorycount | |
framebuffer-stolenmem | 帧缓冲区内存大小 |
framebuffer-fbmem | 游标字节大小 |
framebuffer-unifiedmem | VRAM(不建议使用此补丁) |
framebuffer-cursormem | Haswell专用 |
framebuffer-flags | |
framebuffer-camellia | 集成显示控制器(仅与真实Mac相关) |
framebuffer-conX-enable | 启用连接器X修补 |
framebuffer-conX-index | |
framebuffer-conX-busid | |
framebuffer-conX-pipe | |
framebuffer-conX-type | |
framebuffer-conX-flags | |
framebuffer-conX-alldata | 完全替换连接器 |
framebuffer-conX-YYYYYYYY-alldata | 如果当前帧缓冲区匹配YYYYYYYY,则完全替换连接器 |
Binary | |
framebuffer-patchN-enable | 启用补丁N(N为补丁编号,可为0-9) |
framebuffer-patchN-framebufferid | 正在修补的帧缓冲区(默认为当前) |
framebuffer-patchN-find | |
framebuffer-patchN-replace | |
framebuffer-patchN-count | 要搜索的模式迭代的数量(默认为1) |
独显
添加属性disable-external-gpu=01000000即可,等同于启动参数-wegnoegpu。
音频
AppleALC会自动处理数字音频设备的部分,即注入hda-gfx属性以启用数字音频。未使用自定义补丁时,在10.10.5及以上系统,WhateverGreen将自动把connector-type由DP(00040000)改为HDMI(00080000)。物理连接类型可为HDMI/DVI/DP,但数字音频的connector-type必须为HDMI。
EDID
一般EDID会被自动识别。在极少数情况下需要手动注入EDID,添加属性AAPL00,override-no-connect即可,值为EDID内容,其中00的第二个0表示显示器编号。
修复最大像素时钟频率
需要添加属性enable-max-pixel-clock-override=01000000,以提高最大像素时钟限制。在ThinkPad P71/XPS 15的4K@60Hz屏幕必须,否则会黑屏,HDMI 2.0的4K@60Hz屏幕也适用。等同于启动参数-igfxmpc,该参数将最大像素时钟限制从SBL默认的450MHz提高到675MHz。
也可添加属性max-pixel-clock-frequency,更改默认最大像素时钟频率的675MHz限制,以Hz为单位。
也可使用enable-hdmi20=01000000,以跳过像素时钟验证。等同于启动参数-cdfon,但应首先使用-igfxmpc。
修复无效最大链接速率
该问题在Dell XPS 15 9570、带有夏普显示屏的Dell Inspiron 7590等出现。
需要添加属性enable-dpcd-max-link-rate-fix=01000000,以防止被零除导致的内核崩溃,同时修复从扩展DPCD缓冲区读取的无效最大链接速率值。等同于启动参数-igfxmlr。
可通过指定dpcd-max-link-rate,通过内置显示屏手动指定最大链接速率值,通常用于4K/1080p显示,值可为0x06(RBR)/0x0A(HBR)/0x14(HBR2)/0x1E(HBR3)。如果指定了无效值或未指定该属性,WhateverGreen将自动探测最大链接速率值。一般无需指定,在驱动程序不支持所探测的值则需要手动指定,以防止被零除导致的内核崩溃。
修复Skylake/Kaby Lake/Coffee Lake以高像素时钟速率建立Intel HDMI连接的无限循环
主要表现为插入HDMI电缆时,内置笔记本电脑的显示屏仍为黑色。
添加属性enable-hdmi-dividers-fix=01000000,或使用启动参数-igfxhdmidivs。
LSPCON驱动程序支持
KBL/CFL平台的笔记本通常配有HDMI 2.0端口,可路由到IGPU或DGPU。Intel(U)HD Graphics不提供本机HDMI 2.0输出,由LSPCON设备处理该事件。
LSPCON可在电平转换器(LS)或协议转换器(PCON)模式下工作,其中LS模式可产生HDMI 1.4信号,PCON模式可产生HDMI 2.0输出。
WhateverGreen通过自动将适配器配置为在新的HDMI连接上以PCON模式运行来提供对板载LSPCON的驱动程序支持,从而解决了某些平台上的黑屏问题。LSPCON驱动程序仅适用于将HDMI 2.0路由至IGPU的笔记本电脑和PC,除非新的IGPU开始提供本地HDMI 2.0输出,否则所有更新的平台都需要LSPCON驱动程序。支持SKL、KBL、CFL及更高版本。
若当前已经可正常工作,则无需启用以下修补。
添加属性enable-lspcon-support=01000000以启用驱动程序,或使用启动参数-igfxlspcon。
添加属性framebuffer-conX-has-lspcon=01000000以通知驱动程序哪个连接器具有板载LSPCON适配器,其中X为HDMI端口的相应连接器索引(0/1/2/3),可在IORegistryExplorer的IGPU下找到。若只有2K/4K HDMI监视器,可能需要先进行无限循环修复。
该选项可选。添加属性framebuffer-conX-preferred-lspcon-mode以为板载LSPCON适配器指定模式,为01000000(PCON,DP到HDMI 2.0)和00000000(LS,DP到HDMI 1.4)之一,无效值或未指定属性则指定为PCON模式。
核心显示时钟频率支持
添加属性enable-cdclk-frequency-fix=01000000,或使用启动参数-igfxcdc。
核心显示时钟(CDCLK)是显示引擎用来完成其工作的主要时钟之一。Apple的图形驱动程序期望固件已将时钟频率设置为652.8MHz或648MHz,实际值取决于硬件。部分笔记本将其设置为更低的值(如172.8MHz),此时将发生内核崩溃消息如Unsupported CD clock decimal frequency 0x158
。该补丁将时钟重新编程以将其频率设置为支持的值之一。
修复DVMT预分配内存计算错误导致的panic
添加属性enable-dvmt-calc-fix=01000000,或使用启动参数-igfxdvmt,以修复修复ICL平台上DVMT预分配内存量的计算,防止内核恐慌Unsupported ICL SKU
。
苹果图形驱动程序读取BIOS或固件中设置的DVMT值并计算内存总量,但计算过程仅适用于预分配的内存大小为32MB的倍数。当笔记本电脑在ICL+平台上默认将DVMT设置为60MB时,framebuffer控制器会用预分配的错误的内存初始化STOLEN内存管理器。
当前STOLEN内存不够时出现的panic已被消除,但仍建议使用该补丁。
启用补丁后可在IORegistryExplorer查看图形设备下的fw-dvmt-preallocated-memory属性中找到实际的DVMT预分配内存数量,单位是MB。
修复Haswell缓冲区故障
添加属性framebuffer-cursormem即可。
弥补AzulPatcher4600
以下补丁等同于使用AzulPatcher4600.kext。注意该kext已被合并到WhateverGreen。
1 | <dict> |
说明
VGA支持
Skylake及更高版本提供VGA支持。对于Ivy Bridge及附近的次代,可使用以下选项修补connector。
1 | 06020000 02000000 30000000 // Option 1 |
在10.8.2及更高版本上,不可能在Ivy Bridge启用VGA。
热插拔VGA一般不起作用。
Mac系统启动过程
引导器启动
以OpenCore为例,启动过程如下。
1 | 电脑启动,搜索引导设备 |
boot.efi切换
切换至Mac引导加载程序boot.efi,为内核加载准备环境。OpenCore在该环节注入kexts。
XNU/内核切换
boot.efi准备好环境后,内核进入根阶段(Rooting Phase)。该阶段验证SMBIOS数据,加载ACPI表/Kexts。若SSDT/Kexts损坏,或内存映射混乱,将导致该阶段出现问题。
出现[ PCI configurations begin ]后,将开始进行硬件测试,IOKit开始硬件探测以查找要附加到的设备的地方。测试的主要内容包括EC、存储介质、PCI/e、NVRAM、RTC、PS2、I2C等。
完成后将进行USB映射,注意15端口限制将在此时发挥作用。若找不到启动设备,Waiting for Root Device错误将在此时出现。
在出现Waiting for DSMOS时,FakeSMC/VirtualSMC开始发挥作用。DSMOS本身为一个kext,验证系统是否有SMC并会请求密钥。如果缺少此密钥,则DSMOS将不会解密其余的二进制文件,系统启动将卡住。卡在kextd stall[0]: AppleACPICPU也为此错误。
出现AppleHDADriver时,音频驱动程序起作用,AppleALC使机器音频工作。完成后进入GPU驱动程序初始化,WhateverGreen发挥作用,出现IOConsoleUsers提示。若卡在此,则一般为GPU本身问题,而非WhateverGreen本身的问题。
macOS切换
出现Apple标志,启动系统。
ROM/MLB/序列号
ROM部分定义在SmUUID中,应为12个字符,符合Apple的MAC地址标准,否则非法。
MLB即Main Logic Board,用于识别硬件。序列号以MLB为基础生成。前期序列号为11位,MLB为13位。后期序列号为12位,MLB为17位。
序列号和MLB不共享制造位置和型号ID,序列号中的定义对MLB无效。MLB和序列号有逻辑匹配,但不能按字母匹配。
序列号
序列号格式如下。
1 | 生产地P/年Y/周W/在该周的产品号S/ID型号C |
MLB
1 | 生产地P/年Y/周W/在该周的产品号S/ID型号C |
资料
长期更新教程
应长期关注以下教程。
1 | # 于2021-06-06阅读 |
论坛和博客
1 | https://dortania.github.io/ |
硬件选择
1 | https://wiki.osx86project.org/wiki/index.php/Main_Page |
显卡
1 | https://applelife.ru/threads/ati-radeon-hd-4xxx-hd-5xxx-amd-radeon-hd-6xxx-hd-7xxx-r5-r7-r9-rx-vega.28890/ |
ACPI
1 | https://uefi.org/specifications |
引导器
1 | # 还没看的 |
问题库
1 | https://www.tonymacx86.com/threads/readme-common-problems-and-workarounds-on-10-14-mojave.255823/ |
亮度修复
1 | https://www.tonymacx86.com/threads/native-brightness-working-without-blinkscreen-using-patched-applebacklight-kext.121031/ |
电源管理
1 | https://www.tonymacx86.com/threads/macos-native-cpu-igpu-power-management.222982/ |
旧版系统
1 | https://wiki.osx86project.org/wiki/index.php/Install_On_A_Partition_Simple_And_Accurate |
其它
1 | https://wiki.osx86project.org/wiki/index.php/Hardware_.kext_Patching_List |
引导器
在macOS中,可通过在终端上输入以下命令获取引导器路径。
1 | nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:boot-path |
可通过在终端上输入以下命令获取OEM信息。
1 | nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:oem-product # SMBIOS Type1 ProductName |
基本概念
更名补丁
一般不建议使用过多的更名补丁,尽可能只添加和Method名称有关的重命名,而且要通过SSDT确保在非Mac下要调用并返回原始函数,即原始DSDT行为不会被改变。所需要的SSDT一般在OC-little包中均可找到。
| 更名补丁 | 作用 | 替代方法 |
| ———————————————————— | ———————————————————— | |
| change EHC1/EHC2 to EH01/EH02 | 避免与内置USB注入器冲突 | 六代(Skylake)及以上的机器已经没有EHC控制器了,建议用SSDT-EHCx_OFF关闭EHC控制器、并把重命名删除,六代以下机器保留该重命名 |
| change XHC1/XHCI to XHC | 避免与内置USB注入器冲突 | 进行USB定制 |
| change SAT0/SAT1 to SATA | 实现潜在的SATA兼容性 | 实质上完全没用 |
| change _OSI to XOSI | 配合SSDT-XOSI.dsl启用系统操作补丁 | 除非某些硬件设备只能在Windows下工作(I2C触摸板只能在Windows下使用,或ThinkPad对 FreeBSD的特殊优化),否则完全没有必要使用,而且大部分情况下直接定制SSDT也可以解除某些硬件的操作系统限制 |
| change OSID to XSID | 配合SSDT-XOSI.dsl启用系统操作补丁 | 除非某些硬件设备只能在Windows下工作(I2C触摸板只能在Windows下使用,或ThinkPad对 FreeBSD的特殊优化),否则完全没有必要使用,而且大部分情况下直接定制SSDT也可以解除某些硬件的操作系统限制 |
| change APSS to APXX | 可能导致AppleIntelCPUPowerManagement出现紧急情况,如果ACPI中不存在APSS,则无需启用 | |
| change _DSM to XDSM | 对于VoodooI2C可能是必需的 | 遍历SSDT补丁,若没有依赖_DSM
,则应该删除(这个重命名涉及范围太大、太过于危险) |
| change LPC to LPCB | 为macOS修补低引脚数总线 | |
| change _REG to XREG in EC0 | 对于电池状态可能是必需的 | |
| ALS: change Method(RALS,0,S) XALS | 对于环境光传感器可能是必需的 | |
| Fix 300-series RTC Bug(Find A00A935354415301, Replace A00A910AFF0BFFFF) | 修复300系主板的RTC问题 | |
| change HECI/HEC1/MEI to IMEI | | WhateverGreen能够处理这个问题 |
| change IDER to MEID | | WhateverGreen能够处理这个问题 |
| change GFX0 to IGPU | | WhateverGreen能够处理这个问题 |
| change PEG0/PEGP to GFX0 | | WhateverGreen能够处理这个问题 |
| change SL01 to PEGP | | WhateverGreen能够处理这个问题 |
| change B0D3 to HDAU | | WhateverGreen能够处理这个问题 |
| change EC0/H_EC/ECDV/PGEC to EC | | 对于台式机可使用仿冒EC补丁(随意重命名EC控制器可能会对硬件造成伤害) |
| change HDAS/CAVS/AZAL to HDEF | | AppleALC能够处理这个问题 |
| change STAS to Noop | 同时启用两个时钟设备(其中Mac下仅有RTC起作用),无法在BIOS中禁用AWAC时使用(Mac不支持新的时钟设备AWAC,因此需要使用传统的 RTC,在DSDT中有一个STAS变量使AWAC和RTC互锁,避免两个时钟设备同时启用,注意若该重命名在Windows下生效,则Windows下将会暴露两个时间设备,这对系统有害且违反ACPI规范) | 用SSDT-AWAC替代 |
| change PXSX to ANS1/ANS2 | 修复NVMe SSD的电源管理 | 用NVMeFix.kext |
| change PXSX to ARPT | 修复Wifi | 用AirportBrcmFixup |
| change LPC0 to LPCB | 添加SMBUS支持 | SBUS的SSDT注入补丁和MCHC设备补丁SSDT-SBUS-MCHC |
| change PC00 to PCIO | | 实质上完全没用 |
| change FPU to MATH | | 实质上完全没用 |
| change TMR to TIMR | | 实质上完全没用 |
| change GBE1 to ETH0 | | 实质上完全没用 |
| change PIC to IPIC | | 实质上完全没用 |
驱动
内存管理驱动
固件会将内存分成小块,分配给计算机中的各种设备以及操作系统内核。Windows可以很好的适应这种机制,并会主动将NT内核映射到内存中。而Mac不仅需要更大的内存区块,非Mac设备的内置硬件设备数量也比Mac设备要更多,所以黑苹果需要在EFI中添加专门的驱动为Mac内核预留内存。若Mac无法获取正确的内存空间,将会造成内核无法加载。
一般而言,Mac将采用KASLR技术进行内存分配,即内核地址空间布局随机化,以防止攻击者获取重要对象在内存中的位置。但在内存太小或设备太多时,可能会因为内核所得到的内存空间大小而导致启动失败。此时需要让内核在内存固定区域。需要指出的是,KASLR找到需要操作的内存区域大约需要31ms,手动设置内存区域可节约该时间。
错误消息一般如下。若启动Mac时出现,则需要关闭CFG锁,更新引导和Whatevergreen,并修复内存分配。
1 | # 错误一 |
一般而言,采用固定内存分配时,内核被分配到0x100000+X*0x200000
,其中X通过启动参数slide=X
传递,称为slide值。slide=0代表隐式关闭,在安全模式下将无法启动系统。slide=0x1-0x7F代表内核被分配到0x100000+0x200000至0x100000+0xFE00000。对于Sandy Bridge或Ivy Bridge架构,slide=0x80-0xFF代表内核被分配到0x100000+0x20200000至0x100000+0x30000000,对于其它架构则为0x100000+0x10000000至0x100000+0x1FE00000。
各内存管理驱动如下,按照发行顺序从早到晚排序。
名称 | 对于Clover | 对于OpenCore | 备注 |
---|---|---|---|
OsxLowMemFixDrv | 精简版的OsxAptioFixDrv,用于修复UEFI固件上的低位内存问题,两个不能同时使用(针对Insyde H2O UEFI的笔记本,一般不使用) | 不兼容(FwRuntimeServices和OpenCore) | 自Clover r608版本后不再维护 |
OsxAptioFixDrv/OsxAptioFix2Drv | 修复AMIAptioEFI内存映射(一般只用OsxAptioFixDrv) | 不兼容(FwRuntimeServices和OpenCore) | Clover r4368版本之前内置的内存分配驱动,不支持 NVRAM,其中OsxAptioFix2Drv是OsxAptioFixDrv 的简化的版本,去掉了内置内存分配算法,因此不能用在旧版本的Mac或者老硬件,但可以提供休眠支持 |
OsxAptioFix3Drv | 修复AMIAptioEFI内存映射 | 不兼容(FwRuntimeServices和OpenCore) | Clover r4369版本之后至今内置的内存分配驱动,提供了对NVRAM的支持,现在仍由Clover团队维护 |
OSXAptioFix2Drv-Free2000 | 内存驱动,用于修复UEFI固件上的内存问题,只适用于一些特定的硬件、特定的设备、特定的内存大小 | 不兼容(FwRuntimeServices和OpenCore) | 作者已经声明会损坏硬件https://www.reddit.com/r/hackintosh/comments/cfjyla/i_unleashed_a_plague_upon_you_guys_and_i_am_sorry/ |
AptioMemoryFix | NVRAM和内存驱动,用于修复UEFI固件上的内存问题(6代及以上电脑推荐使用) | 不兼容(已集成为FwRuntimeServices) | Acidanthera团队开发,相比OsxAptioFix3Drv更好,AptioMemoryFix、AptioInputFix、CleanNvram合并发布为AptioFixPkg |
OpenRuntime | 通过OcQuirks使用,参见本章Clover部分 | OpenCore最新的内存管理系统,原名FwRuntimeServices,用于实现OC_FIRMWARE_RUNTIME协议,允许隔离操作系统对所选变量的访问(如RequestBootVarRouting/ProtectSecureBoot),增强了OpenCore、Lilu以及Lilu插件的安全性(如VirtualSMC实现了AuthRestart支持),保护所有变量避免被不信任的操作系统写入(如DisableVariableWrite),UEFI Runtime Services内存保护管理以避开只读映射的问题(如EnableWriteUnprotector)。使用该驱动以替代以上所有驱动 |
对于OpenCore,使用最新的OpenRuntime即可。对于Clover,引导较新系统时应当使用OcQuirks以使用OpenRuntime。
在Clover上引导旧版系统时,可使用旧版驱动,其中应当按照AptioMemoryFix->OsxAptioFix3Drv->OsxAptioFix2Drv->OsxAptioFixDrv的顺序修复,每次只用一个,各驱动不能共用。
注意应当尽量避免使用slide启动参数。前三个驱动尝试不使用启动参数slide=#
,若不行则使用该参数,而最后一个驱动必须使用启动参数slide=0
。
其中#的值需要通过计算。记录启动时出现的错误信息,例子如下。取pages前面的数字,此处为0x116F6。
1 | Error allocating 0x0x116F6 pages at 0x00000000093eb000 alloc type 2 |
制作UEFI Shell并进入,输入以下命令。
【进阶】对于OpenCore
对于OpenCore,UEFI Shell可为OpenShell。注意需要在配置文件的Booter中修改以下内容。
1 | AvoidRuntimeDefrag: YES |
1 | memmap -b |
在第十行左右找到符合要求的数据,其中Type为Available,Pages的值不小于刚才记录的值即0x116F6,Start的值大于10000000。使用Start/200000+1
计算出slide值,忽略小数点后数字,计算结果为十六进制,转换为十进制即可。注意,BIOS更新后可能需要重新计算该值。
【进阶】其它算法
取Start一列的最大值,设为X。计算(X-0x100000)/0x200000,得到slide值,设为Y。
若0x100000+(Y0x200000)=X,则slide值即为X。若0x100000+(Y0x200000)<X,则slide值为X+1。
若slide值大于256,则取Start一列的第二大值,重复以上操作,直至slide值小于256。若slide值类似-0.379150390625,则取为0。
注意,有时内存速度过快会出现系统无法进入的问题,此时可以通过BIOS调低内存频率。如i7 8700k上可以正常运行32GB 3000MHz,而出于稳定性方面的考虑,i7 6700k可能必须降至2666MHz。
【进阶】OpenCore的DevirtualiseMmio
DevirtualiseMmio采用MMIO区域并删除Runtime属性,扩大slide的范围,与ProvideCustomSlide搭配使用可保证slide的安全属性。
对于Threadripper TRX40 19H等问题严重的系统,需要指定不需要进行操作的区域,这些区域将在MmioWhitelist中被定义。以打开了DevirtualiseMmio的OpenCore调试版本引导系统,可在日志中看到如下类似内容。
1 | 21:495 00:009 OCABC: MMIO devirt start |
将十六进制转换为十进制后,在配置文件中的Booter-MmioWhitelist下分别添加转换好的地址即可。
其它驱动
各驱动的作用和适用范围如下。
名称 | 对于Clover | 对于OpenCore |
---|---|---|
LegacyRegion2Dxe | 某些旧的UEFI BIOS需要 | |
NTFS | NTFS文件系统驱动程序(一般不使用,此模块与一些主板的UEFI不兼容) | 同Clover |
AppleEfiSignTool | 验证AppleEFI二进制文件的开源工具(一般不使用) | |
AppleImageLoader | 保护AppleEfiFat二进制驱动程序,将AppleEFI二进制文件安全加载到内存中(一般不使用) | |
AppleEvent | 不兼容(已集成) | |
AppleImageCodec | 为Clover启动FileVault 2解码PNG和BMP | 不兼容(已集成) |
AppleKeyMapAggregator | 不兼容(已集成) | |
AppleUISupport | 实现了FileVault支持,同时包含一些主板的哈希服务修复和unicode排序规则,替换了AppleKeyMapAggregator、AppleEvent、AppleUiTheme、FirmwareVolume、AppleImageCodec(一般不使用) | 不兼容(已集成) |
SMCHelper | UEFI层面的SMC驱动,VirtualSmc.efi的替代品,与FakeSMC配合(不能与VirtualSMC.kext配合使用) | 不兼容 |
HashServiceFix | 修复UEFI BIOS中的哈希支持 | 不兼容(已集成且提供了这个Quirk) |
FirmwareVolume | 为启动FileVault 2创建FirmwareVolume光标 | 不兼容(已集成) |
EnhancedFatDxe | 无法直接从引导器调用,如果在引导过程中写入EFI分区出现问题,则需要将此驱动用UEFITool刷入固件中(除非EFI分区格式为FAT16且在开机过程中可能会往EFI分区写入文件时考虑使用) | 同Clover |
EnglishDxe | 在UEFI Shell中支持Unicode Collation协议 | 不兼容(已集成且提供了这个Quirk) |
CsmVideoDxe | 用于Clover GUI的显卡驱动,允许使用更多分辨率,基于UEFI BIOS中的CSM兼容模块,并将启用所需的CSM(6代以前核显开CSM使用) | 不兼容 |
AudioDxe | 启动时播放声音的HDA驱动 | 在UEFI环境播放音频的驱动 |
AppleUITheme | 为Clover支持FileVault 2启动UI主题的驱动 | 不兼容(已集成) |
AppleKeyFeeder | 为Clover支持FileVault 2内PS/2键盘输入的驱动 | 不兼容(已集成) |
AppleKeyAggregator | 为Clover支持FileVault 2启动UI的驱动 | 不兼容(已集成) |
APFS/ApfsDriverLoader | 从此容器加载已嵌入APFS容器中的apfs.efi驱动程序 | 不兼容(OpenCore 0.5.8始已集成) |
Ps2KeyboardDxe | 为三代以前机型准备的PS/2键盘驱动 | 不提供对AppleKeyMapAggregator的支持,因此需要启用KeySupport这个Quirk |
PS2MouseDxe/PS2MouseAbsolute/UsbMouseDxe | 使鼠标/触摸板在CloverGUI界面工作(已存在于所有UEFI固件,一般不使用,三代以前机型才考虑使用) | 同Clover |
Usb*/UHCI/EHCI/XHCI | 解决依赖性关系不满足导致的内建驱动工作不正常的情况的一组驱动(一般不使用) | |
OsxFatBinaryDrv | 允许macOS 10.9以下版本加载FAT模块(如boot.efi) | 不兼容(FwRuntimeServices和OpenCore) |
DataHubDxe | macOS要求强制启动的协议(一般选用,不会引起冲突) | 不兼容(已集成且提供了这个Quirk) |
PartitionDxe/PartitionDxeLegacy | 支持非常规分区图的驱动,用于加载旧版Mac(早于10.9)分区DMG映像文件的驱动(混合GPT/MBR或Apple分区图等,四代以前机型用PartitionDxeLegacy) | 兼容性未知 |
EmuVariableUefi | 对某些UEFI启动无法调用NVRAM的机器提供的NVRAM模拟(部分Skylake架构的机器需要,如Phoenix UEFI、DELL Vostro、ThinkPad,仅在必要时使用) | 不兼容(替代品为VariableRuntimeDxe) |
FSInject | 加载第三方kexts | 不兼容(已集成更先进的方法) |
VBoxExt4 | EXT4文件系统驱动,用于启动LinuxEFI系统 | 同Clover |
VBoxExt3 | EXT2/3文件系统驱动,用于启动LinuxEFI系统 | |
AptioInputFix/AppleGenericInput | 解决了某些固件上的鼠标输入问题(AppleUsbKbDxe的等效驱动),添加了对AppleKeyMapAggregator协议支持的用户输入驱动,为FileVault 2 GUI输入支持提供AMIAPTIO专有鼠标和键盘协议(通常修改的UsbKbDxe更好,一般不使用) | 不兼容(已集成) |
AppleDxeImageVerificationLib | 为EFI二进制文件提供Apple的加密签名算法(一般不使用) | |
ExFatDxe/ExFatDxeLegacy | 除非EFI/某个系统分区是ExFAT格式,否则不需要保留(在四代以前机型上由于缺少RDRAND指令支持,应使用ExFatDxeLegacy) | 同Clover |
HfsPlus/HfsPlusLegacy/VBoxHfs/OpenHfsPlus | HFS+文件系统驱动程序,留其一即可(一般推荐用HfsPlus,四代以前机型由于缺少RDRAND指令支持应用HfsPlusLegacy,VBoxHfs/OpenHfsPlus性能较差) | 同Clover |
OpenPartitionDxe | 启动10.7至10.9的恢复分区时必须,OpenDuet已内置该驱动 | |
UsbKbDxe | 当内置驱动程序不适用于固件时,用于Apple Hotkeys和FileVault支持,已被取代为OpenUsbKbDxe | |
AppleUsbKbDxe/OpenUsbKbDxe | 给使用模拟UEFI的老主板在OpenCore界面正常输入用,添加了对AppleKeyMapAggregator协议支持的USB键盘驱动,是AppleGenericInput的等效驱动(仅在运行DuetPkg的旧系统上使用,勿在Ivy Bridge即三代酷睿及以上的主板使用,否则将造成硬件损害,现代机型应使用OpenCore中KeySupport这一Quirk) | |
NvmExpressDxe | 四代(Haswell)以前机型使用的NVMe硬盘加载驱动,支持SSD连接到NVM Express总线,若安装了NVMe SSD则需要使用 | 同Clover |
XhciDxe | HCI USB控制器支持驱动程序,为二代(Sandy Bridge)以前的主板提供USB3支持(主要是Intel控制器) | 同Clover |
HiiDatabase | 为四代以前的设备提供UEFI界面字体渲染支持,UEFI Shell中文字渲染异常时使用,Ivy Bridge(3代酷睿)或更老代主板上适用 | 同Clover |
VirtualSmc | 已被替代为AppleSmcIO这一Quirk | |
CrScreenshotDxe | 增加OpenCore UI内截屏功能,快捷键为左Ctrl+左Alt+F12 | |
OpenCanopy | 加载第三方主题,实现图形引导界面 | |
FwRuntimeServices | 不兼容 | 通过支持只读/只写NVRAM变量提高OpenCore和Lilu的安全性,已被OpenRuntime替代 |
MemoryAllocation | 为Z390/X99等主板预留第一组512MB内存,帮助引导工具注入内核以及内核缓存至第一组512MB内存,需要配合FwRuntimeServices和引导标识符slide=1(若要使用hibernation功能请勿使用) | |
UsbMouseDxe | USB鼠标驱动程序(仅在运行DuetPkg的旧系统上使用) | |
VBoxExt2 | EXT2文件系统驱动,用于启动LinuxEFI系统 | 同Clover |
VBoxIso9600 | ISO9600文件系统驱动 | 同Clover |
GrubUDF | 加载UDF文件系统 | 同Clover |
GrubNTFS | 加载NTFS文件系统 | 同Clover |
GrubISO9660 | 加载ISO9660文件系统 | 同Clover |
GrubEXFAT | 加载NTFS文件系统 | 同Clover |
TbtForcePower | 启用ThunderBolt热插拔 | |
VariableRuntimeDxe | EDK II 的NVRAM驱动,OpenCore中用于模拟NVRAM,需要配合FwRuntimeServices(.efi)和DisableVariableWrite(Quirk) | |
BootChimeDxe | 不兼容(已集成) |
启动参数
普通参数
很多参数可以通过在内核或驱动程序代码中寻找PE_parse_boot_argn函数找到。
Core Dump指当程序运行的过程中异常终止或崩溃,操作系统将程序当时的内存状态记录下来,保存在文件中。
参数 | 对于Clover | 对于OpenCore |
---|---|---|
内核与Lilu | ||
-v | 啰嗦模式(跑代码模式,用于排错) | |
-x | 安全模式(忽略所有非必要的kext文件和引导设置,特别适用于黑苹果) | |
-s | 单用户模式(命令行模式) | |
f | 旧版安全模式 | |
-D | mach_init在正常模式下启动,启动的服务器不进行核心转储,不推荐使用 | |
-d | mach_init在调试模式下启动,并带有大量日志记录。核心转储用于所有启动的崩溃服务器。在10.4或更高版本上,此参数使启动的程序在初始化期间尽早进行守护进程 | |
-f | 启动时强制重建内核扩展(kext)缓存(只有从10.6到10.9的64位内核支持无缓存启动) | 将Kernel-Scheme-KernelCache设置为Cacheless |
-b | 内核在其重新启动标志变量中设置RB_NOBOOTRC,以不执行/etc/rc.boot,不推荐使用 | |
-l | 日志中输出内存泄漏相关记录(osfmk/kern/startup.c) | |
-r | mach_init将其自身注册在其先前运行的副本中,不推荐使用 | |
-legacy | 启动到32位内核 | |
-liluoff | 跳过Lilu.kext | |
-no-zp | 区域推迟 | |
-no_compat_check | 关闭兼容性检查(适用于10.7以上的版本) | |
MountEFI=yes/diskX | 挂载所有/某个EFI分区 | |
config=A | 用/Library/Preferences/SystemConfiguration/A.plist代替com.apple.Boot.plist | |
LogLineCount=0 | 设置日志文件最大行数(0为无限制) | |
LogLocation=PATH | 日志文件保存路径 | |
LogEveryBoot=yes/no | 每次启动保存日志文件 | |
dart=0 | 关闭64位硬件上的系统PCI地址映射器(DART),修复因开启VT-d导致系统启动错误,同时删除DMAR表,在10.15上需要禁用SIP(DART在拥有2GB以上物理内存的机器上是必需的,但在所有机器上无论内存大小,默认情况下都会启用DART) | 不推荐使用,更改为Kernel-Quirks-DisableIoMapper |
darkwake=no/0/1/2/3/4/8/10 | 禁止系统休眠/设定休眠模式为固定数值 | |
kext-dev-mode=1 | 启用第三方驱动(不要在El Capitan及以上系统使用) | 不需要(OpenCore使用了内核注入方法) |
rootless=0 | rootless模式(不要在El Capitan及以上系统使用) | |
arch=i386 | 以32位内核模式启动 | |
arch=x86_64 | 以64位内核模式启动 | |
-legacy | 强制启动到32位用户区 | |
-force64 | 强制启动到64位用户区(AMD CPU通常需要32位内核与64位用户区) | |
npci=0x2000 | 在旧设备上禁用 kIOPCIConfiguratorPFM64,解决独立显卡PCIconfiguration begin卡住不动的问题 | |
npci=0x3000 | 解决独立显卡PCIconfiguration begin卡住不动 | |
Kernel=mach_kernel | 从系统内核启动 | |
rd=disk0s1 | 强制指定启动分区 | |
rd=*/PCI0@0/CHN0@0/@0:1 | 啟動PCI RAID卡,格式rd=*<IODeviceTree path> |
|
rp | 根目录位置 | |
trace | Kernel Trace缓冲区大小 | |
initmcl | 初始化mbuf集群 | |
socket_debug | 套接字调试 | |
net_affinity | 净亲和度 | |
rte_debug=flags | 路由调试 | |
msgbuf | 消息缓冲区 | |
mseg | 最大细分 | |
mcache_flags | 内存缓存标志 | |
-rwroot_hack | 挂载root读/写 | |
mbuf_debug=1 | MBuf调试 | |
boot-uuid | 引导UUID | |
config=foobar | 加载/Library/Preferences/SystemConfiguration/foobar.plist以代替com.apple.Boot.plist | |
iog=0x0 | 强制Mac在笔记本上不使用Clamshell模式,当外接了显示器和键盘,合盖后笔记本不会睡眠,但内置显示器将会关闭 | |
serverperfmode=1 | 在macOS Server中开启性能模式 | |
_panicd_ip=11.4.5.14 |
设置一个Kernel Panic收集服务器的IP地址,日志将会通过UDP协议发送给这个IP的1069端口 | |
panicd_port | 修改日志发送端口(默认为1069) | |
-zc | 自由区元素检查 | |
keepsyms=1 | 保留KLD/Address-Symbol翻译,配合debug=0x100使用,使操作系统在内核崩溃时打印符号 | |
artsize | 指定要用于地址解析表(ART)的页数 | |
dtrace_dof_mode=0/1/2/3 | 设置DTrace DOF模式 | |
DisableFBT=1 | 关闭FBT | |
IgnoreFBTBlacklist=1 | 忽略FBT黑名单 | |
BootCacheOverride=1 | BootCache驱动程序被加载,但从网络启动时不会运行,设置BootCacheOverride=1可以覆盖此行为 | |
diag | 启用内核的内置诊断接口及其特定功能 | |
serial | 串行诊断控制台 | |
io=# | I/O Kit驱动调试位,设置为0x00200000(即kIOLogSynchronous)时会使IOLog()函数同步执行 | |
novmx=1 | 禁用AltiVec | |
pcata=0 | 禁用板载PC ATA驱动器(加载轮询模式驱动程序可能可以开启) | |
_router_ip=11.4.5.14 |
使用跨局域网内核调试时指定网关IP | |
serial=1 | 启用串口调试 | |
serialbaud | 指定串行端口的波特率。kprintf()函数的初始化例程检查此参数 | |
smbios=1 | 在SMBIOS驱动中启用详细的日志信息,仅限于32位机器 | |
vmdx/pmdx | 内核启动时在内存中创建一个分区,参数格式为base.size,其中base是对齐的内存地址,size是内存页面大小的倍数。vmdx指虚拟内存、pmdx指物理内存,创建成功后将会被分别挂载在dev/mdx和dev/emdx下 | |
srv=1 | 在X Servers或macOS Server系统中使用这一参数时会修改内核的电源和网络参数,提升作为服务器的性能 | |
ncl | 集群数 | |
nbuf | BSD的缓冲区数 | |
kmem=1 | 内核内存访问 | |
nvram_paniclog=1 | 将Kernel Panic日志写入NVRAM | |
pmsafe_debug=1 | 将CPU置于安全电源模式 | |
preempt | 设置默认抢占率 | |
unsafe | 最大unsafe quanta | |
poll | 最大poll quanta | |
yield | Schedule poll yield shift | |
kextlog=# | kext加载调试位 | |
lapic_dont_panic=1 | 禁用AP内核的LAPIC Panic伪中断行为 | |
smcdebug=# | AppleSMC调试位 | |
ctrc | 限制对特定处理器的跟踪 | |
kdp_match_mac | 指定要由远程内核调试协议使用的MAC地址 | |
kdp_match_name | 指定远程内核调试协议将使用的BSD网络接口名称 | |
mcklog | 指定机器检查标志 | |
tb | 指定非默认的跟踪缓冲区大小。内核将事件跟踪到循环内存缓冲区。默认情况下,内核在调试模式下使用32页,在非调试模式下使用8页。取值范围为1-256 | |
vmmforce | 将虚拟机监视器VMM特性指定为特性位的逻辑或,对所有虚拟机实例都是强制的 | |
wcte=1 | 在PowerPC不可缓存单元(NCU)中启用写入合并计时器(或存储收集计时器),默认禁用 | |
debug=参数 | ||
将所需选项数字求和后作为参数 | ||
debug=0x1 | DB_HALT,在引导时暂停,直到外部调试串口已经连接并被识别 | |
debug=0x2 | DB_PRT,将内核的printf()函数输出的信息打印到 Console.app | |
debug=0x4 | DB_NMI,启用内核调试功能,包括生成非屏蔽中断(NMI),在Power Mac上只需简单地按下电源键就能产生NMI。在笔记本电脑上在按下电源键时必须按住命令键,如果按住电源键超过五秒钟,系统将关闭电源,在系统偏好设置中更改启动盘时,DB_NMI位将被清除 | |
debug=0x8 | DB_KPRT,将kprintf()产生的内核调试输出发送到远程输出设备,通常是一个调试串口(如果有的话),注意kprintf()的输出是同步的 | |
debug=0x10 | DB_KDB,使用KDB代替GDB作为默认的内核调试器。与GDB不同,KDB必须被显式编译到内核中,此外基于KDB的调试需要原生的串口硬件(而不是基于USB的串口适配器) | |
debug=0x20 | SB_SLOG,启用将杂项诊断记录到系统日志中,设置了这个位后load_shared_file()内核函数会记录额外的信息 | |
debug=0x40 | DB_ARP,允许跨局域网调试内核 | |
debug=0x80 | DB_KDP_BP_DIS,已经被弃用,用于支持旧版的GDB | |
debug=0x100 | DB_LOG_PI_SCRN,禁用五国而把Kernel Panic的相关数据直接打印在屏幕上,还可用于Core Dump | |
debug=0x200 | DB_KDP_GETC_ENA,在 Kernel Panic 后启用快捷键(c继续,r重启,k进入KDB) | |
debug=0x400 | DB_KERN_DUMP_ON_PANIC,当Kernel Panic时触发一次Core Dump | |
debug=0x800 | DB_KERN_DUMP_ON_NMI,当产生NMI时触发一次Core Dump | |
debug=0x1000 | DB_DBG_POST_CORE,等待调试器连接(如果使用GDB)或在NMI触发的内核转储后等待调试器(如果使用 KDB),如果没有设置DB_DBG_POST_CORE,内核在Core Dump后继续运行 | |
debug=0x2000 | 只生成并发送Kernel Panic Log,不生成完整的Core Dump | |
内存 | ||
maxmem=# | 将可寻址内存限制为#MB | |
slide=# | 手动设置KASLR slide值为# | |
fill | 指定一个整数值,启动时用这个整数填充所有内存 | |
?memory= | 显示系统内存信息 | |
CPU,ACPI与电源 | ||
-xcpm | 在Ivy Bridge系统里强制xcpm使用系统内核以实现CPU原生电源管理 | |
cpus=# | 启用#个CPU核心(cpus=1为使用单核模式) | |
himemory_mode | 用于调试超过4GB系统的大型物理内存配置(0-所有页面可用,1-禁用高内存,2-首选高内存) | |
-nossse3bit | 启用AMD CPU的SSSE3仿真 | |
acpi | 启用AppleACPIPlatform调试 | |
acpi=off | 关闭电源管理 | |
acpi=ht | 以ACPI boot table启动 | |
acpi=force | 强制启动ACPI | |
acpi=strict | 限制ACPI | |
acpi=noirq | 不设定ACPI使用的IRQ | |
acpi_sci={edge,level,high,low} | 设定ACPI SCI中断 | |
idlehalt=1 | 无视所有空闲进程,使CPU进入低功率模式,系统闲置一段时间会停止电源(0为关闭,1为启动) | |
panic_io_port=0x0(,0x1,…,0xffff) | 从该I/O端口读取panic | |
cpuidle=1 | CPU省电模式,CPU闲置一段时间后会停止电源(0为关闭,1为启动) | |
platform=X86PC | 强制禁用ACPI电源管理 | |
platform=ACPI | 强制启用ACPI电源管理 | |
fn=1 | 关闭强制休眠 | |
fn=2 | 开启强制休眠 | |
_fpu |
禁用x86上的FPU功能,_fpu=387 将禁用FXSR/SSE/SSE2,_fpu=se 将禁用SSE2 |
|
immediate_NMI=1 | 强制立即使用NMI调试器 | |
lcks | 锁定统计信息 | |
novmx=1 | 在Rosetta禁用altivec仿真 | |
max_valid_dma_addr | 最大有效DMA地址 | |
maxbouncepool | 最大反弹池大小 | |
maxloreserve | 最大低储备 | |
npvhash | 物理到虚拟的哈希映射 | |
wpkernel=1 | 内核写保护 | |
-no_shared_cr3 | 禁用64位用户的共享内核地址空间 | |
-pmap_trace | 为pmap启用内核跟踪 | |
hfile | 休眠文件的名称(这一参数也会修改sysctl中的kern.hibernatefile变量) | |
pmsx=1 | 在10.4.3上启用实验性电源管理(PMS) | |
busratio=# | 规定CPU总线比率为20 | |
acpi_layer=0xFFFFFFFF | ||
acpi_level=0xFFFF5F | 代表ACPI_ALL_COMPONENTS | |
acpi_sleep | ACPI睡眠 | |
nvdebug | NVDAResman调试 | |
nvrm | NVDAResman | |
ndrv_debug_level | NDRV调试级别(NVDAResman) | |
pstep | 功率步调试(ACPI_SMC) | |
hpet | AppleHPET | |
batman=# | AppleSmartBatteryManager调试位 | |
batman-nosmc=1 | 禁用AppleSmartBatteryManager SMC接口 | |
ioaccel_debug=# | IOAccelerator调试掩码 | |
nvram-log=1 | 启用AppleEFINVRAM日志 | |
显卡与Whatevergreen | ||
forceRenderStandby=0 | 禁用RC6 Render Standby,避免NVMe内核panic以及KBL/CFL可在低功耗状态下由于显卡导致的系统不稳定 | |
nv_disable=1 | 禁止加载Nvidia独显驱动 | |
nvda_drv=1 | 让系统安装Nvidia官方WebDriver显卡驱动(10.12+失效,对于Clover在配置文件勾选System Parameters-NvidiaWeb,对于OpenCore在配置文件填写NVRAM->Add->7C436110-AB2A-4BBB-A880-FE41995C9F82->nvda_drv: <31>) | |
nvda_drv_vrl=1 | Sierra和High Sierra中用于取代nvda_drv=1 | |
romndrv=1 | 允许使用本机图形驱动程序(ndrv),即使其创建日期早于预定义的最小日期2001年3月1日 | |
-amd_no_dgpu_accel | 关闭AMD显卡硬件加速(默认),替代WhateverGreen的-radvesa,用于较新的GPUs | |
-radvesa | 强制GPU进入VESA模式(无GPU加速),有助于进行故障排除,苹果内置标志的版本是-amd_no_dgpu_accel | |
shiki-id=Mac-7BA5B2D9E42DDD94 | 使用iMacPro1,1交换boardID | |
shikigva=1 | 让iGPU处理硬件解码,在同时使用iGPU与dGPU时需要 | |
shikigva=4 | 在新于Haswell的架构上支持硬件加速的视频解码 | |
shikigva=40 | 使用iMac14,2交换boardID,允许Polaris,Vega和Navi GPU处理所有类型的渲染,对于希望使用iGPU、不需要Nvidia GPU的SMBIOS有效 | |
agdpmod=vit9696 | 禁用board ID检查,完成引导后屏幕变黑时可能需要 | |
agdpmod=pikera | 重命名board-id为board-ix以有效地禁用board ID检查 | |
-wegnoegpu | 禁用除iGPU以外的所有GPU | |
-igfxnohdmi | 禁用DisplayPort到HDMI音频转换 | |
-cdfon | 执行启用HDMI 2.0支持所需的众多补丁 | |
-igfxvesa | 强制GPU进入VESA模式(无GPU加速),有助于进行故障排除 | |
igfxonln=1 | 强制所有显示联机,对于解决Coffee and Comet Lake 10.15.4+中的屏幕唤醒问题很有用 | |
igfxfw=2 | 支持为iGPU加载Apple的GUC固件,需要第9代芯片组或更高版本(例如Z390) | |
-nehalem_error_disable | 用于MacPro5,1以避免内核panic | |
panic_on_display_hang=1 | 显示设备挂起时触发Panic | |
panic_on_gpu_hang=1 | GPU挂起时触发Panic | |
spin_wait_for_gpu=1 | 减少GPU高负载情况下的超时时间 | |
“Graphics Mode”=”1024x768x32” | 指定分辨率(WidthxHeightxColor Depth,如1024x768x32,或WidthxHeightxDepth@Refresh Rate,如640x480x32@60) | |
?video= | 显示显卡支持的最高分辨率 | |
USB | ||
-uia_exclude_hs | 从USB3.0端口中禁用HS端口(将无法在这些端口上使用USB2.0设备,使用USB鼠标/键盘切勿使用) | |
-uia_exclude_xhc | 启用EH0x和相关集线器的USBInjectAll端口注入器,从而覆盖内置集线器端口注入器,但保持对XHC的DSDT控制 | |
-uia_exclude_ssp | 禁用SSP端口 | |
-uia_exclude_ss | 禁用SS端口 | |
-uia_ignore_rmcf | 禁用USBInjectAll的SSDT替代代码 | |
uia_exclude=# | 手动设置禁用的端口 | |
-gux_defer_usb2 | 修复使用GenericUSBXHCI.kext导致的睡眠问题(仅在EHC控制器存在时可用,i7系列适用) | |
-gux_no_idle | 终止英特尔芯片上的一些空闲模式(idle-mode)功能(i7系列适用) | |
-gux_nosleep | 强迫睡眠使用shutdown/reset方法 | |
-gux_nomsi | 强迫使用中断(interrupt)而不是msi | |
声卡与AppleALC | ||
-alcoff | 跳过AppleALC.kext | |
其它硬件 | ||
fhrdl1=1 | 强制硬件恢复数据高速缓存级别1(L1 D-cache)错误,已被废弃,换用mcksoft | |
mcksoft=1 | 启用计算机检查软件恢复 | |
novmx=1 | 禁用AltiVec | |
bluetoothHostControllerSwitchBehavior=never/always | 蓝牙驱动程序是否切换插入的加密狗,要使外部加密狗在重启后仍为默认设置则使用always | |
仅适用于PPC | ||
mtxspin | Mutex spin | |
vmmforce | VMM force | |
fn=0/1/2 | 强制小睡 | |
pmsx=1 | 实验电源管理步进模式 | |
ctrc | 将跟踪设置为特定的CPU | |
tb | 非默认跟踪缓冲区大小 | |
wcte | 开启组合写计时器 | |
mcklog | 清除机器检查标志 | |
mcksoft | 机器检查软件恢复 | |
ht_shift=1 | 非默认哈希表大小 | |
zsize | 目标区域大小 | |
colors | 设置VM颜色 | |
serialbaud | 设置串行波特率 | |
其它 | ||
urgency_notification_abstime |
Busradio参数
Busratio=xx参数仅适用于无法正确启动的多核Core i系列处理器,在10.5.7及之后不再需要。一般在10.5.6中使用i7 CPU时需要该参数。
xx的值为Core Speed数值除以Bus Speed数值,四舍五入到最接近的整数。
工具
部分工具作用如下。
工具名称 | 原因/用途 |
---|---|
BootKicker | 调用Mac内置的引导界面,用于白苹果安装OpenCore,黑苹果无法使用,可直接删除(仅Mac同款显卡才可使用) |
ChipTune | 测试BeepGen协议,生成不同频率和长度的音频信号 |
CleanNvram | NVRAM清理 |
FwProtect | 解锁和回锁NVRAM保护,让其他工具在从OpenCore启动时能够获得完整的NVRAM访问权限 |
GopStop | 停止显卡GOP,用于测试GraphicOutput协议(排错时使用) |
KeyTester | 在SimpleText模式下测试键盘输入 |
MemTest86 | 内存测试工具 |
OpenCore Shell | 由OpenCore配置的UEFI Shell,与绝大部分固件兼容 |
PavpProvision | 执行EPID配置(需要配置证书数据) |
ResetSystem | 执行系统重置(以重置类型作为参数,可为ColdReset/Firmware/WarmReset/Shutdown,默认为ColdReset) |
RtcRw | 读取和写入RTC(CMOS)存储器的使用程序 |
HdaCodecDump | 导出声卡Codec,可用于定制声卡 |
VerifyMsrE2 | 用于检查主板上CFG锁的状态 |
系统启动标志位
即BooterConfig,具体含义如下。
Bit位 | 含义 |
---|---|
0 | RebootOnPanic,遇到内核崩溃自动重启 |
1 | HiDPI,在启动过程中使用HiDPI模式显示 |
2 | Black,在启动过程中不显示进度条 |
3 | CSRActiveConfig,将读取当前生效的SIP控制标志位 |
4 | CSRConfigMode,仅用于Recovery/安装环境,将允许对SIP进行配置 |
5 | CSRBoot,仅用于Recovery/安装环境,SIP将完全禁用 |
6 | BlackBg,在启动过程中使用黑色背景 |
7 | LoginUI,在启动过程中使用登陆界面作为背景 |
8 | InstallUI |
kext补丁
修复外置硬盘识别为内置硬盘
RXh0ZXJuYWw=
指External,SW50ZXJuYWw=
指Internal。
1 | Name: AppleAHCIPort |
允许使用MacPro4,1或MacPro5,1的SMBIOS时不带ECC内存引导
1 | Name: AppleTyMCEDriver |
使用VoodooHDA时将系统偏好设置-声音-输出中的设备由Headphones改为Telephones
1 | Name: VoodooHDA |
IOAPIC修复
1 | Name: AppleAPIC |
添加TRIM支持
1 | Name: IOAHCIBlockStorage |
Intel HD3000连接器补丁
1 | Name: AppleIntelSNBGraphicsFB |
kernel补丁
去除Lilu内核崩溃时的kexts输出
根据MatchOS的版本号选用更名补丁。
1 | Comment: Disable panic kext logging on 10.15.4 Release kernel |
NVRAM
即易失性UEFI变量。macOS广泛使用NVRAM变量使操作系统、BootLoader、固件之间互通。
macOS使用的NVRAM如下。
GUID | 宏定义 | 含义 | 说明 |
---|---|---|---|
常用 | |||
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14 | APPLE_VENDOR_VARIABLE_GUID | AppleVendor | |
7C436110-AB2A-4BBB-A880-FE41995C9F82 | APPLE_BOOT_VARIABLE_GUID | AppleBoot | 默认GUID,通过nvram -p被调用 |
8BE4DF61-93CA-11D2-AA0D-00E098032B8C | EFI_GLOBAL_VARIABLE_GUID | EfiGlobal | 非Apple GUID,由ACPI规范所制定 |
4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102 | OC_VENDOR_VARIABLE_GUID | ||
其它 | |||
9EBA2D25-BBE3-4AC2-A2C6-C87F44A1278C | APPLE_PASSWORD_UI_EFI_FILE_NAME_GUID | ApplePasswordUi | |
8D63D4FE-BD3C-4AAD-881D-86FD974BC1DF | APPLE_CORE_STORAGE_VARIABLE_GUID | AppleCoreStorage | |
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA | APPLE_TRB_SECURE_VARIABLE_GUID | AppleTrbSecureVariable | |
5D62B28D-6ED2-40B4-A560-6CD79B93D366 | APPLE_TRB_STAGING_COMMAND_GUID | AppleTrbSecureCommand | |
FA4CE28D-B62F-4C99-9CC3-6815686E30F9 | APPLE_EFI_PERSONALIZATION_VARIABLE_GUID | AppleEfiPersonalization | |
36C28AB5-6566-4C50-9EBD-CBB920F83843 | APPLE_EFI_NETWORK_VARIABLE_GUID | AppleEfiNetwork | |
AF9FFD67-EC10-488A-9DFC-6CBF5EE22C2E | APPLE_ACPI_VARIABLE_GUID | AppleAcpi | |
FA4CE28D-B62F-4C99-9CC3-6815686E30F9 | FA4CE28D | ||
2660DD78-81D2-419D-8138-7B1F363F79A6 | Custom GUID for Lilu variable storage | LiluNormal | |
E09B9297-7928-4440-9AAB-D1F8536FBF0A | Custom GUID for Lilu read-only variable storage (cannot be written from OS), implemented by AptioMemoryFix | LiluReadOnly | |
F0B9AF8F-2222-4840-8A37-ECF7CC8C12E1 | Custom GUID for Lilu write-only variable storage (cannot be read from OS), implemented by AptioMemoryFix | LiluWriteOnly |
变量
变量 | 作用 |
---|---|
必需变量 | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:FirmwareFeatures | 32位FirmwareFeatures。存在于所有Mac上,用来避免额外解析SMBIOS表 |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:FirmwareFeaturesMask | 32位FirmwareFeaturesMask。存在于所有Mac上,用来避免额外解析SMBIOS表 |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:MLB | 存在于较新的Mac上(至少2013年以后),用来避免额外解析SMBIOS表,尤其是在boot.efi中 |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ROM | 主要的网络适配器的MAC地址或替换值。存在于较新的Mac(至少2013年以后)上,用来避免访问特殊内存区域,尤其是在boot.efi中 |
建议变量 | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ExtendedFirmwareFeatures | 结合FirmwareFeatures和ExtendedFirmwareFeatures。存在于较新的Mac上,用来避免额外解析SMBIOS表 |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ExtendedFirmwareFeaturesMask | 结合FirmwareFeaturesMask和ExtendedFirmwareFeaturesMask。存在于较新的Mac上,用来避免额外解析SMBIOS表 |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_BID | 硬件BoardProduct(如Mac-35C1E88140C3E6CF)。在真正的Mac上不存在,但可用于避免额外解析SMBIOS表,尤其是在boot.efi中 |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_MLB | 硬件BoardSerialNumber。覆盖MLB,存在于较新的Mac上(至少2013年以后) |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_ROM | 硬件ROM。覆盖ROM,存在于较新的Mac上(至少2013年以后) |
7C436110-AB2A-4BBB-A880-FE41995C9F82:security-mode | 定义FireWire安全模式的ASCII字符串。这一变量旧版本才有,建议不要设置这个变量,这样可能会加快启动速度。设置为full等同于不设置该变量,设置为none将禁用FireWire安全性 |
其它变量 | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:AAPL,PanicInfo0000 | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:AAPL,PanicInfoLog | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:ALS_Data | UINT8, Present on 2016+ MBP; default is 03 (enables auto power-on on lid opening), 00 disables auto boot; reads SMC key “LIDB”, see AlertUI.efi in firmware |
7C436110-AB2A-4BBB-A880-FE41995C9F82:AutoBoot | UINT8[2] |
7C436110-AB2A-4BBB-A880-FE41995C9F82:backlight-level | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:backlight-regs | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:bluetoothActiveControllerInfo | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:bluetoothInternalControllerInfo | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:boot-gamma | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:boot-image-key | UINT8[16], Boot image identifier, used for hibernation. |
7C436110-AB2A-4BBB-A880-FE41995C9F82:boot-image | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:boot-info-payload | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:boot-signature | UINT8[20], Boot image encryption key, used for hibernation. |
7C436110-AB2A-4BBB-A880-FE41995C9F82:boot-switch-vars | DATA, Legacy boot image identitifer and decryption key, corresponds to IORTCVariables, removed as of 10.13.6. |
7C436110-AB2A-4BBB-A880-FE41995C9F82:bootercfg-once | 在首次启动后删除Booter参数覆盖,否则等同于bootercfg |
7C436110-AB2A-4BBB-A880-FE41995C9F82:BootCampHD | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:BootCampProcessorPstates | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:csr-data | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:disable-network | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:disable-network | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:DisplayBackgroundColor | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:edid-override | AppleGraphicsPolicy (outdated?) |
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-apple-recovery | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-apple-payload# | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-apple-payload#-data | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-device-data | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-device-data | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-device | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-file | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-file-data | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-next | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-payload0 | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-payload0-data | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:eft-boot-next-data | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-mkext | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-kernelcache | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-kernelcache-data | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-legacy-drive-hint | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-legacy-drive-hint-data | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:efiboot-perf-record | 启用boot.efi中的性能日志保存功能。性能日志会被保存到物理内存中,并通过efiboot-perf-record-data和efiboot-perf-record-size变量进行指向。从 10.15.4开始,也可以在OpenCore开启AppleDebug,以保存到OpenCore日志 |
7C436110-AB2A-4BBB-A880-FE41995C9F82:EFIBluetoothDelay | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:EFICapsule_Result | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:run-efi-updater | 覆盖macOS中对EFI固件更新(MultiUpdater、ThorUtil)等的支持。将此值设置为No或其他可以转换为布尔类型的值将能够禁用10.10起的macOS固件更新 |
7C436110-AB2A-4BBB-A880-FE41995C9F82:EnableEHCIMode | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:StartupMute | 开机时禁用固件引导提示音,8进制整数。0x00指代不静音,其他任何值(或缺少该值)表示静音 |
7C436110-AB2A-4BBB-A880-FE41995C9F82:ErrorToneTestVariable | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:fmm-computer-name | 当前保存的主机名称,格式为ASCII字符串 |
7C436110-AB2A-4BBB-A880-FE41995C9F82:fmm-mobileme-token-FMM | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:gpu-active | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:gpu-policy | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:gpu-power-prefs | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:HW_BOOT_DATA | DATA, Boot data? |
7C436110-AB2A-4BBB-A880-FE41995C9F82:KTSStatus | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:KTSPrevious | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:KTSResult | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:LocationServicesEnabled | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:manufacturing-enter-picker | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:nv_efi_disable | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:picker-show-delay | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:platform-uuid | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:prev-lang:kbd | ASCII String, Define default keyboard layout. Format is lang-COUNTRY:keyboard (e.g. ru-RU:19456 for Mac keyboard, also short forms ru:19456 and ru:0. Full list of keyboards in AppleKeyboardLayouts-L.dat, decoded at https://www.applelife.ru/posts/763537 |
7C436110-AB2A-4BBB-A880-FE41995C9F82:recovery-boot-mode | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:RemoteDisabled | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:security-mode | ASCII String, IOFireWireController security mode, setting to none may result in longer startup, full is recommended |
7C436110-AB2A-4BBB-A880-FE41995C9F82:SystemAudioVolume | 固件音频支持的系统音频音量等级,8进制整数。0x80指代静音,低位用于编码安装的音频编码解码器的音量范围。该值以MaximumBootBeepVolume AppleHDA layout值为上限,以避免固件中的音频播放声音过大 |
7C436110-AB2A-4BBB-A880-FE41995C9F82:SmcFlasherResult | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:SystemAudioVolumeDB | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:SystemAudioVolumeSaved | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:target-mode | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:tbt-dpdefault | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:tbt-options | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:UEFIWindowsBootCapable | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:usb-options | |
7C436110-AB2A-4BBB-A880-FE41995C9F82:usb-cr-rec | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:AAPL,PathProperties0000 | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:BackgroundClear | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:BBIF | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:BlackMode | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:current-network | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:FirmwareFeatures | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:FirmwareFeaturesMask | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:gfx-saved-config-restore-status | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:GR_CAUSE | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HardwareBootMode | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_BID | ASCII String, Hardware board-id (e.g. Mac-35C1E88140C3E6CF). Not present on real Macs, but used for SMBIOS override and faster board-id lookup in boot.efi. |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_BREV | Hardware board-rev |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_ICT | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_MLB | DATA, Hardware MLB. Override for MLB. Present on newer Macs (2013+ at least). |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_ROM | DATA, Hardware ROM. Override for ROM. Present on newer Macs (2013+ at least). |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_SSN | DATA, Hardware serial number. Override for SSN (unsure if SSN is used by anything). |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:IASCurrentInstallPhase | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:IASInstallPhaseList | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:IpAddr | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:MLB | DATA, Motherboard Serial Number. |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:NetbootDefaultImage | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:NetbootDiagnostics | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:PickerEntryReason | DATA, 4 = right shift, 3 = left shift, 2 = remote (menu), 1 = NVRAM key (manufacturing-enter-picker) |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ROM | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:security-key | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:SSN | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:system-id | |
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:UIScale | |
AF9FFD67-EC10-488A-9DFC-6CBF5EE22C2E:AcpiGlobalVariable | UINT8[8] |
8D63D4FE-BD3C-4AAD-881D-86FD974BC1DF:last-oslogin-ident | |
8D63D4FE-BD3C-4AAD-881D-86FD974BC1DF:corestorage-passphrase | |
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:ResetNVRam | |
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:BootOrder | |
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:BootNext | |
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:DriverOrder | |
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:target-mode | |
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:CBF2CC32 | |
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:3B3D2CF2 | |
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:61B764CB | |
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:F89C7780 | |
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:3E6D568B | |
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:BC9772C5 | |
5D62B28D-6ED2-40B4-A560-6CD79B93D366:AAPLTrbCmd | |
FA4CE28D-B62F-4C99-9CC3-6815686E30F9:DisplayBackgroundColor | |
FA4CE28D-B62F-4C99-9CC3-6815686E30F9:DefaultBackgroundColor | |
FA4CE28D-B62F-4C99-9CC3-6815686E30F9:gpu-active | |
FA4CE28D-B62F-4C99-9CC3-6815686E30F9:wireless-boot-ssid | |
FA4CE28D-B62F-4C99-9CC3-6815686E30F9:wireless-boot-password | |
36C28AB5-6566-4C50-9EBD-CBB920F83843:current-network | Once existed in AppleVendor, see: https://github.com/erikberglund/AppleNVRAM/blob/master/Apple/4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14.md |
36C28AB5-6566-4C50-9EBD-CBB920F83843:preferred-count | |
36C28AB5-6566-4C50-9EBD-CBB920F83843:preferred-networks | |
8BE4DF61-93CA-11D2-AA0D-00E098032B8C:BootXXXX | Boot0080, Boot0081, Boot0082, BootFFFF are used |
8BE4DF61-93CA-11D2-AA0D-00E098032B8C:LEGACYVGAHANDLE | |
8BE4DF61-93CA-11D2-AA0D-00E098032B8C:agp-internal-edid | |
8BE4DF61-93CA-11D2-AA0D-00E098032B8C:GFXVENDOR | |
8BE4DF61-93CA-11D2-AA0D-00E098032B8C:_AGP_DISABLED | AppleGraphicsPolicy |
E09B9297-7928-4440-9AAB-D1F8536FBF0A:vsmc-status | |
F0B9AF8F-2222-4840-8A37-ECF7CC8C12E1:vsmc-key |
重置
在Clover和OpenCore之间切换时,建议重置NVRAM。
通过Clover
删除Clover的drivers64UEFI目录下的EmuVariableUefi.efi,重启进入Clover引导项选择界面,按F11或Fn+F11,直到设备自动重启。
通过OpenCore
在OpenCore引导界面按空格显示隐藏条目,选择Reset NVRAM。此法将会丢失BIOS中的自定引导项。
通过终端
在终端输入以下命令即可。
1 | sudo nvram -c |
判断工作状态
删除引导工具内的VariableRuntimeDxe.efi、EmuVariableRuntimeDxe.efi和EmuVariableUefi.efi,删除NVRAM导出脚本LogoutHook和RC Script,删除EFI分区根目录下的nvram.plist,重启后输入以下命令。
1 | sudo nvram myvar=test |
再次重启后在终端输入以下命令,如果终端成功输出了test,则说明主板在Mac下NVRAM正常工作,反之为不正常。
1 | nvram -p | grep -i myvar |
SIP配置
SIP是Mac的安全保护机制,包括文件系统保护、运行时保护和内核扩展签名保护。
基本概念
csr-active-config
启动时控制SIP的参数。
BiT位 | 含义 |
---|---|
0 | [kext]允许加载不受信任的kext(与kext-dev-mode=1等效) |
1 | [fs]解锁文件系统限制 |
2 | [debug]允许task_for_pid()调用 |
3 | [N/A]允许内核调试 (官方的csrutil工具无法设置此位) |
4 | [internal]Apple内部保留位(csrutil默认会设置此位,实际不会起作用。设置与否均可) |
5 | [dtrace]解锁dtrace限制 |
6 | [nvram]解锁NVRAM限制 |
7 | [N/A]允许设备配置,用于Recovery/安装环境 |
修改
SIP可以防止将未签名的程序包注入内核,并可以防止应用程序覆盖NVRAM。通过Clover注入kext时不要求SIP禁用。
通过csrutil
在正常系统环境下,csrutil只能查询SIP状态,故需进入恢复模式更改。白苹果在启动时按command+R进入,黑苹果在Clover的引导菜单进入。按照需求输入以下命令即可。
1 | // 查询状态 |
通过引导器
通过修改引导器中的CsrActiveConfig,可修改SIP状态。使用0x67或0x3E7以禁用,两者参数比较如下表。
参数 | 有效值 |
---|---|
0x67 | CSR_ALLOW_UNRESTRICTED_NVRAM |
CSR_ALLOW_TASK_FOR_PID | |
CSR_ALLOW_UNRESTRICTED_FS | |
CSR_ALLOW_UNTRUSTED_KEXTS | |
0x3E7 | CSR_ALLOW_UNAPPROVED_KEXTS |
CSR_ALLOW_ANY_RECOVERY_OS | |
CSR_ALLOW_DEVICE_CONFIGURATION | |
CSR_ALLOW_UNRESTRICTED_NVRAM | |
CSR_ALLOW_UNRESTRICTED_DTRACE | |
CSR_ALLOW_UNTRUSTED_KEXTS |
通过写入NVRAM
打开终端并输入以下命令即可。
1 | sudo nvram 7C436110-AB2A-4BBB-A880-FE41995C9F82:csr-active-config=%13%00%00%00 |
EFI分区说明
APPLE文件夹
该文件夹用于更新实际Mac上的固件,无实际作用。
重定位块
即Relocation Block,是一个分配在低位4GB内存的缓冲区,EfiBoot使用该这部分内存加载内核和相关结构。在内核启动之前,重定位块的内容会被复制回位于低位的保留内存。
在没有更好的 slide(所有内存都被使用了)、强制slide=0(通过参数或安全模式设置)、不支持 KASLR(slide,macOS 10.7 及更旧的版本)时,将使用重定位块。
使用重定位块启动时不支持休眠。
内存映射限制
Apple内核在解析UEFI内存映射时存在限制。
内存映射的大小不能超过4096字节,因为Apple内核将其映射为一个4KiB页面。某些固件的内存映射大小非常大(大约超过100个条目),在其上Apple内核会在启动时崩溃。
内存属性表会被忽略。EfiRuntimeServicesCode内存静态获得RX权限,其他内存类型则获得RW权限。某些固件驱动会在运行时把数据写到全局变量中,在其上Apple内核在调用UEFI Runtime Services时会崩溃,除非驱动的.data部分有EfiRuntimeServicesData类型。
通用操作
填充PCI列表
通过Hackintool
打开Hackintool,选择PCI,点击右下角的导出按钮,即可得到PCI列表。插入Clover配置文件的Devices-Arbitrary即可。
通过Clover
以Clover为例,打开Clover Configurator,点击Boot.log-Generate log-Save boot.log to desktop,在桌面生成bootlog.txt文件。
打开Hackintool,记住要添加的设备的设备ID,在bootlog.txt中搜索此ID,并记录同一行下形如xx:xx.xx的字符串,称为pciaddr。如现有设备NVME SSD SM961,其设备ID为0xA804,pciaddr为04:00.00。
打开config.plist,点击Devices-Arbitrary,点击PciAddr栏左下角的+号以新建条目。其中PciAddr填写刚才查询的值,Comment可记录下该设备的类型。双击此条目,并点击Value Type右下角的+号,添加两个条目,内容如下。
Key | Value | Value Type |
---|---|---|
AAPL,slot-name | 端口位置,可任意填写,如Slot-1 | STRING |
model | 设备名称,可任意填写,最好与源设备名一致 | STRING |
完成后保存并重启即可。注意,显卡信息无法添加到PCI列表中,而声卡PCI属性的注入会导致layout-ID的覆盖,从而使声卡不工作。故若需注入声卡属性,需在config.plist下设置Devices-Audio-inject为No,在Boot-Arguments下添加alcid=[layout-id]
。
禁用USB2控制器
USB2的控制器在DSDT一般命名为EHC1/EHC2。可用以下SSDT禁用EHC1和EHC2。
1 | /* |
Clover
Clover支持从10.5开始的Mac。
部分说明
kexts注入
流程为修补SIP开启->修补程序以启用XNU僵尸代码->修补带有kext注入的race condition->注入kext->恢复SIP状态。该过程依赖FSInject.efi驱动程序,该驱动可以阻塞OSX缓存,并注入驱动程序到SLE,此时屏幕上会出现很多点。该过程中Clover调用了自10.7以来从未使用过的XNU的僵尸代码。
在启动时,kext的搜索顺序如下。对于重名的kext,会按照以下顺序加载第一个kext,无论该kext是否可用。
1 | EFI/CLOVER/OEM/xxx/kexts/xx.y |
配置文件
默认配置文件路径为EFI/CLOVER/config.plist。
每个主题有独特的配置文件,如EFI/CLOVER/themes/black_green/theme.plist。主题配置文件示例如下。
1 | <?xml version="1.0" encoding="UTF-8"?> |
组件
内核
CLOVERX64.efi为Clover的内核。
提取
下载Clover的pkg安装包后,在Windows下可用7z打开,一路双击直到看到Clover相关文件即可。在Mac下则可用Suspicious Package。
更新
用新的CLOVERX64.efi覆盖EFI分区中旧的EFI/CLOVER/CLOVERX64.efi即可。
ACPI
ACPI/hotpatch是SSDT库,需应用的DSDT/SSDT要放到ACPI/patched。
DSDT搜索顺序
顺序如下。若希望每个操作系统使用不同的DSDT,则将相应的DSDT放到各自系统分区的根目录即可。
1 | # 机器主板名称可在boot.log查看 |
重命名规律
Clover对ACPI的更名只对原有的ACPI表和ACPI/patched的DSDT起作用,而不对ACPI/patched的SSDT起作用。故若使用Clover的ACPI更名,则SSDT引用的变量需采用新名称而非旧名称。
DSDT调试
若打开DSDT的Debug功能,则会在/EFI/CLOVER/ACPI/origin下找到原始DSDT和修改过的DSDT。其中DSDT-or.aml表示原始DSDT,DSDT-pa0.aml表示第一次尝试修复的DSDT,DSDT-pa1.aml表示第二次尝试修复的DSDT,后面的同理。
引导界面
快捷键
若设置了跳过引导界面,在启动时点击空格即可重新唤出。
快捷键 | 含义 |
---|---|
F1 | 帮助 |
F2 | 保存启动日志preboot.log到EFI/CLOVER/misc/ |
F3 | 显示被隐藏的入口 |
F4 | 提取DSDT到EFI/CLOVER/ACPI/origin/ |
F5 | 提取修正过的DSDT到EFI/CLOVER/ACPI/origin/ |
F6 | 提取显卡ROM的VideoBios到EFI/CLOVER/misc/ |
F10 | 截屏到EFI/CLOVER/misc/ |
F11 | 重置NVRAM |
空格 | 制定菜单项的详细信息 |
A | 关于Clover |
O | Clover选项 |
U | 退出 |
Options
ACPI patching
选项 | 说明 |
---|---|
Tables dropping | 等同于Clover Configurator中ACPI选项卡的Drop Tables |
Drop OEM _DSM |
丢弃_DSM |
DSDT fix mask | DSDT修复遮盖,等同于Clover Configurator中ACPI选项卡的各种Fix选项 |
Custom DSDT patches | 自定义的ACPI重命名 |
System Parameters
选项 | 说明 |
---|---|
Booter Cfg Command | 自定义的ACPI重命名 |
目录层级
Kexts
Kexts/10.x下的驱动,只有在Clover引导使用boot with injected kexts时才会加载。
Clover不能加载已经在SLE里的kexts。
Driver
r4986以后,Clover会先从EFI/CLOVER/drivers/UEFI加载驱动,若无则从EFI/CLOVER/drivers64UEFI加载。
OEM
OEM目录下可存储包含特定机型的配置文件,如EFI/CLOVER/OEM/Inspiron1525/config.plist或EFI/CLOVER/OEM/H61M-S1/UEFI/config.plist外加自定义DSDT.aml。其中有UEFI目录的为UEFI启动的配置文件。
OEM目录下的子目录名称是根据SMBIOS得到的。在Clover启动界面按F2保存日志文件preboot.log,在日志里搜索Cloverrevision,即可得知本机SMBIOS。
最简结构
推荐最简文件结构如下。
1 | ├── ACPI |
基本配置
隐藏启动界面
确保系统正常运作后,打开Clover的config.plist,进行下列操作。
选项 | 操作 |
---|---|
启动参数 | 取消-v |
Hide Volume | 添加Preboot和Recovery |
Timeout | 0以跳过倒计时(-1为停止倒计时) |
Default Boot Volume | Mac系统盘名称或GUID号或设备路径,如HD(1,GPT,57272A5A-7EFE-4404-9CDA-C33761D0DB3C,0x800,0xFF000) |
找到Mac系统盘下的Library/Preferences/SystemConfiguration/com.apple.Boot.plist,复制到桌面后用文本编辑器打开,删除里面的-v
参数,保存后拷贝回原来的位置以替换原始文件。重启,系统启动过程中将不会进入Clover界面和啰嗦模式。
若Driver文件夹中APFS驱动使用的不是ApfsDriverLoader.efi,则下载该驱动并用该驱动替换apfs.efi。重启,系统启动过程中将不会出现log代码。
主题配置
将下载好的主题文件夹以主题本身名字命名,并复制到EFI/CLOVER/themes下,在Gui-Theme下填写主题名称即可。
Mojave主题下载链接如下。
1 | https://www.lanzous.com/i5e807e |
播放开机音乐
下载BootAudio-Utility工具包,链接如下。
1 | https://www.lanzous.com/i6ux0dc |
将sound.wav和sound_night.wav放到EFI/CLOVER/themes/[当前使用主题]。确保UEFI文件夹下存在AudioDxe.efi和BootChimeDxe.efi,tools文件夹中存在BootChimeCfg.efi和HdaCodecDump.efi。
进入Clover的 UEFI Shell,输入以下命令配置BootChimeCfg。
1 | # fs0是Clover所在ESP分区标号 |
引导生成
在Mac下可通过pkg安装包安装。也可将整个文件夹父知道EFI分区,然后手动添加引导项,路径为/EFI/Clover/CLOVERX64.efi。
配置文件生成
1 | https://cloudclovereditor.altervista.org/cce/cce/index.php |
配置文件详解
以下不建议的配置默认折叠。
ACPI
DSDT
选项 | 说明 |
---|---|
ResetAddress | 修复重启,默认为0x64(通过PS2控制器重新启动),0x0CF9为通过PCI导轨重新启动,0x0为使用默认的FACP值(可在Clover启动界面按F2后打开日志文件查找Address得到本值,如0000000000000CF9即为0xCF9) |
ResetValue | 修复重启,默认为0xFE(通过PS2控制器重新启动),0x06为通过PCI导轨重新启动,0x0为使用默认的FACP值(可在Clover启动界面按F2后打开日志文件查找Value to cause reset得到本值,如06即为0x06) |
DsdtName | dsdt.aml的名称 |
AddMCHC | 在DSDT中添加Device ID=0X0044的设备,该项启用了IMEI修复程序才会起作用(匹配Intel Clarkdale平台,有些芯片需要这个装置来解决PCI的电源管理问题,一般不启用) |
AddIMEI | 用于intelHDxxx集成显卡,解决完美注入(需要开启fakeid-IMEI) |
AddPNLF | 添加PNLF设置代码,实现系统良好睡眠/唤醒 |
AddHDMI | 修复HDMI音频输出 |
FixDarwin | 使macOS系统(Darwin)被标识为Windows |
FixDisplay | 修复显卡代码(增加GFX0以及HDMI音频设置HADU) |
FakeLPC | 仿冒LPC以加载AppleLPC.kext(Intel and NForce 芯片建议勾选,特别是ICH7/ICH9等老芯片组) |
-> | 以下四条修复IRQ,消除可能导致触摸板和音频设备无法正常工作的任何潜在IRQ冲突 |
FixIPIC | 从decice IPIC移除中断语句(IRQ(2)),有利于某些笔记本电源按钮的工作 |
FixRTC | 从RTC装置中删除IRQ(0),作用与patch里的防RTC重置类似 |
FixTMR | 从TMR装置中删除IRQ(8),适用于较早的dos设备 |
FixHPET | 添加IRQ(0,8,11)代码,加载原生电源管理(10.9+无需勾选) |
<- | |
FixIDE | 修复在10.6时五国出现的AppleIntelPIIXATA错误(一般不启用) |
FixSBUS | 增加SMBusControlle到设备树种,可修复因缺失SBUS控制而在系统log中出现的警告 |
FixDisplay | 此补丁将影响所有视频卡,包括嵌入式英特尔GFX |
FixIntelGfx | 开启对IntelGFX显卡的新补丁设置(需配合imei) |
FixWAK | 消除警告 |
FixADP1 | 将设备AC0重命名为ADP1,效果与直接用ACPI更名等效 |
FixS3D | 修正_S3Dmethods函数,解决睡眠/唤醒问题 |
FixACST | 重命名ACST,常用于华硕主板以避免冲突(ACST项对于华硕是AC适配器状态,对于苹果是CPU闲置休眠状态的功能) |
FixRegions | 修正BIOS中的浮动区域(每次BIOS设置更改时OperatingRegions的地址会被更改的区域,在某些BIOS中会存在这种情况,即OperationRegion (GNVS, SystemMemory, 0xDE6A5E18, 0x01CD)中0xDE6A5E18会不断变化) |
FixHeaders | 清理标头,用于MACH重启修复,使用不会带来冲突 |
FixHDA | 修复声卡代码(修正AZAL为HDEF/HDAU,且增加layout -id和pinconfig/MaximumBootBeepVolume属性) |
FixLAN | 修复网卡代码(注入网卡属性,修改网卡为内建) |
FixAirport | 修复无线网卡代码(为支持Airport的无线网卡注入属性,以开启Airport功能) |
Fixshutdown | 修复关机断电代码(主要是添加_PTS函数,判断寄存器arg0值是否为5并防止设置SLP_SMI_EN=1,华硕主板建议勾选) |
FixUSB | 修复USB代码(包含EHCI代码,注入USB属性,帮助内建USB,是完成睡眠的关键) |
FixFirewire | 修复1394火线代码(在火线控制装置中增加fwhub属性,一般不启用) |
FixSATA | 内建磁盘,修复SATA代码(用ICH6的ID匹配,可修复硬盘图标显示为橙黄色问题) |
PatchAPIC | 修复MADT表 |
HaltEnabler | 在OSX系统启动时设置SLP_SMI_EN=0,断电重启补丁,与OpenHaltRestart.kext作用相同 |
UseSystemIO | 在生成的_CST表中对Register (FFixedHW, 与Register (SystemIO, 进行选择 |
SlpSmiAtWake | 在_WAK方法添加SLP_SMI_EN=0,可能有助于解决UEFI引导时的睡眠和关机问题 |
SuspendOverride | 将睡眠模式扩展为状态3、4、5 |
ReuseFFFF | 将诸如Name (_ADR, 0xFFFF)的设备转换为(ADR,0)并重新用于注入(如FakeID) |
Rtc8Allowed | 设置RTC长度为8字节 |
Debug | 打开后会在EFI/CLOVER/ACPI/origin看到未修补的DSDT-or.aml、经过第一次修补尝试后的DSDT-pa0.aml、经过第二次修补尝试后的DSDT-pa1.aml,一直生成,直至系统能够启动为止 |
SSDT
选项 | 说明 |
---|---|
DeleteUnuse | 从DSDT中删除无用设备 |
Double First State | CPU功耗相关(Ivy Bridge专用) |
Drop OEM | 获取内建SSDT表单,删除与OEM CPU相关的SSDT以避免在为处理器生成包含P State和C State的SSDT时发生冲突,使用自定义DSDT则默认值为false,使用BIOS.aml则默认值为true(对于Sandy Bridge及较旧硬件使用,非必须勿用) |
Generate CStates | 开启C-State功能,可以修复启动时ACPI_SMC_PlatformPlugin错误 |
Generate PStates | 开启P-State功能 |
Plugin Type | 值为0时用ACPI_SMC_PlatformPlugin,为1时用X86PlatformPlugin(Ivy Bridge专用) |
PLimit Dict | 限制CPU频率,0为不开启,1为降低一级,2为降低两级 |
UnderVolt Step | 限制CPU功率,只针对core 2,对i系列CPU无效,0为不开启,设为2可能死机 |
Min Multiplier | 最小变频数 |
Max Multiplier | 最大变频数 |
smartUPS | 若打开,在系统概述的电源项中UPS已安装显示为是(只起修饰作用) |
PatchAPIC | 在SSDT中添加CPUS=1,解决ACPI表单中NMI丢失时macOS启动可能五国的问题 |
EnableC2/C4/C6/C7 | 在SSDT中添加_CST函数以启用C2/C4/C6/C7休眠 |
CpuPm/Cpu0Ist | 与CPU电源管理有关 |
DMAR | 防止Vt-d出现问题,修复10.8.2中的AppleACPIPlatform.kext启动问题 |
MATS | 此表可能包含无法打印的字符以导致内核崩溃,打开该选项可修复ACPI_SMC_PlatformPlugin错误 |
BGRT | 删除BIOS内置的启动图片 |
HPET / MCFG | 获取MCFG表单 |
RenameDevices
以将_SB.PCI0.RP02.PSXS修改为_SB.PCI0.RP02.ARPT为例。
选项 | 说明 |
---|---|
Find Device | _SB.PCI0.RP02.PSXS |
Rename Device | ARPT |
DropTables
通过签名和/或表标识符删除OEM ACPI表。Signature、TableID和Length都可以在原SSDT表头找到,注意Length需转换为十进制。
ResetAddress/ResetValue
默认值分别为0x64和0xFE。若重启不断电,则根据ACPI表中FACP.aml的值更改,其中ResetAddress对应Address,ResetValue对应Value to cause reset,无需转换进制。
C3功能
开启C3功能需要C3Latency的值小于1000(0x3e8),可在FACP.aml搜索C3 Latency得到。若大于1000,则在Clover中将C3Latency设为0x3E7,对于支持Turbo技术的CPU可设置为0xFA。
BOOT
选项 | 说明 |
---|---|
DefaultVolume | 指定默认启动项,可以为卷名(Macintosh)、分区UUID(ABCDEFGH-ZXCV-ASDF-QWER-ASDFGHJKLPOIU)或设备路径(HD(1,GPT,ABCDEFGH-ZXCV-ASDF-QWER-ASDFGHJKLPOIU,0xAAA,0xBBBBB)) |
DefaultLoader | 指定加载器路径(如BOOTX64.efi) |
XMPDetection | 当检测到XMP内存时读取最佳预设参数或禁止检测XMP内存 |
Debug | 生成调试输出/EFI/CLOVER/misc/debug.log(大大增加加载时间) |
IgnoreNVRAMBoot | 忽略启动磁盘面板的设置并允许始终启动到同一操作系统 |
Secure | 在启用安全启动时使用Clover(需要签署Clover的二进制文件并加载证书) |
Legacy | 加载旧版本Windows/Linux |
LegacyBiosDefaultEntry | 指定以Legacy模式启动的硬盘(在Legacy选项选中后才会显示) |
Timeout | 0为直接跳过引导界面,-1为停止倒计时 |
RtcHibernateAware | 在从休眠状态唤醒时启用RTC内存擦除,等同于启用AppleRTC补丁并使用HibernationFixup.kext(至少在Ivy Bridge和更高版本上使用,非必要请勿使用) |
SignatureFixup | 为True时签名值来自休眠映像,为False时签名值为零,内核将其复制到映像中 |
Boot Graphics
选项 | 说明 |
---|---|
UI Scale | 高分辨率显示器可设置为2 |
CPU
选项 | 说明 |
---|---|
Frequency MHz | CPU频率(如3300-3.3GHz,建议不要使用) |
BusSpeed kHz | 主频(如133330,代表133MHz) |
Type | CPU类型(如0x0901,代表i3) |
QPI | CPU的总线速度(如5000-i3 2120,装饰作用) |
C2/C4/C6 | 启用CPU的Turbo功能 |
Type | CPU类型(修饰功能) |
Latency | 进入C3状态时发出的C3进入等待时间,最大为0x3E8(1000),0x3E9表示SpeedStep未打开,笔记本用户可用0x00FA以启用电源管理 |
Devices
选项 | 说明 |
---|---|
ResetHDA | 音频控制器初始化,在操作系统重新引导时将编解码器恢复为中立状态,以使在冷启动后无法正常工作、但重启或唤醒后仍可以工作时使用,等效于使用CodecCommander.kext,或OpenCore配置文件的UEFI-Audio-ResetTrafficClass,或启动参数alctsel=1,或使用JackFix |
AFGLowPowerState | 消除空闲模式后音频输出上的刺耳声音,等效于DeviceProperties-Add-PCIRoot…-AFGLowPowerState-<01000000> |
USB/ixOwnership | 使USB注入保持启用状态而仅关闭所有权修复,解决卡Enabling Legacy Matching问题(也可在BIOS启用XHCI Hand Off解决) |
USB/AddClockID | 启用良好的深度睡眠(无法通过键盘或鼠标输入/退出),需要配合USBInjection启用,等效于DeviceProperties-Add-PCIRoot…-AAPL,clock-id |
USB/HighCurrent | 为iPad充电等提供更多电源(不适用于10.11及更新版本),等效于DeviceProperties-Add-PciRoot…-AAPL, HighCurrent |
UseIntelHDMI | 如果为TRUE,hda-gfx=onboard-1将被注入到GFX0和HDEF设备中,另外如果存在ATI或Nvidia HDMI设备,它们将被分配给onboard-2;如果为FALSE,则ATI或Nvidia设备以及HDAU设备(如果存在)将在onboard-1上 |
NoDefaultProperties | 影响DSDT修复程序,并强制它们生成空的_DSM,仅适用于显示、声音、LAN和WiFi |
IntelMaxValue | 需开启SetIntelBacklight和SetIntelMaxBacklight,建议Sandy/IvyBridge用1808,Haswell/Broadwell用2776,Skylake/Kabylake用1295 |
Gui
选项 | 说明 |
---|---|
ConsoleMode | 将控制台驱动程序切换到请求的控制台模式,供shell、boot.efi、dumpueficalls等使用,0(默认)为禁用,Min/Max为最低/最高模式,分别适合慢速/快速控制台,输入数字为选择特定模式,在boot.log中可查,非必要不打开 |
Mouse/Mirror | 单轴负移动速度 |
ShowOptimus | 在某些BIOS中启用或禁用Optimus的情况下为其供电 |
KbdPrevLang | 修复旧macOS使用英语以外的语言时弹出窗口中使用混合语言的问题,会导致启动Recovery HD时始终保持英语(仅在使用AptioMemoryFix/OsxAptioFixV3且无EmuVariableUefi时可用) |
PlayAsync | 同步声音播放 |
CustomIcons | 自定义磁盘图标(将会在启动界面显示Mac中磁盘简介的图标) |
Entries
自定义启动项。示例如下。
选项 | 内容 | 说明 |
---|---|---|
Path | \EFI\path\to\file.efi | 启动的EFI文件路径 |
Title | 启动项名称 | |
Type | 启动项类型 | |
Volume | 磁盘GUID(无用时可删除该项) | |
Comment | 注释(可不填) |
Graphics
Clover检测到Intel iGPU时,如果config.plist中不存在Graphics部分,则会自动启用Intel显卡注入。
选项 | 说明 |
---|---|
VRAM | 设置显存(单位为MB) |
Load VBios | 从EFI/CLOVER/OEM/[model]/ROM或EFI/CLOVER/ROM/[vendor]_[device].rom加载视频BIOS(用于不带任何外部文件的移动Radeon卡,或向仅包含UEFI视频BIOS的卡提供旧版视频BIOS) |
DualLink | 设为0可解决某些机型显示四分之一屏幕问题 |
Patch VBios | 获得最高监视器分辨率支持(若分辨率不满足需求,可安装驱动CsmVideoDxe.efi) |
HorizontalSyncPulseWidth | 注入32可解决某些机型出现八个苹果的问题 |
VideoPorts | 显卡上的端口数量(包括TVO和/或HDMI) |
FBName | 选择帧缓冲区名称 |
NVCAP | 注入NVCAP(仅对Nvidia视频卡有效) |
display-cfg | 显卡CFG(仅对Nvidia视频卡有效) |
RadeonDeInit | 取消初始化Radeon卡(解决AMD Radeon HD6xxx及更高版本在睡眠后无法唤醒的问题) |
Kernel and Kexts Patches
选项 | 说明 |
---|---|
KernelCpu | 消除某些与旧系统中不受支持的CPU(例如Yonah,Atom或Haswell)相关的内核混乱 |
AppleRTC | 修复RTC问题,确保重启后不会重置BIOS |
KernelLapic | HP笔记本电脑存在Lapic问题,可以通过使用boot参数cpus=1 或使用此选项来解决 |
KernelHaswellE | 阻止Haswell-E兼容性检查 |
ATI Connectors Controller | 修改AMD视频卡控制器从而驱动AMD卡 |
KernelPM | 阻止写入MSR 0xe2(适用于10.8.5和10.9内核),防止在使用XCPM时在启动时引起内核恐慌 |
AppleIntelCPUPM | 与KernelPM相同,但是使用AppleIntelCPUPowerManagement时 |
KernelXCPM | 适用于IvyBridge CPU的XCPM补丁 |
InfoPlistPatch | 修补kext的Info.plist |
Rt variables
选项 | 说明 |
---|---|
BooterConfig | 一般为0x28 |
CsrActiveConfig | 0x0-启用SIP,0x3-部分禁用SIP(允许加载未签名的kexts),0x3E7-完全禁用SIP |
ROM / UseMacAddr0 | 将板载MAC地址作为ROM |
SMBIOS
选项 | 说明 |
---|---|
Trust | 优先考虑在SMBIOS或SPD中找到的内存描述符值(Mac中的内存描述不正确时需禁用) |
Slots AAPL injections | 填充PCI列表(一般不使用此法) |
System Paramaters
选项 | 说明 |
---|---|
BacklightLevel | 监控亮度水平,最大值为0xFFFF(全背光),最小值为0x0(无),默认值为0x0501(只有部分系统会受到此参数的影响,台式机可忽略) |
InjectSystemID | 设置为YES时注入设备树ID(IODeviceTree:/efi/platform/system-id),NO时注入运行时变量(IODeviceTree:/options/platform-uuid) |
InjectKexts | 是否从EFI/CLOVER/kexts/10.xx中注入kexts |
配置文件简化
自动生成
在终端输入以下命令自动生成config.plist,位置默认在个人文件夹目录。
1 | /usr/local/bin/clover-genconfig >config.plist |
手动修改
选项 | 操作 |
---|---|
ACPI | 禁用所有更名补丁 |
Gui | Scan处只勾选Entries和Tool以在引导界面出现UEFI Shell和Boot Options菜单 |
Kernel and Kext Patches | 禁用四个选项卡中所有的自带项 |
System Parameters | 删除BacklightLevel |
OcQuirks
Clover 5120移植了OpenCore的OpenRuntime.efi以替代较旧的内存管理驱动,Big Sur需要使用该方法驱动。需更新Clover Configurator至5.16及以上以适配新增的OcQuirks选项。
下载链接如下。
1 | https://github.com/ReddestDream/OcQuirks |
移除UEFI目录中的内存管理驱动,包括AptioMemoryFix、OsxAptioFix3Drv、OsxAptioFix2Drv、OsxAptioFixDrv、OsxLowMemFixDrv、OsxAptioFix2Drv-free2000。
将OcQuirks.efi、OpenRuntime.efi和OcQuirks.plist放到Clover的Drivers文件夹中,重启即可。若未找到OcQuirks,则采用以下默认值。
Quirk | 默认值 | 说明 |
---|---|---|
AvoidRuntimeDefrag | True | 开启后会修复UEFI的运行服务,例如日期、时间、NVRAM、电源控制等 |
DevirtualiseMmio | False | 开启后会减少Stolen内存占用空间,扩大Slide=N值的范围,适用于大多数主板 |
DisableSingleUser | False | 开启后会禁止Cmd+S和-s的使用,使设备更加接近于T2白苹果 |
DisableVariableWrite | False | 开启后会禁止NVRAM写入,在Z390/HM370等没有原生macOS支持NVRAM的主板上需要开启 |
DiscardHibernateMap | False | 开启后会重用原始休眠内存映射,仅某些旧硬件需要 |
EnableSafeModeSlide | True | 开启后会允许在安全模式下使用Slide值 |
EnableWriteUnprotector | True | 开启后会在执行期间删除CR0寄存器中的写入保护 |
ForceExitBootServices | True | 开启后会确保ExitBootServices即使在MemoryMap发生更改时也能调用成功(除非有必要,否则请勿使用) |
MmioWhitelist | Array | 设计为用plist dict值填充,描述使用DevirtualiseMmio的Quirk时对特定固件功能至关重要的地址 |
ProtectMemoryRegions | False | 开启后会用于修复人为制造和睡眠唤醒的问题(AvoidRuntimeDefrag已经修复了这个问题,所以尽可能避免使用这个Quirk) |
ProtectSecureBoot | False | 避免操作系统对UEFI安全启动变量(db/dbx/PX/KEK)进行写入(主要用于避免Insyde主板和MacPro 5,1的NVRAM问题) |
ProtectUefiServices | False | 保护UEFI服务不被固件覆盖 |
ProvideConsoleGopEnable | True | 控制台句柄缺少图形输出协议时需要 |
ProtectCsmRegion | False | |
ProvideCustomSlide | True | 如果Slide值存在冲突,此选项将强制macOS使用一个伪随机值(只有在遇到OnlyN/256slidevaluesareusable!时需要) |
RebuildAppleMemoryMap | True | 生成与macOS兼容的内存映射 |
SetupVirtualMap | True | 开启后会将SetVirtualAddresses调用修复为虚拟地址 |
SignalAppleOS | False | 通过OS Info将macOS加载的信息报告给其它操作系统,用于在Windows中为MacBook启用iGPU |
SyncRuntimePermissions | True | 同步运行时环境的内存权限 |
ShrinkMemoryMap | False | |
QuirksProvideConsoleGopEnable | True |
主题设置
1 | https://www.insanelymac.com/forum/topic/282787-clover-v2-instructions/page/3/?tab=comments#comment-2645125 |
相关资源
配置文件在线编辑
1 | https://cloudclovereditor.altervista.org/cce/index.php |
编译源码
1 | https://www.insanelymac.com/forum/topic/282787-clover-v2-instructions/page/2/?tab=comments#comment-2250955 |
OpenCore
OpenCore是取代Clover的新引导程序,从0.6.2版本起支持从10.4开始的操作系统,可使Mac拥有更快的启动速度。OpenCore也支持包括MacPro 5,1和虚拟机在内的大部分较新的Mac型号。
注意,OpenCore不支持MBR,只支持GPT。OpenCore不支持基于UEFI的VBIOS补丁,但该补丁可在Mac中完成。
下载链接如下。
1 | https://github.com/acidanthera/OpenCorePkg/ |
OpenCore与Clover一个很重要的不同在于,每个SSDT和kext都需要在config.plist中指定启动顺序。因此每次对ACPI和Kexts文件夹进行变动时,都需要修改config.plist。
在OpenCore主界面,点击空格以显示全部驱动器及辅助选项。
【过时】AppleSupportPkg
包括ApfsDriverLoader、FwRuntimeServices、VBoxHfs、VerifyMsrE2。
1 | https://github.com/acidanthera/AppleSupportPkg |
在macOS中,可通过在终端上输入以下命令获取OpenCore版本信息。
1 | nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:opencore-version |
部分说明
kexts注入
流程为使现有的预链接内核和kexts做好注入准备->使用新的kexts在EFI环境中重建缓存->添加此新缓存。
操作系统不可知的预链接内核格式自10.6(v2)以来一直保持不变,且所涉及的修补少,因此该方法稳定性高。OpenCore还支持预链接内核(v1,10.4/10.5),无缓存,支持Mkext和KernelCollections,因此支持所有Intel版本的Mac。
不能从OpenCore注入IO80211Family,否则将导致内核panic。
SMBIOS与ACPI
默认情况下,OpenCore将假定对所有操作系统注入ACPI和SMBIOS信息,以提供BootCamp支持。要启用仅限Mac的SMBIOS注入,需设置Kernel-Quirks-CustomSMBIOSGuid为True,PlatformInfo-UpdateSMBIOSMode为Custom。这两个quirk在未来可能会无法使用。
DEBUG和RELEASE
DEBUG版本可以极大地帮助调试启动问题,但是会增加一些明显的启动时间延迟。RELEASE版本引导时间短,但是在OpenCore中没有提供有用的调试信息,这使得故障排除更加困难。
从Clover转移
搭建引导
将下载的OpenCore压缩包解压,打开后将EFI文件夹复制到EFI分区下。
VBoxHfs和AudioDxe已和OpenCorePkg打包在一起,因此已经无需再额外下载AppleSupportPkg(同时该项目已经存档),只需下载OpenCorePkg和OcBinaryData即可。
复制Docs下的Sample.plist到EFI/OC,并更名为config.plist。若模拟2011年即以前的Mac机型,则复制SampleFull.plist。按照需求,将OpenCorePkg、OcBinaryData中的驱动放入Drivers文件夹,将OcBinaryData中Resources内的文件放入Resources文件夹。
开始时配置应尽量简单,建议初始配置如下。务必保证所有kexts均为最新版。完成文件放置后,根据配置文件详解部分,以Clover的config.plist为基础,配置OpenCore的config.plist。
1 | ├── ACPI |
【进阶】Drivers的选择
对于UEFI机器,使用以下驱动即可。
1 | HfsPlus |
对于BIOS机器则需要以下驱动。
1 | OpenUsbKbDxe |
对于使用32位CPU的机器,还需要HfsPlus32,下载链接如下。
1 | https://github.com/acidanthera/OcBinaryData/blob/master/Drivers/HfsPlus32.efi |
【进阶】OpenRuntime的说明
若使用OpenRuntime,且想获得和AptioMemoryFix类似的行为,需要使用以下Quirks。
1 | ProvideConsoleGop(UEFI Quirk) |
kexts转移
OpenCore支持Clover下使用的大部分kexts,但有部分kexts已经被集成,具体如下。
名称 | 备注 |
---|---|
NullCPUPowerManagement | 整合到Kernel-Emulate-DummyPowerManagement |
BT4LEContinuityFixup | 整合到Kernel-Quirks-ExtendBTFeatureFlags |
消除冲突
打开终端并输入以下命令。
1 | # 删除Clover设置面板 |
完成后可重启并重置一次NVRAM,然后通过OpenCore引导,查看是否成功。
若成功,则可复制Clover的kext到Kexts文件夹,并继续以下操作完善。若由于SSDT/DSDT而无法进入系统,即应当通过以下操作修复。
修改SSDT/DSDT
由于OpenCore中的SSDT、DSDT、SMBIOS等将会对所有操作系统生效,因此需要修改SSDT和DSDT以使其只对Mac生效。具体方法为在代码生效部分加上以下框架。
1 | If (_OSI ("Darwin")) |
若不是自己编写的SSDT,可直接用OC-little包中的SSDT替换。
修改后的文件在各引导器通用。为验证效果,将修改过的SSDT和DSDT放回Clover中,重启后在终端输入以下命令。如果日志中不存在ACPI Error,则修改成功,可将文件复制到OpenCore的ACPI文件夹。
1 | log show --last boot | grep -Ei "ACPI" |
摆脱ACPI Quirks
OpenCore没有Clover众多的ACPI Quirks,需要通过相关SSDT实现,列表如下。
ACPI Quirks | 取代方法 |
---|---|
FixIPIC | OC-little声卡IRQ补丁中的SSDT-IPIC |
FixSBUS | OC-little注入设备中的SBUS_SMBU补丁(或SSDT-SBUS-MCHC) |
FixShutdown | OC-little的PTSWAK综合补丁,需要添加其中的EXT1插件补丁或应用_PTS到ZPTS补丁并使用FixShutdown-USB-SSDT |
FixDisplay | 使用WhateverGreen和定制缓冲帧补丁 |
FixIPIC | 使用SSDTTime的FixHPET-Patch out IRQ Conflicts |
FixAirport | 使用AirportBrcmFixup |
AddMCHC | OC-little添加缺失的设备中的SSDT-MCHC/SSDT-SBUS-MCHC |
FixHDA | AppleALC能够处理这个问题 |
FakeLPC | 配置文件中DeviceProperties-Add-PciRoot…-device-id |
FixHPET/FixRTC/FixTMR | OC-little声卡IRQ补丁中的SSDT-HPET_RTC_TIMR-fix或SSDTTime的FixHPET-Patch out IRQ Conflicts |
FixSATA | 开启OpenCore中名为ExternalDiskIcons的Quirk,也可使用innie.kext |
FixADP1 | 见下方说明 |
FixRTC | OC-little的声卡IRQ补丁 |
FixTIMR | OC-little的声卡IRQ补丁 |
AddPNLF | OC-little注入设备中的PNLF注入方法(SSDT-PNLF) |
AddIMEI | 使用WhateverGreen或SSDT-SBUS-MCHC对于Z77上的Sandy Bridge或Z67上的IvyBridge,需用SSDT-IMEI仿冒IMEI |
FixIntelGfx | 使用WhateverGreen |
AddHDMI | 使用WhateverGreen |
DropTables | 配置文件中ACPI-Delete |
DisableASPM | 在设备属性(DeviceProperties)中分别添加相关设备的PCI总线位置并注入属性pci-aspm-default | DATA | <00> |
HaltEnabler | 配置文件中ACPI-Quirks-FadtEnableReset设为True |
PluginType | OC-little注入X86中的SSDT-PLUG补丁 |
NeverHibernate | 配置文件中Misc-Boot-HibernateMode-None |
Generate P/C States | 六代以前CPU才需要设置,可用ssdtPRGen.sh生成对应的SSDT |
降压和超频 | 使用sVoltageShift |
AFGLowPowerState | 在设备属性(DeviceProperties)中注入属性AFGLowPowerState | DATA | <01000000> |
ResetHDA | 安装JackFix以及配套的守护进程 |
flagstate | 若设置为0,则在配置文件中的NVRAM-Add-4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14添加flagstate | Data | <00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000> |
UIScale | 可设置为1/2,在配置文件中的NVRAM-Add-4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14添加UIScale | Data | <01(02)> |
CPU Type | 配置文件中PlatformInfo-Generic-ProcessorType |
HWPEnable | 使用HWPEnable.kext,手动设置MSR 0x770 |
ForceHPET | 配置文件中UEFI-Quirks-ActivateHpetSupport |
对于FixADP1,可直接执行重命名change AC0_ to ADP1。根据原始DSDT中对AC0_设备的定义,可能还需要用SSDT为ADP1设备注入Name (_PRW, Package (0x02) {0x1C,0x03}),SSDT代码如下。
1 | DefinitionBlock ("", "SSDT", 2, "SUKA", "FixADP1", 0x00001000) |
也可不进行重命名,直接使用以下SSDT。注意该SSDT已注入Name (_PRW, Package (0x02) {0x1C,0x03})。
1 | DefinitionBlock ("", "SSDT", 2, "SUKA", "FixADP1", 0x00001000) |
【进阶】对于以上SSDT的说明
以上SSDT用于在不使用更名补丁的情况下进行更名,模版如下。
1 | https://github.com/dortania/OpenCore-Install-Guide/blob/master/extra-files/Rename-SSDT.dsl |
修改补丁形式
KernelToPatch和KextToPatch在OpenCore中的条目与在Clover有所不同。
具体而言,在OpenCore中,InfoPlistPatch没有奇偶校验,MatchOS被替换为MinKernel和MaxKernel,TgtBridge被替换为Base。同时,KernelToPatch和KextToPatch都被放置于配置文件的Kernel-Patch下,需要使用Identifier标示是适用于Kernel还是Kext。若适用于Kernel,直接填写kernel
即可。若适用于kext,则填写kext的标识符,如com.apple.iokit.IOGraphicsFamily
。
注意以下Quirk会应用对应的Patch。
1 | # Kernel Patches |
引导更新
下载新的引导包后,覆盖EFI分区中的EFI/BOOT/BOOTx64.efi,EFI/OC/OpenCore.efi,EFI/OC/Drivers/OpenRuntime,并更新其它Drivers。
通过以下脚本比较新版配置文件与旧版的区别。
1 | https://github.com/corpnewt/OCConfigCompare |
也可在终端输入以下命令进行。
1 | diff [文件1] [文件2] |
完成后可通过ocvalidate检查是否符合规范。在终端输入以下命令即可。
1 | cd [OC文件夹路径]/Utilties/ocvalidate |
配置文件生成
可通过工具自动生成。
1 | # Opencore Gen-X |
配置文件详解
用Xcode或ProperTree打开config.plist,也可使用OpenCore Configurator。根据以下内容进行配置。
【进阶】ProperTree的Clean Snapshot功能
通过该功能,可将路径下的所有SSDT、Kexts和Drivers添加到路径中。
ACPI
对ACPI的修补按照Patch-Delete-Add-Quirks的顺序执行。所有对ACPI的更改会在所有操作系统上生效。
Add
此处需添加EFI/OC/ACPI下的DSDT/SSDT路径。以添加电池热补丁SSDT-BAT0.aml为例,格式如下。
选项 | 设置 | 说明 |
---|---|---|
Comment | Battery | 注释(可不填) |
Enabled | True | 启用/禁用 |
Path | SSDT-BAT0.aml | DSDT/SSDT路径 |
注意应把DSDT放到最前面,而SSDT的顺序一般可以随意。
Delete
禁用某个ACPI表,常用于禁用DAMR来关闭VT-d,一般无需修改。
当序列需要在多处替换的时候,注意不要指定表的签名。
选项 | 说明 |
---|---|
All | 设置为true则所有符合条件的ACPI表都会被舍弃,否则只舍弃第一个匹配到的 |
Comment | 注释(可不填) |
Enabled | 启用/禁用 |
OemTableId | 将表的OEM ID匹配为此处所填的值,全部为0时忽略 |
TableLength | 将表的大小匹配为此处所填的值,填0时忽略 |
TableSignature | 将表的签名匹配为此处的值,全部为0时忽略 |
Patch
对DSDT(SSDT)的内容进行查找和替换,相当于Clover里的改名补丁。Find和Replace的长度必须完全一样,否则ACPI表可能会被破坏、导致系统不稳定。必要时可使用NOP填充剩余区域。
如EC0->EC补丁,书写格式如下。
选项 | 设置 | 说明 |
---|---|---|
Base | / | 为重命名补丁指定一个ACPI路径,让OC通过取得该路径的偏移量来查找(或替换)重命名补丁,留空时忽略。只有正确的绝对路径被支持,如\_SB.PCI0.LPCB.HPET ,目前支持的Object类型有Device、Field、Method |
BaseSkip | / | 在重命名补丁被应用之前跳过多少次Base指定的路径,如果将此值设置为0,补丁将会被应用于指定Base中的所有匹配 |
Comment | change EC0 to EC | Comment |
Count | 0 | 执行次数(0代表不限制) |
Enabled | True | 启用/禁用 |
Find | 4543305F | 寻找的十六进制内容 |
Limit | 0 | 要搜索的最大字节数(0代表遍历整个ACPI表) |
Mask | / | 查找比较期间使用的数据按位掩码,通过忽略未屏蔽(设置为零)位来进行模糊搜索。可以设置为空数据以忽略,否则此值的长度必须和Replace的长度相等 |
OemTableId | / | 将表的OEM ID匹配为此处所填的值,全部为0时忽略 |
Replace | 45435F5F | 替换为的十六进制内容 |
ReplaceMask | / | 替换数据期间使用的数据按位掩码,通过忽略未屏蔽(设置为零)位来进行模糊搜索。可以设置为空数据以忽略,否则此值的长度必须和Replace的长度相等 |
Skip | 0 | 跳过前N个,0表示不跳过 |
TableLength | 0 | 将表的大小匹配为此处所填的值,填0时忽略 |
TableSignature | / | 将表的签名匹配为此处的值,全部为0时忽略 |
通过Count和Skip的应用,可以达成Clover下Tgtbridge的效果。具体而言,若想将DSDT中的某一特定字段重命名,则可在Skip下填写在该字段之前有多少个同名字段,在Count下填写该改名规则需执行几次。如现需将DSDT中的第54和55个_PRW改为XPRW,则Skip填53,Count填2。
对于华擎、华硕、微星主板,可能会遇到RTC问题而无法进入系统。此时可应用以下补丁。
选项 | 设置 |
---|---|
Comment | RTC fix |
Count | 0 |
Enabled | True |
Find | A00A9353 54415301 |
Limit | 0 |
Mask | / |
OemTableId | / |
Replace | A00A910A FF0BFFFF |
ReplaceMask | / |
Skip | 0 |
TableLength | 0 |
TableSignature | / |
Quirks
选项 | 设置 | 说明 |
---|---|---|
FadtEnableReset | NO | 在FADT表中提供寄存器复位标志,用于在旧硬件上修复重启和关机(如果遇到关机变重启可尝试打开,非必要不启用) |
NormalizeHeaders | NO | 清除ACPI头字段以解决macOS ACPI实现错误导致的引导崩溃(macOS 10.13/某些主板需要打开) |
RebaseRegions | NO | 尝试试探性地重新定位ACPI内存区域,使用自定义DSDT则必须开启(换硬件、升级BIOS等对硬件的操作会对ACPI表产生影响) |
ResetHwSig | NO | 将FACS表中HardwareSignature的值重置为0,休眠相关(重启后因无法维持硬件签名而导致从休眠中唤醒的硬件需要开启,台式机不需要) |
ResetLogoStatus | NO | 将BGRT表中Displayed状态字段重置为 false,适用于提供BGRT表、但随后无法处理屏幕更新的固件,无法在有BGRT表的系统上显示OEM Windows标志的硬件需要开启 |
Booter
MmioWhitelist
描述在启用DevirtualiseMmio这个Quirk时特定固件能够运作的关键地址。
默认的第一项是为Haswell芯片提供的内存寻址修复,第二项是ACPI、PCI device同时释放到内存时发生0x1000内存地址被占用而卡在PCI Configration的问题修复。一般无需修改,如果开机卡在PCI…可以尝试开启Item 1下的Patch。
选项 | 说明 |
---|---|
Address | 排除在外的MMIO地址,其内存描述符应被DevirtualiseMmio虚拟化(保持不变),该值所在的区域会被分配一个虚拟地址,在操作系统运行期间固件能够直接与该内存区域进行通信。这里写入的地址必须是内存映射的一部分,具有EfiMemoryMappedIO类型和EFI_MEMORY_RUNTIME属性(最高 bit),可使用调试日志找到可能的地址 |
Comment | 注释(可不填) |
Enabled | 启用/禁用 |
Patch
在启动器中执行二进制补丁。
选项 | 说明 |
---|---|
Arch | 启动器补丁架构,可为Any/i386/x86_64 |
Comment | 注释(可不填) |
Count | 执行次数(0代表不限制) |
Enabled | 启用/禁用 |
Find | 要查找的数据,必须与Replace的大小相等 |
Identifier | Apple代表macOS启动器(通常是boot.efi),带有后缀的名称(如 bootmgfw.efi)代表特定的启动器,Any或空字符串(默认)代表任何启动器 |
Limit | 搜索的最大字节数,设置为0来查找整个启动器 |
Mask | 在查找比较的过程中使用数据位掩码。允许通过忽略未被屏蔽的bit(设置为0)进行模糊搜索。若留空则代表忽略,否则其大小必须等于Find |
Replace | 一个或多个字节的替换数据 |
ReplaceMask | 替换时使用的数据位掩码。允许通过更新掩码(设置为非0)来进行模糊替换。若留空则代表忽略,否则其大小必须等于Replace |
Skip | 在替换前要跳过的发现事件数 |
Quirks
选项 | 内容 | 说明 |
---|---|---|
AllowRelocationBlock | NO | 允许通过重定位块来启动macOS,需要同时启用ProvideCustomSlide(必需)和AvoidRuntimeDefrag(通常情况下)。不兼容某些硬件及macOS 11,可能需要用EnableSafeModeSlide来替代 |
AvoidRuntimeDefrag | YES | 修复UEFI Runtime服务,提供对可变存储的支持(日期/时间/NVRAM/电源控制等)。除Apple和VMware固件外,都需要启用此选项 |
DevirtualiseMmio | NO | 从选定的MMIO区域中删除Runtime属性,通过删除已知内存区域的Runtime bit减少Stolen内存占用空间,扩大Slide=N值的范围,通常释放64-256MB的内存,具体数值会显示在调试日志中。若要添加slide=1以使用连续性的内存注入方式则关闭,不一定与目标主板兼容,通常对所有固件都有用(除了一些非常古老的固件,如Sandy Bridge) |
DisableSingleUser | NO | 禁用单用户模式,更接近基于T2的计算机 |
DisableVariableWrite | YES | 禁止NVRAM写入,需要OpenRuntime.efi提供的OC_FIRMWARE_RUNTIME协议的实现,在Z390/HM370等没有原生macOS支持NVRAM的主板上需要开启 |
DiscardHibernateMap | NO | 开启后会重用原始休眠内存映射,强制XNU内核忽略新提供的内存映射、认定设备从休眠状态唤醒后无需对其更改。仅某些旧硬件需要(Insyde固件的Ivy Bridge笔记本电脑,如Acer V3-571G),引导Windows时必须启用(因为Windows要求S4唤醒后保留运行内存的大小和位置) |
EnableSafeModeSlide | NO | 修补引导加载程序以在安全模式下启用KASLR,允许在安全模式下使用Slide值(默认情况下安全模式会使用slide=0),只有当ProvideCustomSlide启用后才可以启用本Quirks。启动到安全模式失败时启用 |
EnableWriteUnprotector | YES | 在执行期间删除CR0寄存器中的写入保护(WP bit),绕过其代码页的RX权限,保证NVRAM能正常写入而不受到UEFI内的一些服务的影响。需要配合OpenRuntime.efi里的OC_FIRMWARE_RUNTIME协议来实现,可能会破坏固件安全性,若固件支持内存属性表MAT,应优先使用RebuildAppleMemoryMap |
ForceExitBootServices | NO | 在失败时用新的内存映射(Memory Map)重试ExitBootServices,确保ExitBootServices即使在MemoryMap发生更改时也能调用成功,让非常老旧的主板也能使用内存寻址(是否启用这个Quirk取决于是否遇到了Early Boot故障,非必要勿使用) |
ProtectMemoryRegions | NO | 与AvoidRuntimeDefrag类似,保护内存区域免于不正确的读写(是否启用这一Quirk取决于是否遇到了休眠、睡眠无法唤醒、启动失败或其他问题,一般只有非常旧的固件才需要启用) |
ProtectSecureBoot | YES | 保护UEFI安全启动被写入,尝试从操作系统写入db、dbx、PK和KEK时生成报告。避免碎片整理导致的NVRAM相关问题,如Insyde或MacPro5,1 |
ProtectUefiServices | YES | 保护UEFI服务不被固件覆盖。某些现代固件(包括硬件和 VMware 之类的虚拟机)可能会在加载驱动及相关操作的过程中,更新UEFI服务的指针,这一行为会直接破坏其他影响内存管理的Quirk,如DevirtualiseMmio、ProtectMemoryRegions、RebuildAppleMemoryMap。该Quirk解决Z390系列主板卡开机卡++++的问题(在VMware上是否需要开启这个Quirk取决于是否有Your Mac OS guest might run unreliably with more than one virtual core.这样的消息) |
ProtectCsmRegion | NO | 开启后会用于修复人为制造和睡眠唤醒的问题(AvoidRuntimeDefrag已经修复了这个问题,故避免使用) |
ProvideCustomSlide | YES | 为低内存设备提供自定义KASLR slide 值,如果Slide值存在冲突,此选项将强制macOS使用一个伪随机值,同时确保slide参数不会被传递给操作系统(遇到Only N/256 slide values are usable!时需要) |
ProvideMaxSlide | YES | 当更大的KASLR slide值不可用时,手动提供最大KASLR slide值。当ProvideCustomSlide启用、并且随机化的slide落入不可用的范围时,如果出现随机的启动失败,则有必要开启这个Quirk |
RebuildAppleMemoryMap | NO | 重新生成内存地图来匹配苹果系统,遇到内存问题导致无法开机时可尝试使用。与EnableWriteUnprotector存在冲突关系,若开启此项则需关闭另一项,同时此项需要与SyncRuntimePermissions搭配使用。根据是否遇到第一阶段启动失败决定是否启用这一Quirk,在支持内存属性表MAT的平台上使用,在使用OpenDuetPkg时一般不需要启用这个Quirk,但如果要启动macOS 10.6或更早的版本则可能需要启用 |
SetupVirtualMap | YES | 建立虚拟内存并对物理内存进行映射,将SetVirtualAddresses调用修复为虚拟地址(是否启用这个Quirk 取决于是否遇到了Early Boot故障,具有内存保护支持的新固件不支持该Quirk) |
ShrinkMemoryMap | NO | 有巨大且不兼容内存映射的主板需要开启(非必要勿使用) |
SignalAppleOS | NO | 通过OS Info将macOS加载的信息报告给其它操作系统。总是向OS Info报告启动的是macOS,适用于Mac设备,用于在Windows中启用iGPU |
SyncRuntimePermissions | NO | 更新运行时环境的内存权限。通过更新内存映射和内存属性表修正硬件在注入内存时无法注入权限的问题。是否开启这一Quirk取决于是否遇到Early Boot故障,一般此类问题存在2018年后的主板 |
注意,当AvoidRuntimeDefrag不起作用时,可使用以下内核补丁。
键 | 类型 | 值 |
---|---|---|
Comment | String | AvoidRuntimeDefrag workaround |
Base | String | _acpi_count_enabled_logical_processors |
Count | Integer | 1 |
Enabled | Boolean | True |
Find | Data | |
Identifier | String | Kernel |
Limit | Integer | 0 |
Mask | Data | |
MaxKernel | String | |
MinKernel | String | 20.0.0 |
Replace | Data | B804000000C3 |
ReplaceMask | Data | |
Skip | Integer | 0 |
DeviceProperties
Add
添加的属性只有在不存在且未被屏蔽的情况下才会被设置。
此处内容可以用Hackintool生成后直接复制,注意设备路径的修改。主要路径如下。
路径 | 用途 |
---|---|
PciRoot(0x0)/Pci(0x1f,0x3) | 注入音频Layout ID |
PciRoot(0x0)/Pci(0x2,0x0) | 注入缓冲帧补丁 |
主要属性列表如下。
1 | # 硬盘 |
可通过设置外置硬盘的build-in属性为00以设置为内建。其中外置硬盘的设备路径可以通过gfxutil找到,具体为在系统PCI列表中找到类似AHCI Controller或NVM Express Controller的PCI名称,然后输入以下命令。
1 | # pci0000,0000为上面找到的PCI名称 |
添加该条目,并设置以下键即可。
键 | 类型 | 值 |
---|---|---|
built-in | Data | AA== |
Delete
删除/屏蔽设备属性,等同于Clover里的ACPI重命名_DSM→XDSM=>TgtBridge。一般无需修改。
常见属性
属性 | 说明 |
---|---|
device-id | 设备标识符 |
vendor-id | 供应商标识符 |
AAPL,ig-platform-id | Intel GPU缓冲帧标识符,用于在Ivy Bridge上选择缓冲帧区域 |
AAPL,snb-platform-id | Intel GPU缓冲帧标识符,用于在Sandy Bridge上选择缓冲帧区域 |
layout-id | AppleHDA的音频布局 |
Kernel
Add
此处需要填写kexts的具体内容,OpenCore会按照顺序执行,故需确保Lilu.Kext始终在第一位。其他优先级高的为Lilu的插件,如VirtualSMC、AppleALC、WhateverGreen等。
若不知道kexts的加载顺序或加载内容,可在Clover Configuration中选择boot.log选项卡,并点击Generate log生成启动日志,在日志中搜索对应kext即可。
也可以通过检查Kext驱动中Info.plist的OSBundleLibraries值的方法来确定其依赖驱动的加载顺序,OSBundleLibraries中的任何依赖驱动都必须在此Kext之前加载。
选项 | 内容 | 说明 |
---|---|---|
Arch | Any | kext架构(Any/i386/x86_64) |
BundlePath | Lilu.kext | kext的名称,对于直接位于EFI/OC/Kexts下的kext直接填写名字,对于某一个内核拓展的子拓展则填写具体路径 |
Comment | 注释(可不填) | |
Enabled | YES | 启用/禁用 |
ExecutablePath | Contents/MacOS/Lilu | 隐藏在kext中的实际可执行文件的路径,可通过右键单击并选择显示包内容 查看,通常为 Contents/MacOS/[kext] ),没有可执行文件的空壳kexts则留空(如USBPorts.kext) |
MaxKernel | 支持的最大系统版本(19 为10.15,18 为10.14),一般留空 |
|
MinKernel | 支持的最小系统版本 | |
PlistPath | Contents/Info.plist | 隐藏在kext中的Info.plist路径 |
当Plugins内有kexts时,需一并加载,格式如下。
选项 | 内容 |
---|---|
BundlePath | A.kext/Contents/PlugIns/B.kext |
ExecutablePath | Contents/MacOS/B |
PlistPath | Contents/Info.plist |
此处需注意VoodooPS2Controller与VoodooI2C的注入。注入顺序如下,注意需放到kexts加载的最后。
1 | VoodooPS2Controller.kext |
Block
屏蔽系统里的kext。
选项 | 内容 | 说明 |
---|---|---|
Arch | Any | kext架构(Any/i386/x86_64) |
Comment | 注释(可不填) | |
Enabled | YES | 启用/禁用 |
Identifier | Kext Bundle标识符 | |
MaxKernel | 支持的最大系统版本(19 为10.15,18 为10.14),一般留空 |
|
MinKernel | 支持的最小系统版本 |
在Identifier中输入kext的捆绑包标识符即可,一般为com.apple.driver.[kext]
,可在关于本机-系统报告…-功能扩展中查到。部分kext的捆绑包标识符如下。
名称 | 捆绑包标识符 | 备注 |
---|---|---|
AppleIntelLpssI2C | com.apple.driver.AppleIntelLpssI2C | |
AppleIntelLpssI2CController | com.apple.driver.AppleIntelLpssI2CController | |
AppleRTC | com.apple.driver.AppleRTC | 禁用RTC关机校验(Base为__ZN8AppleRTC14updateChecksumEv) |
Emulate
一般无需使用。
EAX、EBX、ECX、EDX值的序列,用来取代XNU内核中的CPUID(1)调用。通常来讲只需要处理EAX的值,因为它代表完整的CPUID,剩余的字节要留为0。
用于对不支持的CPU型号启用支持(如奔腾、赛扬),或对不支持的CPU Variant启用XCPM支持,或对电源管理不支持(比如虚拟机)的CPU型号启用支持。
选项 | 内容 | 说明 |
---|---|---|
CpuidMask | FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 | 化为二进制,某位为1代表该位数值需用CpuidData的对应数值替换,否则不需要 |
CpuidData | C3 06 03 00 00 00 00 00 00 00 00 00 00 00 00 00 | CPU的被仿冒位(填写时需要使用小端规则,即该示例对应的CPUID为0x0306C3) |
DummyPowerManagement | NO | 禁用AppleIntelCpuPowerManagement原生电源管理,用于更好的替代NullCpuPowerManagement.kext,AMD CPU一般需要使用 |
MaxKernel | 模拟CPUID,并在指定的或更低的macOS版本上使用DummyPowerManagement | |
MinKernel | 模拟CPUID,并在指定的或更高的macOS版本上使用DummyPowerManagement |
仿冒示例如下。
选项 | 内容 |
---|---|
Haswell-E(0x0306F2) to Haswell(0x0306C3) | |
CpuidMask | FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 |
CpuidData | C3 06 03 00 00 00 00 00 00 00 00 00 00 00 00 00 |
Broadwell-E (0x0406F1) to Broadwell (0x0306D4) | |
CpuidMask | FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 |
CpuidData | D4 06 03 00 00 00 00 00 00 00 00 00 00 00 00 00 |
Force
如果内核驱动没有被缓存,则从磁盘强制加载内核驱动。
依赖其他驱动的驱动程序不能被缓存,该部分着重解决了这种驱动程序注入的难点。这个问题会映像到旧的操作系统,在旧的操作系统中存在各种依赖性的Kext,比如IOAudioFamily和IONetworkingFamily,可能默认不存在于内核缓存中。内核驱动的加载是有顺序的,因此依赖驱动应该排在前面。
Force的驱动不会被检查,因此,使用安全启动时不应使用此功能。此功能可能无法在较新的操作系统的加密分区上工作。
选项 | 内容 | 说明 |
---|---|---|
Arch | Any | kext架构(Any/i386/x86_64) |
BundlePath | System/Library/Extensions/IONetworkingFamily.kext | kext路径 |
Comment | 注释(可不填) | |
Enabled | YES | 启用/禁用 |
ExecutablePath | Contents/MacOS/IONetworkingFamily | 隐藏在kext中的实际可执行文件的路径 |
Identifier | com.apple.iokit.IONetworkingFamily | kext 标识符 |
MaxKernel | 支持的最大系统版本(19 为10.15,18 为10.14),一般留空 |
|
MinKernel | 支持的最小系统版本 | |
PlistPath | Contents/Info.plist | 隐藏在kext中的Info.plist路径 |
Patch
用于添加系统内核补丁、Kext补丁、AMD CPU补丁等,等同于Clover的KextToPatch和KernelToPatch。默认的第一、二项用于修复Apple RTC,若华硕主板出现RTC错误而无法开机,可以尝试打开这两个中的其中一个(一次只用一个)以修复华硕主板重启丢失BIOS设置以及需要按F1跳过安全模式的问题。
选项 | 内容 | 说明 |
---|---|---|
Arch | Any | kext架构(Any/i386/x86_64) |
Base | / | 通过获取所提供的Symbol名称的地址来选择Symbol匹配的Base进行补丁查找(或直接替换),可设置为空字符串以忽略 |
Comment | Comment | |
Count | 0 | 执行次数(0代表不限制) |
Enabled | True | 启用/禁用 |
Find | 寻找的十六进制内容。可留空,在Base处直接替换。若不留空,其大小必须等于Replace | |
Identifier | Kext Bundle标识符 | |
Limit | 要搜索的最大字节数(0代表遍历整个ACPI表) | |
Mask | / | 查找比较期间使用的数据按位掩码,通过忽略未屏蔽(设置为零)位来进行模糊搜索。可以设置为空数据以忽略,否则此值的长度必须和Replace的长度相等 |
MaxKernel | 支持的最大系统版本(19 为10.15,18 为10.14),一般留空 |
|
MinKernel | 支持的最小系统版本 | |
Replace | 替换为的十六进制内容 | |
ReplaceMask | / | 替换数据期间使用的数据按位掩码,通过忽略未屏蔽(设置为零)位来进行模糊搜索。可以设置为空数据以忽略,否则此值的长度必须和Replace的长度相等 |
Skip | 0 | 跳过前N个,0表示不跳过 |
Quirks
选项 | 内容 | 说明 |
---|---|---|
AppleCpuPmCfgLock | NO | 禁用AppleIntelCPUPowerManagement.kext中的PKG_CST_CONFIG_CONTROL (0xE2)修改,从而避免早期Kernel Panic。若设备的CFG-Lock开启则设置为YES(尽可能用Grub关闭BIOS的CFG-Lock以避免开启,与Clover的AppleIntelCPUPM对应) |
AppleXcpmCfgLock | NO | 禁用XNU内核对PKG_CST_CONFIG_CONTROL (0xE2)修改,从而避免早期Kernel Panic。若设备的CFG-Lock开启则设置为YES,10.7及更旧系统无需使用(与Clover的KernelPM对应) |
AppleXcpmExtraMsrs | NO | 对于没有XCMP支持的设备,禁用对选定CPU的多MSR访问。通常将其与Haswell-E/Broadwell-E/Skylake-SP和类似CPU的Emulate结合使用,10.7及更旧系统无需使用(与Clover的KernelXCPM对应) |
AppleXcpmForceBoost | NO | 强制拉高睿频,建议在长期高负载的专业设备上使用,Xeon系列的处理器开启这个选项会受益,10.7及更旧系统无需使用 |
CustomSMBIOSGuid | NO | 对UpdateSMBIOSMode自定义模式执行GUID修补,用于戴尔笔记本电脑(等同于Clover的DellSMBIOSPatch) |
DisbaleIOMapper | NO | 禁用XNU(VT-d)中的IOMapper支持,需要绕过VT-d且BIOS中无法禁用时使用,10.7及更旧系统无需使用(相比直接在ACPI表中删除DMAR的做法,本Quirk更好) |
DisableLinkeditJettison | NO | 禁止丢弃__LINKEDIT,让Lilu.kext和其他一些功能以最佳性能运行,而不需要keepsyms=1启动参数,适用于11及更高系统 |
DisableRtcChecksum | NO | 越过两条RTC检查0x58及0x59(一般卡RTC应当先使用RTCMemoryFixup.kext而非开启该项,https://github.com/acidanthera/RTCMemoryFixup) |
ExtendBTFeatureFlags | NO | 将FeatureFlags设置为0x0F,以实现蓝牙的全部功能(包括连续互通功能),用于替代BT4LEContinuityFixup.kext,适用于10.8及更高系统 |
ExternalDiskIcons | NO | 硬盘图标补丁,修补AppleAHCIPort.kext图标,使macOS将所有AHCI存储设备显示为内部硬盘(macOS将内部硬盘视为外接硬盘时使用,对于Z87及以下版本的NVMe,只需通过DeviceProperties添加内置属性) |
ForceSecureBootScheme | NO | 强制采用x86方案进行IMG4核查,在虚拟机上使用x86legacy以外的SecureBootModel时需要开启此选项,适用于11及更高系统 |
IncreasePciBarSize | NO | 将IOPCIFamily中32位PCI Bar的大小从1GB增加到4GB,适用于10.10及更高系统(在BIOS中启用Above4GDecoding是一种更加干净和安全的方法,某些X99板可能需要开启,这些主板通常会在IOPCIFamily上遇到内核崩溃) |
LapicKernelPanic | NO | 禁用由AP核心lapic中断造成的内核崩溃,通常用于惠普电脑,适用于10.6(64-bit)及更高系统(等同于Clover的KernelLapic) |
LegacyCommpage | NO | 默认的64位commpage bcopy的实现需要SSSE3,这个选项把它替换为不需要SSSE3的实现,防止因不存在不需要SSSE3的64位bcopy 函数而导致的commpage no match for last Panic,适用于10.4-10.6 |
PanicNoKextDump | YES | 在发生内核崩溃时阻止输出Kext列表,适用于10.13及更高系统(与Clover的PanicNoKextDump对应) |
PowerTimeoutKernelPanic | YES | 修复macOS Catalina中由于设备电源状态变化超时而导致的内核崩溃,适用于10.15及更高系统(相当于启动参数setpowerstate_panic=0) |
SetApfsTrimTimeout | -1 | 为SSD上的APFS文件系统设置微秒级的trim超时时间,可通过设置为一个非常高的值如4294967295以确保所有区块均被trim处理,或设置一个非常低的值如999以禁止trim操作,适用于10.14及更高系统 |
ThirdPartyDrives | NO | 修补IOAHCIDeleteStorage.kext,以在第三方驱动器启用TRIM、硬盘休眠等功能,适用于10.6及更高系统(NVMe SSD通常无需这一修改,AHCI SSD,如SATA SSD可使用trimforce) |
XhciPortLimit | NO | 修补AppleUSBXHCI.kext、AppleUSBXHCIPCI.kext、IOUSBHostFamily.kext以移除15端口限制,适用于10.11及更高系统(不建议依赖,建议定制USB) |
Scheme
通过参数来定义内核空间的操作模式,对于旧版macOS操作系统尤为重要。
FuzzyMatch
使用校验值不同的kernelcache。
在10.6和更早的版本中,kernelcache文件名有一个校验值,由于ACPI或硬件的特殊性,UEFI和macOS的EfiBoot设备路径不同,使得kernelcache的校验和总是不同。这一设置可以在无后缀的kernelcache不可用时,将最新的kernelcache与合适的架构进行匹配,从而提高10.6在多个平台上的启动性能。
KernelArch
优先选择指定的内核架构,选项如下。按x86_64、i386、i386-user32顺序选择参数可以获得最佳的架构支持。
不支持用热键3+2和6+4来选择偏好架构,因为这个热键由EfiBoot处理,很难正确地检测到。
选项 | 含义 |
---|---|
Auto | 自动选择 |
i386 | 32位内核 |
i386-user32 | 32位内核,并在64位处理器上强制使用32位用户空间,对应-legacy内核启动参数(对于64位固件上运行的10.4和10.5系统不可用,一般用于不支持SSSE3指令集的64位处理器如奔腾,因为macOS默认64位处理器支持SSSE3) |
x86_64 | 64位内核 |
KernelCache
优先选择指定的内核缓存(Kernel Cache)类型,可为Auto、Cacheless、Mkext、Prelinked。
可用内核缓存类型及其当前在OpenCore中的支持情况列表如下。
系统版本 | i386 NC (NoCache) | i386 MK (Mkext) | i386 PK (Prelinked) | x86_64 NC (NoCache) | x86_64 MK (Mkext) | x86_64 PK (Prelinked) | x86_64 KC |
---|---|---|---|---|---|---|---|
10.4-10.5 | YES | YES (V1) | NO (V1) | - | - | - | - |
10.6 | YES | YES (V2) | YES (V2) | YES | YES (V2) | YES (V2) | - |
10.7 | YES | - | YES (V3) | YES | - | YES (V3) | - |
10.8-10.9 | - | - | - | YES | YES (V3) | - | |
10.10-10.15 | - | - | - | - | - | YES (V3) | - |
11+ | - | - | - | - | - | YES (V3) | YES |
Misc
BlessOverride
选项 | 内容 | 说明 |
---|---|---|
Item 0(String) | \EFI\Microsoft\Boot\bootmgfw.efi | 用于覆盖Windows的bootmgfw.efi的位置,以便识别Windows引导项,OpenCore和Windows的引导文件在同一硬盘的同一ESP分区下时使用 |
Item 1(String) | \EFI\debian\grubx64.efi | 用于Debian引导 |
Boot
总述
选项 | 内容 | 说明 |
---|---|---|
ConsoleAttributes | 0 | 给引导选择界面添加特效,填入字体颜色和背景颜色的值的16进制之和 |
HibernateMode | None | 与系统内的休眠模式配合,引导进系统会还原休眠前的状态,会影响SSD寿命(None-关闭休眠支持,Auto-自动检测RTC和NVRAM模式,RTC-从RTC检测,NVRAM—从NVRAM检测) |
HideAuxiliary | YES | 隐藏辅助条目,包括macOS恢复分区、在自定义引导项时定义为Auxiliary的引导项、在 Tools中添加的工具(如Clean NVRAM)、macOS时间机器分区 |
LauncherOption | Disabled | 在固件偏好设置中注册启动器选项(Disabled-禁用,Full-在UEFI变量存储中创建或更新最高优先级的启动项,必须同时开启RequestBootVarRouting,Short-创建一个短的、非完整的启动项,对于某些无法处理完整设备路径的固件如Insyde很有用) |
LauncherPath | Default | LauncherOption的启动引导路径(Default-引导OpenCore.efi,其它路径如\EFI\Launcher.efi可用来提供自定义加载器) |
PickerAttributes | 0 | 设置开机引导菜单的属性(0x0004-简化主题图标下的文字,0x0008-使用老式的图标) |
PickerAudioAssist | NO | 朗读屏幕上选择项的内容 |
PollAppleHotKeys | NO | 允许在引导过程中使用苹果原生快捷键Modifier Hotkey(需要与Quirk中KeySupport=Yes或UsbKbDxe.efi结合使用,具体体验取决于主板固件,可能会导致选择分区时卡住) |
ShowPicker | YES | 显示OpenCore的UI,用于查看可用引导项(可以在启动时按住OPT键或连续点按Escape来实现) |
TakeoffDelay | 0 | 在启动前延迟n毫秒,提升键盘快捷键识别的正确率,比如启动到恢复模式(n的有效范围为5000-10000,32bit以内的正整数) |
Timeout | 0 | 设置引导项等待时间(0为关闭倒计时,相当于Clover的-1),设置为NO可以跳过倒计时 |
PickerMode | Builtin | 使用OpenCore的默认GUI(External-使用其它GUI,Apple-使用原生GUI,黑苹果不支持) |
PickerVariant | Auto | 选择启动管理器所使用的图标集(Auto—基于DefaultBackground的设置自动选择相应的图标集,Default—常规图标集,无前缀,Old—复古图标集,文件名有Old前缀,Modern—新颖图标集,文件名有Modern前缀,其他值—自定义图标集,需要在Resources中添加相应图标集) |
ConsoleMode | Max | 设置控制台模式为最大允许分辨 |
ConsoleBehaviourOs | ForceGraphics | 修复OC引导界面 |
ConsoleBehaviourUi | ForceText | 修复OC引导界面 |
HideSelf | NO | 在OpenCore的启动选择中隐藏自身EFI分区的启动项 |
Resolution | 1920x1080 | 屏幕的最大分辨率 |
ConsoleAttributes
ConsoleAttributes的颜色代码含义如下。
颜色代码 | 宏定义 | 指代颜色 |
---|---|---|
字体颜色 | ||
0x00 | EFI_BLACK | 黑 |
0x01 | EFI_BLUE | 蓝 |
0x02 | EFI_GREEN | 绿 |
0x03 | EFI_CYAN | 青 |
0x04 | EFI_RED | 红 |
0x05 | EFI_MAGENTA | 品红 |
0x06 | EFI_BROWN | 棕 |
0x07 | EFI_LIGHTGRAY | 浅灰 |
0x08 | EFI_DARKGRAY | 深灰 |
0x09 | EFI_LIGHTBLUE | 浅蓝 |
0x0A | EFI_LIGHTGREEN | 浅绿 |
0x0B | EFI_LIGHTCYAN | 浅青 |
0x0C | EFI_LIGHTRED | 浅红 |
0x0D | EFI_LIGHTMAGENTA | 浅品红 |
0x0E | EFI_YELLOW | 黄 |
0x0F | EFI_WHITE | 白 |
背景颜色 | ||
0x00 | EFI_BACKGROUND_BLACK | 黑 |
0x10 | EFI_BACKGROUND_BLUE | 蓝 |
0x20 | EFI_BACKGROUND_GREEN | 绿 |
0x30 | EFI_BACKGROUND_CYAN | 青 |
0x40 | EFI_BACKGROUND_RED | 红 |
0x50 | EFI_BACKGROUND_MAGENTA | 品红 |
0x60 | EFI_BACKGROUND_BROWN | 棕 |
0x70 | EFI_BACKGROUND_LIGHTGRAY | 浅灰 |
PickerAttributes
PickerAttributes可以用属性掩码来设置引导菜单的不同属性,其中掩码包含OpenCore 的预留值(BIT0-BIT15)和OEM特定值(BIT16-BIT31)。
预留值0x0001为OC_ATTR_USE_VOLUME_ICON,表示为启动项提供自定义图标。OpenCore会优先加载以下自定义图标,不存在时回退到默认图标。启用此功能后可能会难以区分外部可移除硬盘和内部不可移除硬盘的图标。
选项 | 自定义图标路径 |
---|---|
Tools | |
ResetNVRAM | Resources\Image\ResetNVRAM.icns |
其它工具 | Tools<TOOL_RELATIVE_PATH>.icns |
Entries | |
启动项 | |
其它 | |
APFS卷宗 | .VolumeIcon.icns(置于Preboot卷宗目录下-置于Preboot根目录下) |
其他文件系统 | .VolumeIcon.icns(置于其卷宗根目录下) |
预留值0x0002为OC_ATTR_USE_DISK_LABEL_FILE,表示为启动项的标题提供自定义渲染。预渲染标签可用disklabel实用工具或bless命令来生成。当预渲染标签被禁用或者缺失时,将以文本标签.contentDetails/.disk_label.contentDetails代为渲染。
预渲染标签 | 说明 |
---|---|
.disk_label(.disk_label_2x) | 与bootloader文件放在同一目录,适用于所有文件系统 |
与工具文件放在同一目录,适用于Tools |
预留值0x0004为OC_ATTR_USE_GENERIC_LABEL_IMAGE,表示为没有自定义条目的启动项提供预定义的标签图像。
预留值0x0008为OC_ATTR_HIDE_THEMED_ICONS,表示优先选择特定图标集的图标,以配合主题风格,比如可以强制显示特定图标集内置的Time Machine图标。需要同时启用OC_ATTR_USE_VOLUME_ICON。
预留值0x0010为OC_ATTR_USE_POINTER_CONTROL,表示在启动选择器中启用指针控制,如可利用鼠标或触摸板来控制UI元素。
PollAppleHotKeys
已知的Modifier Hotkey如下。
按键 | 说明 |
---|---|
CMD+C+MINUS | 禁用主板兼容性检查 |
CMD+K | 从RELEASE版本的内核启动,类似于kcsuffix=release参数 |
CMD+R | 从恢复分区启动 |
CMD+S | 启动至单用户模式 |
CMD+S+MINUS | 禁用KASLR slide,需要事先禁用SIP |
CMD+V | 启用-v |
X | 启动到第一个找到的Apple操作系统 |
Shift | 启用安全模式 |
Debug
一般无需修改。若需开启Debug功能,建议使用DEBUG或NOOPT版本。
选项 | 内容 | 说明 |
---|---|---|
AppleDebug | NO | 将boot.efi调试日志保存到OpenCore日志,适用于10.15.4及更高系统 |
ApplePanic | NO | 将Kernel Panic保存到OpenCore根分区 |
DisableWatchDog | NO | 某些固件启动操作系统的速度可能不够快(尤其是调试模式下),看门狗定时器会因此中止引导过程。此选项用来关闭看门狗定时器。若macOS在启动时卡在某些地方,可设置为YES以排除错误干扰 |
DisplayDelay | 0 | 屏幕上打印每行输出之间的延迟 |
DisplayLevel | 2147483714 | 与屏幕显示相关的EDK II调试级别的位掩码(总和),除非Target启用了控制台在屏幕上输出日志,否则屏幕上的调试输出将不可见。0为隐藏所有Debug信息,2147483714为在屏幕上显示所有Debug信息 |
SerialInit | NO | 执行串行端口初始化 |
SysReport | NO | 需要OpenCore DEBUG版,在EFI分区中保存系统报告(ACPI、SMBIOS和音频编解码器的调试信息,其中保存音频编解码器信息需要加载音频后端驱动) |
Target | 19 | 启用日志记录目标的位掩码(总和)。0为关闭日志记录,3为允许屏幕输出日志,19为允许屏幕输出UEFI变量日志,65为在ESP分区根目录生成日志文件但屏幕上不显示日志 |
DisplayLevel的内容含义如下。
内容 | 说明 |
---|---|
0x00000001 | DEBUG_INIT |
0x00000002 | DEBUG,NOOPT和RELEASE中的DEBUG_WARN |
0x00000004 | DEBUG_LOAD |
0x00000008 | DEBUG_FS |
0x00000010 | DEBUG_POOL |
0x00000020 | DEBUG_PAGE |
0x00000040 | DEBUG,NOOPT中的DEBUG_INFO |
0x00000080 | DEBUG_DISPATCH |
0x00000100 | DEBUG_VARIABLE |
0x00000400 | DEBUG_BM |
0x00001000 | DEBUG_BLKIO |
0x00004000 | DEBUG_NET |
0x00010000 | DEBUG_UNDI |
0x00020000 | DEBUG_LOADFILE |
0x00080000 | DEBUG_EVENT |
0x00100000 | DEBUG_GCD |
0x00200000 | DEBUG_CACHE |
0x00400000 | 在自定义版本中的DEBUG_VERBOSE |
0x80000000 | DEBUG,NOOPT和RELEASE中的DEBUG_ERROR |
一般开启0x00000002、0x00000040和0x80000000。0x00000002+0x00000040+0x80000000=0x80000042,转换为十进制为2147483714,填入此值即可。
Target的内容含义如下。
内容 | 说明 |
---|---|
0x01 | 启用日志记录 |
0x02 | 启用屏幕调试 |
0x04 | 启用日志记录到Data Hub |
0x08 | 启用串行端口日志记录 |
0x10 | 启用UEFI变量日志记录 |
0x20 | 启用非易失性UEFI变量日志记录 |
0x40 | 启用在ESP分区生成日志文件 |
一般开启0x01、0x02、0x10和0x40。0x01+0x02+0x10+0x40=0x53,转换为十进制为83,填入此值即可。
Entires
指定OpenCore无法自动找到的无规律引导路径。
选项 | 内容 | 说明 |
---|---|---|
Arguments | / | 对该引导条目使用的引导参数 |
Auxiliary | NO | 隐藏引导项 |
Name | CustomOS | OpenCore启动项中显示的名称 |
Comment | Not signed for security reasons | 注释(可不填) |
Enabled | YES | 启用/禁用 |
Path | PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x0)/NVMe(0x1,11-22-33-44-55-66-77-88)/HD(1,GPT,00000000-0000-0000-0000-000000000000,0x800,0x64000)/EFI/BOOT/BOOTX64.EFI | 引导磁盘的PCI路径,可以通过OpenCoreShell 的map命令或在Clover引导项找到。也可添加Tools,直接输入在OC/Tools目录的文件名即可,如OpenShell.efi |
RealPath | NO | 启动时将完整的路径传递给工具传递目录可能会使工具在没有检查文件完整性的情况下就意外地访问了文件,降低了安全性,因此通常应该禁用。需要启用该项的情况有:工具需要外部文件来正常工作;工具需要外部文件来更好地实现某些功能(如 memtest86 的记录和配置功能,Shell 自动执行脚本的功能)。此属性的开关仅对工具有效,对于引导项该属性始终为true) |
TextMode | NO | 以文本模式而非图形模式运行条目。某些需要文本输出的旧工具需要用到此项。默认情况下所有工具都以图形模式启动 |
Security
总述
选项 | 内容 | 说明 |
---|---|---|
AllowNvramReset | YES | 允许在引导选择界面和快捷键Cmd+Opt+P+R按下时重置NVRAM,重置NVRAM后未经过bless工具备份过的开机项(如Linux)会被全部删除,BootCamp Windows因为符合bless模型而不受影响。注意极少数笔记本(如Thinkpad X1 Extreme Gen2)重置NVRAM后可能会无法开机 |
AllowSetDefault | YES | 允许使用Ctrl+Enter和Ctrl+数字锁定默认启动项 |
ApECID | 0 | Apple Enclave标识符,设为非零值将允许使用个性化的Apple安全启动标识符,可取SystemUUID的前8个字节(该方法即为没有T2芯片的Mac的macOS 11的操作)。如果这个值设置妥当,并且SecureBootModel值有效且不是Disabled,那么就可以实现Apple安全启动的完整安全性 |
AuthRestart | NO | 启用与VirtualSMC兼容的authenticated restart,允许重启FileVault2分区时无需再次输密码(可在终端输入sudo fdesetup authrestart手动执行authenticated restart) |
BlacklistAppleUpdate | NO | 忽略某些用于更新Apple外设固件的启动项(如MultiUpdater.efi)以禁用固件更新 |
DmgLoading | Signed | 定义用于macOS Recovery的DMG加载策略(Disabled-除Recovery分区外,不允许加载存储在com.apple.recovery.boot目录中的DMG磁盘映像,Signed-仅加载Apple签名的DMG磁盘映像,Any-任何DMG磁盘映像都会作为普通文件系统挂载,当激活了Apple安全启动时会导致启动失败) |
EnablePassword | NO | 为敏感操作启用密码保护 |
ExposeSensitiveData | 3 | 用于向操作系统暴露敏感数据的位掩码(总和),用NVRAM.plist则必须填3来为boot-path变量提供OpenCore EFI分区的UUID(2-原生NVRAM,11-在3的基础上添加主板OEM信息,HWMonitorSMC2和NVMeFix需要主板OEM信息才能正常工作) |
HaltLevel | 2147483648 | EDK II调试级别的位掩码(总和),使CPU在获得HaltLevel消息后中止(停止执行)。可能的值与DisplayLevel值相匹配 |
PasswordHash | all zero | 密码使用的哈希值 |
PasswordSalt | empty | 密码使用的盐值(Salt) |
Vault | Optional | OpenCore自身的加密和安全保护(Optional-不强制要求vault.plist和 vault.sig文件存在,不设置Vault,不安全,Basic-强制要求vault.plist存在,提供了基本的文件系统完整性验证,Secure-强制要求vault.sig签名文件和vault.plist存在) |
ScanPolicy | 0 | 定义操作系统检测策略,0表示允许扫描所有可用的硬盘,983299表示显示当前系统分区 |
SecureBootModel | Default | Apple安全启动的机型 |
BootProtect | Bootstrap | 保证opencore.efi的永久性,以免遭到其他操作系统对开机顺位的破坏(需保证RequestBootVarRouting开启),可设置为Bootstrap(新主板)、BootstrapShort(Haswell及更早主板)、None。升级OpenCore前建议设为None,升级完成后再设置为Bootstrap。每次启动都会在BIOS出现新的OpenCore引导项时,可使用BootstrapShort |
RequireSignature | NO | 黑苹果的Vault加密方式 |
RequireVault | NO | 是否开启黑苹果加密 |
ExposeSensitiveData
位掩码如下。根据加载顺序,暴露的启动器路径指向OpenCore.efi或其引导器。
位掩码 | 含义 |
---|---|
0x01 | 将可打印的引导器路径作为UEFI变量暴露出来 |
0x02 | 将OpenCore版本作为UEFI变量暴露出来 |
0x04 | 将OpenCore版本暴露在启动选择菜单的标题位置 |
0x08 | 将OEM信息作为一组UEFI变量暴露出来 |
ScanPolicy
对于ScanPolicy值,设为0可允许所有存在的源都启动,但通过简单的计算,可得到更大范围的灵活性与安全性。
计算ScanPolicy值时只需将所有十六进制值相加即可,全部累加后需要将此十六进制值添加到ScanPolicy(首先需要将其转换为十进制值,粘贴时Xcode会自动将其转换)。
位置 | 宏定义 | 含义 |
---|---|---|
0x00000001 (bit 0) | OC_SCAN_FILE_SYSTEM_LOCK | 将扫描限制于仅扫描此策略定义的已知文件系统,已知文件系统的前缀为OC_SCAN_ALLOW_FS_ |
0x00000002 (bit 1) | OC_SCAN_DEVICE_LOCK | 将扫描限制于仅扫描此策略定义的已知设备类型,已知设备类型的前缀为OC_SCAN_ALLOW_DEVICE_ |
0x00000100 (bit 8) | OC_SCAN_ALLOW_FS_APFS | 允许扫描APFS文件系统 |
0x00000200 (bit 9) | OC_SCAN_ALLOW_FS_HFS | 允许扫描HFS文件系统 |
0x00000400 (bit 10) | OC_SCAN_ALLOW_FS_ESP | 允许扫描EFI系统分区文件系统 |
0x00000800 (bit 11) | OC_SCAN_ALLOW_FS_NTFS | 允许扫描NTFS文件系统 |
0x00001000 (bit 12) | OC_SCAN_ALLOW_FS_EXT | 允许扫描EXT文件系统 |
0x00010000 (bit 16) | OC_SCAN_ALLOW_DEVICE_SATA | 允许扫描SATA设备 |
0x00020000 (bit 17) | OC_SCAN_ALLOW_DEVICE_SASEX | 允许扫描SAS和Mac NVMe设备 |
0x00040000 (bit 18) | OC_SCAN_ALLOW_DEVICE_SCSI | 允许扫描SCSI设备 |
0x00080000 (bit 19) | OC_SCAN_ALLOW_DEVICE_NVME | 允许扫描NVMe设备 |
0x00100000 (bit 20) | OC_SCAN_ALLOW_DEVICE_ATAPI | 允许扫描CD/DVD和旧的SATA设备 |
0x00200000 (bit 21) | OC_SCAN_ALLOW_DEVICE_USB | 允许扫描USB设备 |
0x00400000 (bit 22) | OC_SCAN_ALLOW_DEVICE_FIREWIRE | 允许扫描FireWire设备 |
0x00800000 (bit 23) | OC_SCAN_ALLOW_DEVICE_SDCARD | 允许扫描读卡器设备 |
默认值为0xF0103,十进制为983299,是以下各项的组合。
1 | OC_SCAN_FILE_SYSTEM_LOCK |
建议添加OC_SCAN_ALLOW_DEVICE_USB,变为0x00200000,转换为十进制为3080451。
SecureBootModel
选项如下。PlatformInfo和SecureBootModel是相互独立的,因此可以在任何SMBIOS上启用Apple安全启动。将SecureBootModel设置为除Disabled以外的任意有效值,相当于实现了Apple安全启动的中等安全性。如要实现完整安全性,还需要指定ApECID值。不建议同时使用ApECID和Default值。
选项 | 含义 |
---|---|
Default | 最近的可用型号,目前设置为j137 |
Disabled | 无机型,禁用Apple安全启动 |
j137 | iMacPro1,1 (December 2017). Minimum macOS 10.13.2 (17C2111) |
j680 | MacBookPro15,1 (July 2018). Minimum macOS 10.13.6 (17G2112) |
j132 | MacBookPro15,2 (July 2018). Minimum macOS 10.13.6 (17G2112) |
j174 | Macmini8,1 (October 2018). Minimum macOS 10.14 (18A2063) |
j140k | MacBookAir8,1 (October 2018). Minimum macOS 10.14.1 (18B2084) |
j780 | MacBookPro15,3 (May 2019). Minimum macOS 10.14.5 (18F132) |
j213 | MacBookPro15,4 (July 2019). Minimum macOS 10.14.5 (18F2058) |
j140a | MacBookAir8,2 (July 2019). Minimum macOS 10.14.5 (18F2058) |
j152f | MacBookPro16,1 (November 2019). Minimum macOS 10.15.1 (19B2093) |
j160 | MacPro7,1 (December 2019). Minimum macOS 10.15.1 (19B88) |
j230k | MacBookAir9,1 (March 2020). Minimum macOS 10.15.3 (19D2064) |
j214k | MacBookPro16,2 (May 2020). Minimum macOS 10.15.4 (19E2269) |
j223 | MacBookPro16,3 (May 2020). Minimum macOS 10.15.4 (19E2265) |
j215 | MacBookPro16,4 (June 2020). Minimum macOS 10.15.5 (19F96) |
j185 | iMac20,1 (August 2020). Minimum macOS 10.15.6 (19G2005) |
j185f | iMac20,2 (August 2020). Minimum macOS 10.15.6 (19G2005) |
x86legacy | Macs and VMs without T2 chip. Minimum macOS 11.0.1 (20B29) |
Tools
用于运行OC调试工具,例如验证CFG锁(VerifyMsrE2.efi)。
选项 | 内容 | 说明 |
---|---|---|
Arguments | / | |
Name | VerifyMsrE2 | OpenCore启动项中显示的名称 |
Comment | Verify CFG Lock | 注释(可不填) |
Enabled | YES | 启用/禁用 |
Path | VerifyMsrE2.efi | Tools文件夹下的文件名 |
可在此处添加bootx64.efi以引导UEFI Shell(刷BIOS)、添加shellx64.efi以引导Grub Shell(改BIOS条目)等。
NVRAM
某些NVRAM变量可通过PlatformNVRAM或PlatformInfo节的Generic子节添加,注意不要与现有变量发生冲突。
Add
创建的变量会设置EFI_VARIABLE_BOOTSERVICE_ACCESS和EFI_VARIABLE_RUNTIME_ACCESS的属性。变量只有在不存在且未被屏蔽的情况下才会被设置,也就是说,如果想要覆盖一个现有的变量值,请将该变量的名称添加到Delete部分,这种方法能够提供一个默认的值,直到操作系统接手为止。
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14
表示Booter Path。
选项 | 内容 | 说明 |
---|---|---|
UIScale | 01 | OpenCore UI和引导第一阶段缩放(01为正常大小,等效于Clover中BooterConfig的0x28,02为HIDPI,等效于Clover中BooterConfig的0x2A) |
DefaultBackgroundColor | 00000000 | 控制第一阶段苹果标志后面的背景颜色,格式为16进制颜色RGBA(黑色为00000000,灰色为BFBFBF00) |
EFILoginHiDPI | / | |
flagstate | / | |
UIScale | / |
7C436110-AB2A-4BBB-A880-FE41995C9F82
表示SIP。
选项 | 内容 | 说明 |
---|---|---|
boot-args | -v debug=0x100 nv_disable=1 slide=1 vsmcgen=1 | 引导参数(vsmcgen=1为MacOS 11专用,用于暴露SMC部件) |
bootercfg | log=0 | Booter参数,类似于boot-args,但用于boot.efi。在不同阶段,boot.efi会请求不同的调试(日志)模式(例如,在ExitBootServices之后它只会打印到串行调试接口)。有些Booter参数会控制这些请求是否成功,如log=这一参数接受一组十六进制的64位值,带或不带0x |
nvda_drv | 删除 | 设为31时启用NVIDIA WebDrivers(仅限10.13.6以下系统),无N卡应删除此项 |
prev-lang:kbd | 7A682D48616E733A323532 | 将默认语言设置为简体中文(留空为英文)。也可为lang-COUNTRY:keyboard的格式,如ru-RU:252代表俄语和ABC键盘。也接受简短形式,如ru:252或ru:0(美国键盘,兼容10.9)。在10.14上使用非拉丁语键盘将无法启用ABC键盘,因此使用10.14版本则不建议使用这一变量 |
SystemAudioVolume | 0x46 | 0x80为静音 |
bootercfg的log参数列表如下。
参数 | 含义 | 说明 |
---|---|---|
0x00 | INIT | |
0x01 | VERBOSE | 强制控制台记录日志,AppleLoggingConOutOrErrSet/AppleLoggingConOutOrErrPrint (classical ConOut/StdErr) |
0x02 | EXIT | AppleLoggingStdErrSet/AppleLoggingStdErrPrint (StdErr or serial?) |
0x03 | RESET:OK | |
0x04 | RESET:FAIL | 如未知的board-id/休眠错配/Panic循环等,AppleLoggingFileSet/AppleLoggingFilePrint (BOOTER.LOG/BOOTER.OLD file on EFI partition) |
0x05 | RESET:RECOVERY | |
0x06 | RECOVERY | |
0x07 | REAN:START | |
0x08 | REAN:END | |
0x09 | DT | 不再将日志记录到设备树 |
0x0A | EXITBS:START | 仅强制的串行调试接口 |
0x0B | EXITBS:END | 仅强制的串行调试接口 |
0x0C | UNKNOWN |
bootercfg的其它参数列表如下。可能不适用于10.15.4之前的版本。
参数 | 取值 | 取值说明 | 参数含义 |
---|---|---|---|
boot-save-log=VALUE | 正常启动时的调试日志保存模式 | ||
0 | |||
1 | |||
2 | 默认 | ||
3 | |||
4 | 保存到文件 | ||
wake-save-log=VALUE | 休眠唤醒时的调试日志保存模式 | ||
0 | 禁用 | ||
1 | |||
2 | 默认 | ||
3 | 不可用 | ||
4 | 保存到文件,不可用 | ||
breakpoint=VALUE | 错误时的调试中断 | ||
0 | 禁用(默认) | ||
1 | 启用 | ||
console=VALUE | 控制台日志记录 | ||
0 | 禁用 | ||
1 | 当缺少调试协议时启用(默认) | ||
2 | 无条件启用(不可用) | ||
embed-log-dt=VALUE | 设备树日志记录 | ||
0 | 禁用 | ||
1 | 启用 | ||
kc-read-size=VALUE | 网络或磁盘缓冲I/O的数据块大小,用于预链接内核读取和相关用途 | ||
0x100000 | 1MB(默认) | ||
log-level=VALUE | 日志等级位掩码 | ||
0x01 | 启用跟踪记录(默认) | ||
serial=VALUE | 串行控制台日志记录 | ||
0 | 禁用(默认) | ||
1 | 从EXITBS:END开始启用 | ||
2 | 从EXITBS:START开始启用 | ||
3 | 当缺少调试协议时启用 | ||
4 | 无条件启用 | ||
timestamps=VALUE | 时间戳日志记录 | ||
0 | 禁用 | ||
1 | 启用(默认) | ||
debug=VALUE | 10.15开始弃用 | ||
1 | 启用输出到BOOTER.LOG,如果出现了被精简过的代码,则可能发生过崩溃 | ||
2 | 启用性能日志(Perf Log),记录到 /efi/debug-log | ||
4 | 为调用printf启用时间戳输出 | ||
level=VALUE | 10.15开始弃用。DEBUG输出的详细程度,默认除0x80000000以外,其他内容都会被精简掉 |
prev-lang:kbd中的键盘布局数字代码如下。
数字 | 键盘布局 |
---|---|
30778 | cs - Czech-QWERTY |
30776 | cs - Czech |
30764 | et - Estonian |
30767 | hu - Hungarian-QWERTY |
30763 | hu - Hungarian |
30765 | lv - Latvian |
30761 | lt - Lithuanian |
30788 | pl - Polish Pro |
30762 | pl - Polish |
30777 | sk - Slovak |
30779 | sk - Slovak-QWERTY |
19529 | bg - Bulgarian - Phonetic |
19528 | bg - Bulgarian |
19517 | be - Byelorussian |
19523 | mk - Macedonian |
19457 | ru - Russian - Phonetic |
19456 | ru - Russian |
19458 | ru - RussianWin |
19521 | sr-Cyrl - Serbian |
195138 | uk - Ukrainian-PC |
19518 | uk - Ukrainian |
12825 | en - Colemak |
16302 | en - Dvorak - Left |
16303 | en - Dvorak - Right |
16300 | en - Dvorak |
16301 | en - DVORAK - QWERTY CMD |
16384 | ja - KANA |
251 | fr - ABC-AZERTY |
253 | de - ABC-QWERTZ |
252 | en - ABC |
15 | en_AU - Australian |
92 | de_AT - Austrian |
6 | nl_BE - Belgian |
128 | pt_BR - Brazilian-ABNT2 |
72 | pt_BR - Brazilian - Pro |
71 | pt_BR - Brazilian |
250 | en_GB - British-PC |
2 | en_GB - British |
80 | fr_CA - Canadian - CSA |
29 | en_CA - Canadian |
9 | da - Danish |
26 | nl - Dutch |
17 | fi - Finnish |
60 | fr - French-PC |
1111 | fr - French - numerical |
1 | fr - French |
3 | de - German |
50 | en - Irish |
223 | it - Italian - Pro |
4 | it - Italian |
12 | nb - Norwegian |
10 | pt_PT - Portuguese |
87 | es - Spanish - ISO |
8 | es - Spanish |
7 | sv - Swedish - Pro |
224 | sv - Swedish |
18 | fr_CH - Swiss French |
19 | de_CH - Swiss German |
88 | to - Tongan |
0 | en_US - U.S |
15000 | en_US - USInternational-PC |
-17409 | ko - 2SetHangul |
-2902 | fa - Afghan Dari |
-2904 | ps - Afghan Pashto |
-2903 | uz-Arab - Afghan Uzbek |
-20000 | ta - Anjal |
-17940 | ar - Arabic-AZERTY |
-17923 | ar - Arabic-North_Africa |
-18000 | ar - Arabic-QWERTY |
-17920 | ar - Arabic |
-17921 | ar - Arabic PC |
-28161 | hy - Armenian-HM QWERTY |
-28164 | hy - Armenian-Western QWERTY |
-49 | az-Latn - Azeri |
-22529 | bn - Bangla-QWERTY |
-22528 | bn - Bangla |
-16899 | zh-Hant - CangjieKeyboard |
-26112 | chr - Cherokee-Nation |
-26113 | chr - Cherokee-QWERTY |
-68 | hr - Croatian |
-69 | hr - Croatian-PC |
-20481 | hi - Devanagari-QWERTY |
-20480 | hi - Devanagari |
-47 | fo - Faroese |
-17 | fi - Finnish Extended |
-18 | fi - FinnishSami-PC |
-27650 | ka - Georgian-QWERTY |
-18944 | el - Greek |
-18945 | el - Greek Polytonic |
-21505 | gu - Gujarati-QWERTY |
-21504 | gu - Gujarati |
-20993 | pa - Gurmukhi-QWERTY |
-20992 | pa - Gurmukhi |
-50 | haw - Hawaiian |
-18500 | he - Hebrew-QWERTY |
-18432 | he - Hebrew |
-18433 | he - Hebrew-PC |
-21 | is - Icelandic |
-30604 | iu - Inuktitut-Nunavut |
-30602 | iu - Inuktitut-Nutaaq |
-30600 | iu - Inuktitut-QWERTY |
-30603 | iu - Inuttitut Nunavik |
-500 | ga - Irish Extended |
-19000 | ms-Arab - Jawi-QWERTY |
-24065 | kn - Kannada-QWERTY |
-24064 | kn - Kannada |
-19501 | kk - Kazakh |
-26114 | km - Khmer |
-17926 | ckb - Kurdish-Sorani |
-24577 | ml - Malayalam-QWERTY |
-24576 | ml - Malayalam |
-501 | mt - Maltese |
-51 | mi - Maori |
-25601 | my - Myanmar-QWERTY |
-20484 | ne - Nepali |
-1200 | se - Northern Sami |
-12 | nb - Norwegian Extended |
-13 | nb - NorwegianSami-PC |
-22017 | or - Oriya-QWERTY |
-22016 | or - Oriya |
-1959 | fa - Persian-QWERTY |
-17960 | fa - Persian |
-2901 | fa - Persian-ISIRI 2901 |
-38 | ro - Romanian-Standard |
-39 | ro - Romanian |
-1201 | se - Sami-PC |
-19521 | sr-Latn - Serbian-Latin |
-25089 | si - Sinhala-QWERTY |
-25088 | si - Sinhala |
-66 | sl - Slovenian |
-15 | sv - SwedishSami-PC |
-20001 | ta - Tamil99 |
-23553 | te - Telugu-QWERTY |
-23552 | te - Telugu |
-26626 | th - Thai-PattaChote |
-26624 | th - Thai |
-26628 | bo - TibetanOtaniUS |
-26625 | bo - Tibetan-QWERTY |
-2398 | bo - Tibetan-Wylie |
-36 | tr - Turkish-QWERTY-PC |
-35 | tr - Turkish-QWERTY |
-23 | tr - Turkish-Standard |
-24 | tr - Turkish |
-2 | en - US Extended |
-1 | |
-17925 | ur - Urdu |
-27000 | ug - Uyghur |
-31232 | vi - Vietnamese |
-790 | cy - Welsh |
-16900 | zh-Hant - Zhuyin Bopomofo |
Delete
强制重写NVRAM变量,由于Add不会覆盖NVRAM中已经存在的值,boot-args需要利用此项来刷新。
LegacyEnable
允许从ESP分区的根目录中的NVRAM.plist中读取NVRAM变量。没有原生NVRAM的设备或macOS下硬件NVRAM工作不正常的设备设置为YES,工作正常的设备设置为NO。
NVRAM.plist应包含以下字段。
字段 | 类型 | 说明 |
---|---|---|
Version | plist integer | 文件版本,必须设定为1 |
Add | plist dictionary | 等同于config.plist中的Add |
LegecyOverwrite
允许nvram.plist中的变量覆盖现有NVRAM的变量,只有操作系统访问的到的变量会被覆盖。一般选择NO。
LegacySchema
用于分配NVRAM变量,与LegacyEnable配合使用。允许设置的变量必须指定于LegacySchema中。可用*
值来接受所有用来选择GUID的变量。
打开7C436110-AB2A-4BBB-A880-FE41995C9F82这一栏,添加以下两个item。
名称 | 类型 | 内容 |
---|---|---|
item 11 | String | efi-boot-device |
item 12 | String | efi-boot-device-data |
WriteFlash
允许将所有添加的变量写入闪存,在某些系统运行时不能将易失性变量转换为非易失性变量的UEFI固件上可开启此项。一般选择NO。
PlatformInfo
总述
选项 | 内容 | 说明 |
---|---|---|
Auto | YES | 自动注入机型信息(基于Generic属性而非DataHub/NVRAM/SMBIOS) |
CustomMemory | 使用在Memory部分所填写的自定义内存配置。该选项将完全取代SMBIOS中任何现有的内存配置,只有当UpdateSMBIOS设置为true时才生效 | |
Generic | 在Automatic模式下更新所有字段。当Automatic为false时将自动忽略此部分,但不可将此部分整段删除 | |
DataHub | 在非Automatic模式下更新Data Hub字段。当Automatic为true时将自动忽略此部分,但不可将此部分整段删除 | |
Memory | 设置自定义的内存配置。当CustomMemory为false时将自动忽略此部分,但不可将此部分整段删除 | |
PlatformNVRAM | 在非Automatic模式下更新platform NVRAM字段。当Automatic为true时将自动忽略此部分,但不可将此部分整段删除 | |
SMBIOS | 在非Automatic模式下更新SMBIOS字段。当Automatic为true时将自动忽略此部分,但不可将此部分整段删除 | |
UpdateDataHub | YES | 更新DataHub(根据Automatic的值,这些字段会从Generic或DataHub中读取) |
UpdateNVRAM | YES | 更新NVRAM中关于机型信息的相关字段(根据Automatic的值,这些字段会从Generic或PlatformNVRAM中读取,所有其他字段都将在NVRAM部分中指定。设置为false则可以使用nvram部分更新上述变量,设置为true而同时nvram部分存在任何字段则会产生未定义行为) |
UpdateSMBIOS | YES | 更新SMBIOS(根据Automatic的值,这些字段会从Generic或SMBIOS中读取。Dell笔记本可能需要改为Custom,相当于Clover的DellSMBIOSPatch的一部分) |
UpdateSMBIOSMode | Create | 用新分配的EfiReservedMemoryType替换原有的表,戴尔笔记本需要使用Custom并开启CustomSMBIOSGuid |
UseRawUuidEncoding | 对SMBIOS的UUID使用Apple原始编码(Big Endian),关闭时使用Little Endian |
UpdateSMBIOSMode选项含义如下。注意,使用Custom时SMBIOS设置只对macOS生效。
选项 | 说明 |
---|---|
TryOverwrite | 如果新的数据大小小于等于按页对齐的原始数据,且对解锁legacy region没有影响,则选择Overwrite方式,否则选择Create方式 |
Create | 在AllocateMaxAddress将表替换为新分配的EfiReservedMemoryType,没有回退机制 |
Overwrite | 如果数据大小合适则覆盖现有的gEfiSmbiosTableGuid和gEfiSmbiosTable3Guid,否则将以不明状态中止 |
Custom | 把第一个SMBIOS表即gEfiSmbios(3)TableGuid写入gOcCustomSmbios(3)TableGuid,以此来解决固件在ExitBootServices覆盖SMBIOS内容的问题,否则等同于Create。需要AppleSmbios.kext和AppleACPIPlatform.kext打补丁来读取另一个GUID”EB9D2D31”-“EB9D2D35”in ASCII,这一步由CustomSMBIOSGuid这一Quirk自动完成。设置为Custom可避免OEM激活失效 |
Generic
选项 | 内容 | 说明 |
---|---|---|
SpoofVendor | YES | 仿冒制造商为Acidanthera以避免冲突(在SMBIOS的Vendor字段中使用Apple是危险的) |
AdviseWindows | 在FirmwareFeatures中强制提供Windows支持,允许重启到ESP分区不是磁盘中第一个分区的磁盘中的Windows | |
MaxBIOSVersion | 将BIOSVersion设置为9999.999.999.999.999,建议使用Automatic选项的旧款Mac设置,在运行非官方支持的macOS版本时可避免BIOS升级 | |
SystemMemoryStatus | 用来表示内存是否可以更换和升级,控制关于本机-内存 选项卡的可见性 |
|
ProcessorType | ||
SystemProductName | MacBookPro15,3 | 系统型号(从Clover复制) |
SystemSerialNumber | C02Z5TZ6LVCG | 系统序列号(从Clover复制) |
SystemUUID | 0CC4E03F-2998-4685-A433-B5ACAB56E9C3 | 硬件UUID(从Clover复制) |
MLB | C029314044N0000CB | MLB(从Clover复制) |
ROM | 3631A456E9C3 | ROM(从Clover复制) |
AdviseWindows向FirmwareFeatures中添加两个bit,FW_FEATURE_SUPPORTS_CSM_LEGACY_MODE (0x1)和FW_FEATURE_SUPPORTS_UEFI_WINDOWS_BOOT (0x20000000)。
如果没有FW_FEATURE_SUPPORTS_CSM_LEGACY_MODE,且EFI分区不是硬盘中的第一个分区,或如果没有FW_FEATURE_SUPPORTS_UEFI_WINDOWS_BOOT,且EFI分区是硬盘中的第一个分区,则无法重新启动到硬盘里的Windows系统。
SystemMemoryStatus选项含义如下。注意在某些型号的Mac上,SPMemoryReporter.spreporter会自动忽略PT_FEATURE_HAS_SOLDERED_SYSTEM_MEMORY,并认为其内存是不可升级的,如MacBookPro10,x和所有的MacBookAir
选项 | 说明 |
---|---|
Auto | 使用原始的PlatformFeature值 |
Upgradable | 显式取消设置PlatformFeature中PT_FEATURE_HAS_SOLDERED_SYSTEM_MEMORY (0x2) |
Soldered | 显式设置PlatformFeature中PT_FEATURE_HAS_SOLDERED_SYSTEM_MEMORY (0x2) |
对于SystemUUID,一般应使用主板UUID,以免破坏Windows的激活环境。
主板的UUID可以在BIOS中查看,如果BIOS中看不到,可以通过传统方式启动Windows(不能是OC引导),在命令行中查看。打开cmd,输入以下命令即可。
1 | wmic |
DataHub
选项 | 内容 | 说明 |
---|---|---|
PlatformName | 在gEfiMiscSubClassGuid中设置name。在Mac上找到的值为ASCII码形式的platform | |
SystemProductName | 在gEfiMiscSubClassGuid中设置Model。在Mac上找到的值等于Unicode形式的SMBIOS SystemProductName | |
SystemSerialNumber | 在gEfiMiscSubClassGuid中设置SystemSerialNumber。在Mac上找到的值等于Unicode形式的SMBIOS SystemSerialNumber | |
SystemUUID | 在gEfiMiscSubClassGuid中设置system-id。在Mac上找到的值等于SMBIOS SystemUUID(字节顺序调换) | |
BoardProduct | 在gEfiMiscSubClassGuid中设置board-id。在Mac上找到的值等于ASCII码形式的SMBIOS BoardProduct | |
BoardRevision | 在gEfiMiscSubClassGuid中设置board-rev。在Mac上找到的值似乎与Internal Board Revision相对应(如01) | |
StartupPowerEvents | 在gEfiMiscSubClassGuid Sets中设置StartupPowerEvents。在Mac上找到的值是Power Management State位掩码,通常为0 | |
InitialTSC | 在gEfiProcessorSubClassGuid中设置InitialTSC。设置初始TSC值,通常为0 | |
FSBFrequency | 在gEfiProcessorSubClassGuid中设置FSBFrequency。此值等于CPU主频除以最高总线比率,以Hz为单位(不用于Skylake或更新平台) | |
ARTFrequency | 在gEfiProcessorSubClassGuid中设置ARTFrequency。晶体时钟频率,为Skylake或更新的平台独有,以Hz为单位,Client Intel segment通常为24MHz,Server Intel segment通常为25MHz,Intel Atom CPUs通常为19.2MHz。10.15及以下均默认为24MHz | |
DevicePathsSupported | 在gEfiMiscSubClassGuid中设置DevicePathsSupported。必须设置为1才能确保 AppleACPIPlatform.kext将SATA设备路径添加到Boot####和efi-boot-device-data变量。所有新款Mac都设置为1 | |
SmcRevision | 在gEfiMiscSubClassGuid中设置REV。自定义属性由VirtualSMC/FakeSMC读取,用于生成SMC REV key | |
SmcBranch | 在 gEfiMiscSubClassGuid中设置RBr。自定义属性由VirtualSMC/FakeSMC读取,用于生成SMC RBr key | |
SmcPlatform | 在gEfiMiscSubClassGuid中设置RPlt。自定义属性由VirtualSMC/FakeSMC读取,用于生成SMC RPlt key |
Memory
选项 | 内容 | 说明 |
---|---|---|
DataWidth | 指定内存的数据宽度,以位为单位。DataWidth为0且TotalWidth为8时,表示改设备仅用于提供8个纠错位 | |
Devices | 指定要添加的自定义内存设备,用plist dictionary来描述每个内存设备。应该填写所有的内存插槽,包括没有插内存的插槽 | |
ErrorCorrection | 指定内存支持的主要硬件纠错或检测方法 | |
FormFactor | 指定内存的规格。在Mac上通常是DIMM或SODIMM。当CustomMemory设置为 false 时,该值会根据所设置的 Mac 机型自动设置 | |
MaxCapacity | 指定系统支持的最大内存量,以字节为单位 | |
TotalWidth | 指定内存的总宽度,以位为单位,包括任何检查或纠错位。如果没有纠错位,则这个值应该等于DataWidth | |
Type | 指定内存类型 | |
TypeDetail | 指定附加的内存类型信息 |
ErrorCorrection的选项如下。
选项 | 说明 |
---|---|
0x01 | Other |
0x02 | Unknown |
0x03 | None |
0x04 | Parity |
0x05 | Single-bit ECC |
0x06 | Multi-bit ECC |
0x07 | CRC |
FormFactor的选项如下。
选项 | 说明 |
---|---|
0x01 | Other |
0x02 | Unknown |
0x09 | DIMM |
0x0D | SODIMM |
0x0F | FB-DIMM |
Type的选项如下。
选项 | 说明 |
---|---|
0x01 | Other |
0x02 | Unknown |
0x0F | SDRAM |
0x12 | DDR |
0x13 | DDR2 |
0x14 | DDR2 FB-DIMM |
0x18 | DDR3 |
0x1A | DDR4 |
0x1B | LPDDR |
0x1C | LPDDR2 |
0x1D | LPDDR3 |
0x1E | LPDDR4 |
TypeDetail的选项如下。
选项 | 说明 |
---|---|
Bit 0 | Reserved, set to 0 |
Bit 1 | Other |
Bit 2 | Unknown |
Bit 7 | Synchronous |
Bit 13 | Registered (buffered) |
Bit 14 | Unbuffered (unregistered) |
Memory Device
选项 | 内容 | 说明 |
---|---|---|
AssetTag | 指定该内存的资产标签 | |
BankLocator | 指定内存设备所在的物理标签库 | |
DeviceLocator | 指定内存设备所在的物理标签插槽或主板上的位置 | |
Manufacturer | 指定该内存设备的制造商 | |
PartNumber | 指定该内存设备的部件号 | |
SerialNumber | 指定该内存设备的序列号 | |
Size | 指定内存设备的大小,以兆字节为单位。0表示该插槽未插入内存 | |
Speed | 指定设备的最大速度,单位为每秒百万传输量(MT/s)。0表示未知速度 |
PlatformNVRAM
选项 | 内容 | 说明 |
---|---|---|
BID | 指定NVRAM变量4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_BID | |
ROM | 指定NVRAM变量4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_ROM和4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ROM | |
MLB | 指定NVRAM变量4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_MLB和4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:MLB | |
FirmwareFeatures | 与FirmwareFeaturesMask配对使用,指定NVRAM变量4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:FirmwareFeatures、4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ExtendedFirmwareFeatures | |
FirmwareFeaturesMask | 与FirmwareFeatures配对使用,指定NVRAM变量4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:FirmwareFeaturesMask、4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ExtendedFirmwareFeaturesMask | |
SystemUUID | 指定NVRAM变量4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:system-id的值,仅用于启动服务。在Mac上找到的值等于SMBIOS SystemUUID |
SMBIOS
选项 | 内容 | 说明 |
---|---|---|
BIOSVendor | BIOS供应商。SystemManufacturer的所有规则都适用 | |
BIOSVersion | 固件版本。在较旧的固件中看起来类似于 MM71.88Z.0234.B00.1809171422,在较新的固件中看起来类似于 236.0.0.0.0 或 220.230.16.0.0 (iBridge: 16.16.2542.0.0,0)。iBridge版本从BridgeOSVersion变量读取,并且只在具有T2芯片的Mac上显示 | |
BIOSReleaseDate | 固件发布日期。格式类似12/08/2017 | |
SystemManufacturer | 特定主板的OEM制造商。非必要不设定,不要包含Apple Inc.字样,否则会混淆操作系统中的大量服务(固件更新、eficheck、Lilu及其插件),还可能导致某些操作系统(如Linux)无法引导 | |
SystemProductName | 选择偏好的Mac机型来把设备标记为系统支持的机型。如果SystemProductName与目标操作系统不兼容,可用引导参数-no_compat_check来覆盖。若未指定,则默认值会被设定为MacPro6,1 | |
SystemVersion | 产品迭代版本号。类似于1.1 | |
SystemSerialNumber | 按照格式定义的产品序列号 | |
SystemUUID | 唯一标识符 | |
SystemSKUNumber | Mac主板ID,在旧型号的机器类似于Mac-7BA5B2D9E42DDD94或Mac-F221BEC8。有时可以直接留空 | |
SystemFamily | 机型名称。类似于iMac Pro | |
BoardManufacturer | 主板制造商。SystemManufacturer的所有规则都适用 | |
BoardProduct | Mac主板ID,在旧型号的机器类似于Mac-7BA5B2D9E42DDD94或Mac-F221BEC8 | |
BoardVersion | 主板版本号 | |
BoardSerialNumber | 主板序列号 | |
BoardAssetTag | 资产标签号。可留空或填Type2 - Board Asset Tag | |
BoardType | 板类型。0xA表示主板(包括处理器/内存/IO等),0xB表示处理器/内存模块 | |
BoardLocationInChassis | 可留空或填Part Component | |
ChassisManufacturer | 主板制造商。SystemManufacturer的所有规则都适用 | |
ChassisType | 机箱类型 | |
ChassisVersion | 和BoardProduct符合 | |
ChassisSerialNumber | 和SystemSerialNumber符合 | |
ChassisAssetTag | 机箱类型名称。可留空或填MacBook-Aluminum | |
PlatformFeature | 平台功能位掩码。填写0xFFFFFFFF值时不提供此表 | |
SmcVersion | ASCII字符串,包含SMC版本号(大写)。配备Apple T2安全芯片的Mac没有这一字段。当此值设置为零时,这一选项会被忽略 | |
FirmwareFeatures | 64位固件功能位掩码。低32位与FirmwareFeatures匹配,高64位与ExtendedFirmwareFeatures匹配 | |
FirmwareFeaturesMask | 扩展固件功能位掩码。低32位与FirmwareFeatures匹配,高64位与ExtendedFirmwareFeatures匹配 | |
ProcessorType | Automatic | 自动生成的值(Automatic)是根据当前的CPU规格提供的最准确的值 |
UEFI
ConnectDrivers
强制加载.efi驱动程序,更改为NO将自动连接UEFI驱动程序以获得更快的启动速度。但并非所有驱动程序都可以自行连接,某些文件系统驱动程序可能无法加载,因此此处填YES。
Drivers
添加efi驱动的名称。
Audio
这里的声卡设置只与UEFI环境相关,不影响系统内音频。如果要让Duang和VoiceOver等其它音频功能工作,需要将OCBinaryData中的语音资源包放置于EFI分区的EFI/OC/Resources/Audio下,同时AudioDxe需要安装在Driver文件夹中。
选项 | 内容 | 说明 |
---|---|---|
AudioSupport | YES | 启用音频支持(不支持DP类的数字音频) |
AudioDevice | PciRoot(0x0)/Pci… | 声卡设备的PCI地址 |
AudioCodec | 0 | 声卡的Codec地址,可以在IORegistryExplorer的HDEF-IOHDACodecDevice-IOHDACodecAddress中获得(一般是0x0) |
AudioOut | 指定的输出设备,从0到声卡总输出数每个都试一遍,声卡的总输出数可以在Debug 版本的OpenCore日志中获得(n Outputs) | |
MinimumVolume | 输出最小音量,有效值为0-100(如果VolumeAmplifier公式计算出的最小音量小于这里给出的值,Duang就不会被播放) | |
PlayChime | YES | 播放Duang(Auto表示当StartupMute NVRAM变量不存在或设置为00时启用开机声音,Enabled为无条件启用,Disabled为无条件禁用) |
SetupDelay | 音频编解码器重新配置的延迟,单位为微秒。必要的延迟时间可能长达0.5秒 | |
VolumeAmplifier | 1000 | 音量在原有基础上放的百分比,有效范围0-1000 |
Input
为输入(键盘和鼠标)而设计的个性化设置。
选项 | 内容 | 说明 |
---|---|---|
KeyFiltering | 启用键盘输入的合理性检查。这个选项会舍弃那些既不是ASCII码,也不是UEFI规范中定义的键 | |
KeyForgetThreshold | 5 | 按住按键后每个键之间的时间间隔(单位毫秒)。在大多数平台上有效的推荐值为5毫秒,当OpenCanopy检测到按键丢失时尝试稍高的值,当检测到按键停滞时尝试稍低的值 |
KeyMergeTheshold | 2 | 按住按键被重置的时间间隔(单位毫秒)。此选项的建议值为2毫秒,对于较快的平台可以选取较小的值 |
KeySupport | YES | 开启OC的内置键盘支持(若引导界面无法选择分区,或使用了单独的驱动程序,则禁用) |
KeySupportMode | Auto | 键值转换协议模式(Auto-自动,V1-UEFI旧版输入协议EFI_SIMPLE_TEXT_INPUT_PROTOCOL,V2-UEFI新输入协议EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL,AMI-APTIO输入协议AMI_EFIKEYCODE_PROTOCOL) |
KeySwap | NO | 交换Command和Option键 |
PointerSupport | NO | 修复UEFI选择器协议,实现标准UEFI指针协议EFI_SIMPLE_POINTER_PROTOCOL(华硕z87/z97需要开启) |
PointerSupportMode | / | 指定OEM协议,当前仅支持Z87和Z97 ASUS板(如果启用了PointerSupport,此处值不能为空) |
TimerResolution | 60000 | 固件时钟刷新的频率(单位100纳秒),普通电脑填50000,华硕主板填60000,苹果主板填100000,0表示自动计算 |
Output
为输出(文本和图形)而设计的个性化设置。
选项 | 内容 | 说明 |
---|---|---|
TextRenderer | BuiltinGraphics | 文字渲染模式(BuiltinGraphics-使用OpenCore内置文字渲染的图形模式,并同时启用OpenCore自带的控制台管理,支持HIDPI和全屏范围显示,SystemGraphics-使用主板固件自带文字渲染的图形模式,并同时启用OpenCore自带的控制台管理,SystemText-使用主板固件自带文字渲染的文字模式,并同时启用OpenCore自带的控制台管理,SystemGeneric-使用主板固件自带文字渲染的文字模式和自带的控制台管理) |
ConsoleMode | / | TextRenderer使用Builtin时此项设置不生效。设置为空字符串则不会改变控制台模式,设置为Max则会尝试最大的可用控制台模式。在大多数固件上,这个字段最好留空 |
Resolution | Max | Max将会尝试开启最大分辨率,也可填写宽x高@Bpp (如3840x2160@32),其中Bpp为显示位深,留空将不会改变UEFIe的默认分辨率(在固件没有GOP时该选项失效,当固件不再提供时可以将ProvideConsoleGop设置为true并添加) |
ForceResolution | 当默认情况下无法获得所需分辨率时,强制设置Resolution中所填写的分辨率,多用于老的Intel GMA和第一代Intel HD Graphics(Ironlake/Arrandale)。将Resolution设置为Max时,将尝试从所连接的显示器的EDID中提取最大的可用分辨率。该选项依赖OC_FORCE_RESOLUTION_PROTOCOL协议,目前只有 OpenDuetPkg支持该协议,而OpenDuetPkg的实现目前仅支持Intel iGPU | |
ClearScreenOnModeSwitch | NO | 切换到文本模式之前用黑色填充整个屏幕,只在System渲染器上生效(从图形模式切换到文本模式时,某些固件仅清除屏幕的一部分,导致屏幕上残留之前绘制的图片,此情况可打开该选项) |
DirectGopRendering | NO | 直接使用OpenCore内置的GOP渲染控制台,主要用于提升或修复MacPro5,1的渲染问题(除非开启后能明显感觉到有改进,否则不要开启,开启可能会导致滚动速度变慢) |
IgnoreTextInGraphics | NO | 在控制台处于与Text不同的模式时舍弃所有文本输出,只在System渲染器上生效。修复不用-v开机时日志覆盖苹果标志输出的问题 |
ReplaceTabWithSpace | NO | 使控制台输出空格来替代tab,在某些设备在UEFIShell中编辑文件使用Tab键出问题时启用(只在System渲染器上生效) |
ProvideConsoleGop | YES | 选择启动项之后不出现啰嗦模式跑码时启用,开启此选项能确保GOP和UGA(如果存在)在控制台句柄上可用,最大可能保证OpenCore UI和苹果标志以正确分辨率显示(macOS引导加载程序需要GOP,即图形输出协议,存在于控制台句柄上,大部分的笔记本都不提供GOP,台式机的独立显卡可以单独刷入GOP) |
ReconnectOnResChange | NO | 改变屏幕分辨率后重新连接控制台控制器。有些固件在GOP分辨率改变后要求重新连接控制器才能输出文本,开启这个选项会导致UEFI Shell中启动OpenCore时直接黑屏,尽量避免开启 |
SanitiseClearScreen | YES | 修复OpenCore在高分屏中以1024x768显示的问题,可能会有反效果,只在System渲染器上生效(要将ConsoleMode的内容留空) |
DirectGopRendering | NO | 使用内置显卡直接渲染开机画面 |
UgaPassThrough | NO | 通过UGA代替无法使用GOP的主板,一般带UEFI的主板以及显卡请选择NO。有些固件不会去实现老旧的UGA协议,但是有些更老的EFI应用程序(如10.4的EfiBoot)可能需要用它来进行屏幕输出 |
对于控制台输出,可选择Builtin或System渲染器。System渲染器使用固件服务进行文本渲染,Builtin渲染器则绕过固件服务,自行渲染文本。建议使用Builtin渲染器,因为它支持HiDPI模式,并能够使用全屏分辨率。
对于UEFI固件,用于支持ConsoleControl的渲染模式有Graphics和Text。OpenCore和macOS希望文本只在Graphics模式下显示,而图形可以在任何模式下绘制。
TextRenderer的选项分别为BuiltinGraphics、BuiltinText、SystemGraphics、SystemText,分别对应不同的渲染器和渲染模式。SystemGeneric选项则表示使用System渲染器和系统ConsoleControl。
将TextRenderer设置为BuiltinGraphics/SystemGraphics/SystemText时,需启用ProvideConsoleGop,并将Resolution设置为Max。
ProtocolOverrides
强制执行从下面的ProtocolOverrides属性部分所选协议的内置版本。注意所有协议实例的安装都优先于驱动程序的加载。
选项 | 内容 | 说明 |
---|---|---|
AppleAudio | YES | 重新安装内置版本的Apple Audio协议,以在OpenCore中使用 VoiceOver,目前该协议支持在macOS 10.13及以上播放音频,老系统使用的AppleHDA协议暂未支持 |
AppleBootPolicy | NO | 重新安装内置的Apple Boot Policy协议,确保虚拟机/旧白苹果上兼容APFS |
AppleDebugLog | NO | 重新安装苹果调试日志输出协议 |
AppleEvent | NO | 重新安装内置的Apple Event协议,虚拟机并具有Vault(文件保险箱)的Mac需要开启 |
AppleFramebufferInfo | NO | 虚拟机专用。重新安装内置的Apple Framebuffer Info协议,可覆盖虚拟机或者旧款Mac上的缓冲帧信息,从而提高与旧版EfiBoot(如macOS 10.4中的EfiBoot)的兼容性 |
AppleImageConversion | NO | 重建Apple图标(重新安装Apple Image Conservation协议) |
AppleImg4Verification | 重新安装内置的Apple IMG4验证协议。该协议用于验证Apple安全启动所使用的im4m清单文件 | |
AppleKeyMap | NO | 重建苹果功能键(重新安装Apple Key Map协议) |
AppleRtcRam | NO | 重装Apple RTC RAM协议(可能会过滤掉RTC内存地址的潜在I/O,地址列表可以在4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:rtc-blacklist中以数组的方式指定) |
AppleSecureBoot | 重新安装内置的Apple安全启动协议 | |
AppleSmcIO | YES | 重新安装Apple SMC I/O协议(VirtualSmc.efi已经被替代为此选项) |
AppleUserInterfaceTheme | NO | 重新安装Apple User Interface Theme协议 |
ConsoleControl | YES | 用内置版本替换控制台控制协议 |
DataHub | NO | 重新安装Data Hub协议。如果已经安装了协议,这将删除所有先前的属性 |
DeviceProperties | NO | 重新安装内置版本的Device Property协议。 如果已经安装,它将删除所有以前的属性。这一选项可用于确保确保在VM/旧白苹果上完全兼容 |
FirmwareVolume | NO | 强制包装固件卷协议或安装新版本以支持FileVault 2的自定义光标图像。该选项可修复Filevault的UI问题,提高FileVault的兼容性(包括VMWare在内的多个虚拟机在HiDPI模式下光标会损坏,因此建议为所有虚拟机启用这一选项) |
HashServices | NO | 强制重新安装内置版本的Hash Services协议,在SHA-1哈希协议不完整的固件上确保FileVault 2的兼容性,修复运行FileVault时鼠标光标大小不正确的问题。对于大多数固件,可通过将UIScale设置为02查看是否会出现禁行图标,来诊断固件是否需要这一Quirk。一般来说APTIO V(Haswell和更早)之前的平台都会受到影响 |
OSInfo | NO | 强制使用内置版本重新安装OS Info协议,为主板或者其它程序接收来自macOS引导工具的消息 |
UnicodeCollation | NO | 制重新安装内置版本的Unicode Collation 服务,修复主板UEFI Shell的兼容性(通常用于IvyBridge或更旧的设备) |
Quirks
选项 | 内容 | 说明 |
---|---|---|
DeduplicateBootOrder | NO | 当RequestBootVarRouting选项开启时,一些其他的操作系统可能在某些主板(如华硕)中会找不到自己的引导而重新创建,最终导致黑果在没有清理NVRAM的情况下无法进入系统时,出现该情况则可开启 |
DisableSecurityPolicy | 禁用平台安全策略,会同时破坏安全启动策略,使用UEFI安全启动时需要禁用 | |
ExitBootServicesDelay | 0 | 主板退出时间(单位微秒),在EXIT_BOOT_SERVICES事件后添加延迟。新主板填0,旧主板(如Z87pro)填3000000-5000000 ,用于修复Still waiting for root device提示信息 |
IgnoreInvalidFlexRatio | YES | BIOS中无法禁用MSR_FLEX_RATIO(0x194)时开启,在不需要的情况下不建议启用 |
ReleaseUsbOwnership | NO | 从固件驱动程序中释放USB控制器所属权,相当于Clover的FixOwnership(大部分主板都有自动释放USB所有权的功能) |
RequestBootVarFallback | NO | 一些固件会主动扫描系统启动盘的位置而阻止OC扫描,遇到此问题时可开启 |
RequestBootVarRouting | YES | 请求将所有带有Boot前缀的变量从EFI_GLOBAL_VARIABLE_GUID重定向到OC_VENDOR_VARIABLE_GUID,启用此项以便能够在与macOS引导项设计上不兼容的固件中可靠地使用启动磁盘设置,并使操作系统只受OpenCore引导环境的控制,而不会被其它操作系统搞乱优先级 |
TscSyncTimeout | 0 | 帮助X99/X299主板开启全核同步功能(应优先使用TSCAdjustReset/VoodooTSCSync/CpuTscSync来做全核同步,因为这个Quirk不能在ACPI S3 模式即睡眠唤醒下运行,会导致睡眠唤醒后失效,而且UEFI固件提供的多核心支持非常有限,无法精确地更新MSR寄存器) |
UnblockFsConnect | YES | 惠普笔记本在OpenCore引导界面没有引导项时设置为YES(某些固件通过按驱动程序模式下来阻止引导项加载,导致文件系统协议无法安装) |
APFS
选项 | 内容 | 说明 |
---|---|---|
EnableJumpstart | YES | 从APFS容器中加载内置APFS驱动(APFS的EFI驱动内置在所有可以作为系统启动盘的APFS容器之中,确保在Scanpolicy中放开APFS格式) |
GlobalConnect | NO | 在APFS加载期间执行完整的设备连接,一些主板需要选择YES才能完全加载APFS(如HP笔记本) |
HideVerbose | YES | 隐藏啰嗦模式 |
JumpstartHotPlug | YES | 允许从进入OpenCore引导菜单后插入的可移除硬盘上的APFS容器中加载APFS驱动 |
MinDate | 0 | 允许加载的最老APFS驱动的发布日期(0表示使用默认数值,-1表示允许使用任何版本的APFS驱动,其它为时间如20200401) |
MinVersion | 0 | 允许加载的最老APFS驱动的版本号(0代表默认数值,当前为从high sierra开始加载,-1代表所有版本,其它为APFS驱动版本号如1412101001000000) |
ReservedMemory
用于保留内存。一些硬件会在把硬件EFI写进内存过程中占用必要的UEFI运行空间,所以可以通过此项预留内存保证UEFI的运行。一般情况下无需处理。
选项 | 内容 | 说明 |
---|---|---|
Address | 保留内存区域的起始地址,该区域应被分配为保留区,有效地将此类型的内存标记标记为操作系统不可访问。这里写的地址必须是内存映射的一部分,具有EfiConventionalMemory类型,并且按页对齐(4KB)。禁用CSM后,某些固件可能不会为S3(睡眠)和S4(休眠)分配内存区域,因此导致唤醒失败,可以分别比较禁用和启用CSM的内存映射,从低层内存中找到这些区域,并保留该区域来修复这个问题 | |
Comment | 注释 | |
Size | 保留的内存区域的大小,必须按页对齐(4KB) | |
Type | 内存区域类型 | |
Enabled | 启用/禁用 |
Type的选项如下。
选项 | 与UEFI规范的内存描述符类型的匹配映射 |
---|---|
Reserved | EfiReservedMemoryType |
LoaderCode | EfiLoaderCode |
LoaderData | EfiLoaderData |
BootServiceCode | EfiBootServicesCode |
BootServiceData | EfiBootServicesData |
RuntimeCode | EfiRuntimeServicesCode |
RuntimeData | EfiRuntimeServicesData |
Available | EfiConventionalMemory |
Persistent | EfiPersistentMemory |
UnusableMemory | EfiUnusableMemory |
ACPIReclaimMemory | EfiACPIReclaimMemory |
ACPIMemoryNVS | EfiACPIMemoryNVS |
MemoryMappedIO | EfiMemoryMappedIO |
MemoryMappedIOPortSpace | EfiMemoryMappedIOPortSpace |
PalCode | EfiPalCode |
配置文件检查
可在终端输入以下命令进行基本检查。
1 | plutil -convert xml1 config.plist && plutil config.plist |
也可通过以下网站。
1 | https://opencore.slowgeek.com/ |
也可通过以下脚本。
1 | https://github.com/corpnewt/OCConfigCompare |
组件
内核
在添加引导项时,OpenCore必须从EFI/BOOT/BOOTx64.efi启动而不是从EFI/OC/OpenCore.efi启动。
基本配置
内存分配
有以下两种关于内存的设置。
KASLR内存注入
KASLR是更加高效的内存注入方式。
DevirtualiseMmio选择yes,ProtectUefiServices选择yes,删除boot-args里面的slide=1,删除Drivers文件夹下的Memoryallocations.efi。
连续性内存注入
DevirtualiseMmio选择yes,ProtectUefiServices选择no,保留boot-args里面的slide=1,保留Drivers文件夹下的Memoryallocations.efi。
修复引导界面显示
在config.plist中修改以下配置。
路径 | 选项 | 设置 |
---|---|---|
UEFI->Protocols | ConsoleControl | YES |
UEFI->Quirks | ProvideConsoleGop | YES |
IgnoreTextInGraphics | YES | |
SanitiseClearScreen | YES | |
Misc->Boot | ConsoleMode | 留空(有时可设置为Max) |
Resolution | 显示器的正常分辨率(如4k为3840x2160) | |
4代及以下 | ||
ConsoleBehaviourOs | Graphics | |
ConsoleBehaviourUi | ForceText | |
5代+ | ||
ConsoleBehaviourOs | ForceGraphics | |
ConsoleBehaviourUi | ForceText(有时可设置为Graphics/Text) |
安全启动
将Misc-Security-SecureBootModel设置为Default或其他有效值即可。若不能开启,则可强制加载IO80211Family,在Kernel-Force下添加以下项即可。
键 | 类型 | 值 |
---|---|---|
Arch | String | Any |
BundlePath | String | System/Library/Extensions/IO80211Family.kext |
Comment | String | |
Enabled | Boolean | True |
Identifier | String | com.apple.iokit.IO80211Family |
ExecutablePath | String | Contents/MacOS/IO80211Family |
MaxKernel | String | |
MinKernel | String | |
PlistPath | String | Contents/Info.plist |
外置主题
首先需要保证有OpenCanopy.efi,且PickerMode设置为External。然后将资源放置在Resources目录即可,资源如下。
1 | # 官方资源包 |
默认选择的图标由DefaultBackgroundColor变量决定,当该变量的值定义为浅灰时,则使用Old前缀的图标,定义为其他颜色时则使用没有前缀名的图标。
调试模式
普通设置
需要将OpenCore、Lilu及其插件更换为DEBUG版本。对于OpenCore,需要更换以下文件。
1 | EFI/BOOT/BOOTx64.efi |
可使用以下工具增强调试能力。
1 | # DebugEnhancer.kext |
在OpenCore的配置文件中设置以下内容。
1 | # 提供更多调试信息,特别是与boot.efi相关的信息,并将日志存储到磁盘 |
【进阶】AppleDebug与log=1
AppleDebug选项适用于较新的Mac版本,会把boot.efi的verbose输出日志保存到通用 OpenCore日志中。
对于10.15.4之前的版本,将bootercfg设置为log=1,可以将verbose输出打印在屏幕上。
串行设置
若需要启用串行输出,需要在以上设置的基础上,在配置文件中设置以下内容。
1 | # 执行串口初始化 |
插入串口后使用CoolTerm进行调试,链接如下。
1 | https://freeware.the-meiers.org/ |
打开CoolTerm并点击Options,确保Port为串口控制器,Baudrate选择115200,Data Bits选择8,Parity选择none,Stop Bit选择1。然后点击Connect即可开始监听串口。
设置默认启动盘
在配置文件中开启Misc-Security-AllowSetDefault,然后在引导界面按Ctrl+Enter设置。
获取错误信息
若系统无法启动,可通过OpenCore获取错误信息。需确保OpenCore为DEBUG或NOOPT版本。在配置文件中按照以下内容设置。
1 | Misc-Debug-Target=3 |
对于Early Boot出现的问题(如OpenCore启动菜单无法显示),通过UEFI Shell可以查看相关调试信息。
自定义启动项
OpenCore遵循Apple Bless标准模型,从引导目录中的.contentDetails
和.disk_label.contentDetails
文件中提取条目名称。这些文件包含带有输入标题的ASCII字符串,可以修改它们以自定义启动项名称。
Windows安装与配置
在OpenCore上应用的所有更改(ACPI、NVRAM、SMBIOS)都应该与操作系统本身无关。OpenCore 会将这些改动生效于所有操作系统,包括Windows。
安装
应当使用Boot Camp安装Windows,以保证其可被OpenCore引导。也可使用Brigadier对现有Windows进行配置,链接如下。
1 | https://github.com/timsutton/brigadier |
注意使用Brigadier时,需要传递最新型号的Mac,如./brigadier.exe -m iMac19,1
,以防止Boot Camp版本过低导致无法运行。
在不受支持的Mac型号上安装Boot Camp,可以管理员身份运行PowerShell,输入msiexec /i BootCamp.msi
即可。如果之前不小心已经安装了旧版本的Boot Camp,则必须先通过运行msiexec /x BootCamp.msi
将其卸载。BootCamp.msi文件位于BootCamp/Drivers/Apple目录。
配置
反转鼠标滚轮滚动方向
打开PowerShell并输入以下命令即可。
1 | # 获取当前设置 |
若需要撤销更改,可通过以下命令。
1 | Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Enum\HID\*\*\Device` Parameters FlipFlopWheel -EA 1 | ForEach-Object { Set-ItemProperty $_.PSPath FlipFlopWheel 0 } |
修复Boot Camp启动硬盘控制面板的Basic data partition
需要手动重新标记分区,可通过gdisk,方法如下。
1 | PS C:\gdisk> .\gdisk64.exe \\.\physicaldrive0 |
安装到实体Mac上
以Mac Pro 5,1为例。在实体Mac上使用OpenCore,可以让旧版Mac拥有启动选择器屏幕、软件更新、硬件加速、DRM支持等。示例机器配置如下。
内容 | |
---|---|
Mac Pro型号 | MacPro5,1 (Early 2009/Mid 2010/Mid 2012) |
处理器架构 | Westmere (E56xx/L56xx/X56xx), Gulftown (W36xx) |
ROM版本 | 144.0.0.0.0 |
显卡 | 在Catalina/Big Sur受支持的型号 |
无线网卡 | 在Catalina/Big Sur受支持的型号 (BCM943224/BCM9435x/BCM9436x) |
【特殊】Big Sur 11.3/11.4对Mac Pro的兼容性
Big Sur 11.3/11.4可能已不再支持Mac Pro(Early 2009-Mid 2012)。可使用Big Sur 11.2.3。
修改启动器
操作时建议使用第二块硬盘,在配置失败时仍可以使用原来的硬盘启动。
开启OpenCore
将第二块硬盘设置为GUID分区表,挂载EFI分区,放置OpenCore并使用以下配置文件。
1 | https://forums.macrumors.com/attachments/config-zip.1789995/ |
在终端输入以下命令以进入恢复模式。
1 | sudo nvram "recovery-boot-mode=unused" && sudo reboot recovery |
进入恢复模式后,打开终端并输入以下命令。
1 | # 列出分区及其标志符 |
重启后即跳出OpenCore界面,选择要引导的系统即可。启动成功后打开终端并输入以下命令,查看当前引导器是否为OpenCore,若有输出则证明OpenCore已引导系统。
1 | nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:opencore-version |
关闭OpenCore
将配置文件中RequestBootVarRouting设置为false,重启后在系统偏好设置-启动磁盘中选择当前系统盘并重新启动即可。
修复启动
若开启OpenCore后无法启动,则移除第二块硬盘,启动时按住Option+Command+P+R,在20秒或听到第二声启动提示音后松手,Mac将重置NVRAM并按照正常方式启动。
修改配置文件
开启虚拟化
在SMBIOS下,修改BIOSVersion为9999.0.0.0.0,BoardProduct为Mac-7BA5B2D9E42DDD94,并将UpdateSMBIOS设置为true。
VMM标志
将VMM标志添加到CPUID有助于启用安装和软件更新。因为VMM标志会导致大约 5%的性能损失并禁用电源管理,所以建议仅在安装或检查更新时打开该标志。注意,若使用了虚拟化,则安装和更新Big Sur并不需要开启VMM标志。
修改CPUID为如下即可。
1 | # 打开VMM标志 |
GOP渲染器
对于Radeon VII和某些版本的5700 XT,需要启用GOP渲染器以显示启动选择器菜单。但对于RX 580,不需要启用GOP渲染器。建议非必要时禁用GOP渲染器。
将DirectGopRendering设置为true即开启,设置为false即关闭。
启动选择器屏幕
若有HiDPI显示屏,可将UIScale从AQ==改为Ag==。
若需要显示灰色启动屏幕,可将ConsoleAttributes从15改为112,将DefaultBackgroundColor从AAAAAA==改为v7+/AA==。
若需要隐藏启动屏幕,可将ShowPicker改为false。若在隐藏后需要在启动时重新显示,可长按Esc。
启用硬件加速
放置Lilu和WhateverGreen,若为双处理器则还需要放置AppleMCEReporterDisabler。在配置文件中加载以上kext,并在DeviceProperties添加显卡路径,该路径可通过gfxutil查询到。然后在显卡路径下添加以下键。
键 | 类型 | 值 |
---|---|---|
agdpmod | Data | 70696B65 726100 |
rebuild-device-tree | Data | 00 |
shikigva | Data | 50 |
unfairgva | Data | 01000000 |
设置启动标志
将NVRAM-7C436110-AB2A-4BBB-A880-FE41995C9F82
-boot-args
下的内容清空即可。
开启Night Shift
放置Lilu和NightShiftEnabler,在配置文件中加载以上kext即可。
安装Windows
确保配置文件中ProtectSecureBoot设置为true,VMM标志关闭,并添加ExFatDxeLegacy.efi驱动。准备一个USB作为安装介质,使用MBR分区表并格式化为exFAT格式。下载Windows安装镜像,双击挂载ISO后将出现CCCOMA_X64映像。
打开终端并输入以下命令,注意需要将USB替换为安装介质的名称。
1 | rsync -r /Volumes/CCCOMA_X64/ /Volumes/USB |
重启后在启动选择器选择Windows (External)以启动安装环境。启动完成后按Shift+F10打开命令提示符,然后输入以下命令。
1 | # 进入磁盘工具 |
完成后关闭命令提示符并重启,进入Mac系统。挂载EFI分区后,将安装盘中生成的EFI/Microsoft文件夹复制到EFI分区的EFI文件夹中。然后删除安装盘中的EFI文件夹,将efi.bak重命名为efi,弹出USB。完成后重启并进入Windows即可。
安装Ubuntu
常见问题
出现kextd stall (60s) ‘IOUSBHostInterface’或kextd stall (60s) ‘IOHIDInterface’
使用Catalina Beta 1-3时会出现此问题。在Beta 2中无解决方案,在Beta 3中未测试。
在Beta 1中,可添加以下内核补丁。
键 | 类型 | 值 |
---|---|---|
Base | String | _isSingleUser |
Count | Integer | 1 |
Enabled | Boolean | True |
Find | Data | |
Identifier | String | com.apple.iokit.IOHIDFamily |
Limit | Integer | 0 |
Mask | Data | |
MaxKernel | String | |
MinKernel | String | 20.0.0 |
Replace | Data | B801000000C3 |
ReplaceMask | Data | |
Skip | Integer | 0 |
出现OCB: boot LoadImage failed
可尝试将ScanPolicy设为983299(0xF0103)。
出现OC:configuration requires vault but no vault procide
更新OpenCore即可。
出现OCS: No schema for xxxxx at xx index!
在config.plist中删除对应项即可。
出现OCB:OcScanForBootEntries failure - Not Found Halting on critical error
修改config.plist中的Misc-Security-ScanPolicy为0即可。
Recovery无法进入
勾选UEFI-APFS-JumpstartHotPlug即可。
卡在[EB|#LOG:EXITBS:START]
未关闭BIOS的CFG锁导致。
在OpenCore配置文件中设置Kernel-Quirks-AppleCpuPmCfgLock,Kernel-Quirks-AppleXcpmCfgLock和UEFI-Quirks-IgnoreInvalidFlexRatio为Yes。
BIOS重设或重启/关机后发送到安全模式
AppleRTC的问题。
在OpenCore配置文件中设置Kernel-Quirks-DisableRtcChecksum为Yes。如果仍然有问题,则需要使用RTCMemoryFixup.kext并排除范围。
使用OpenCore引导启动Windows出现蓝屏
在OpenCore配置文件中设置Booter-Quirks-SyncRuntimePermissions。
Z390关机重启
打开RequestBootVarRouting。
引导时卡在[EB|`B:WFDW] Err(0xE), 0 @ LocHB 71B4903C-14EC-42C4-BDC6-CE1449930E49
在config.plist中勾选UEFI-Quirks-IgnoreInvalidFlexRatio即可。若无效,则勾选Kernel-Quirks-AppleCpuPmCfgLock/AppleXcpmCfgLock。若仍无效,则尝试在BIOS关闭CFG Lock,也可尝试勾选Booter-Quirks-SetupVirtualMap。
出现OC: Driver xxxxxxxx.efi at 3 cannot be started Already started! Halting on critical error
删除对应的驱动即可。
引导OpenCore后回到BIOS/引导选择界面
确定ESP分区内分区结构正确。然后确保引导的是EFI/BOOT/bootx64.efi而不是EFI/OC/OpenCore.efi。
引导时提示no vault provided!
关闭Misc-Security中的RequireSignature和RequireVault,关闭FileVault。
卡在EndRandomSeed
对于AMD CPU,可能是缺少内核补丁。
对于Broadwell和更老的机型,需要勾选IgnoreInvalidFlexRatio。对于奔腾、HEDT,可能需要勾选AppleXcpmExtraMsrs。
也有可能需要勾选UEFI-Output-ProvideConsoleGop,或关闭CFG锁,或使用SSDTTime的FixHPET选项并放置生成的SSDT。
看不到Mac分区
ScanPolicy设置为0,显示所有驱动器。需要放置分区格式驱动,如ApfsDriverLoader和HfsPlus(或VBoxHfs)。若进行网络恢复安装,则应当启用AvoidHighAlloc。
选择OpenCore引导后黑屏
启用UEFI-Output-ProvideConsoleGOP。
卡在OC: OcAppleGenericInput… - Success
关闭CFG锁。对于AMD CPU,应检查是否已添加内核补丁。
引导系统时卡在PCI Configuration Begins, Previous Shutdown…, HID: Legacy… apfs_module_start…等
确保EC控制器名称为EC,以及使用了SSDT-AWAC.aml补丁。若无效,则可添加npci=0x2000参数。若仍无效,则关闭UEFI-Quirks-ReleaseUsbOwnership选项。
Kernel Panic并提示“Cannot perform kext summary”
kext的加载顺序错误。
因为AppleIntel***Framebuffer导致的Kernel Panic
DVMT Pre-allocated的问题。也可能是没有加载SSDT-PLUG.aml,即没有注入plugin-type=1。
I2C触摸板不可用,但驱动已经加载
强制IOGraphicsFamily.kext加载即可。由于OC没有ForceKextsToLoad的功能,需从System/Library/Extension下提取这个kext放到EFI/OC/Kexts,并在config.plist的Kernel-Add 中添加此Kext。
出现OCB: Apple Secure Boot prohibits this boot entry, enforcing!
已安装的系统Preboot分区上的Apple安全启动清单是过时的,从而导致启动失败。可重新安装操作系统,或将/usr/standalone/i386中扩展名为im4m的文件复制到/Volumes/Preboot/
出现OCABC: Memory pool allocation failure - Not Found
保证BIOS已启用4G以上解码,且已禁用CSM。
出现** In Memory Panic Stackshot Succeeded ** Bytes Traced xxxxx ** Attenmpting system restart. . . MACH Reboot
可能使用的kext存在问题,或引导器需要更新。若无效,可在config.plist中勾选Kernel-Quirks-AppleCpuPmCfgLock/AppleXcpmCfgLock,或添加阻止补丁DeviceProperties-Block-PciRoot(0x0)/Pci(0x1b,0x0)-MaximumBootBeepVolume。
出现SMCSuper IO ssio: @ failed to detect supported Super IO chip或RTC…, PCI Configuration Begins, Previous Shutdown…, HPET, HID: Legacy…或AppleNVMe Assert failed:( 0 != data )Release file:/AppleInternal/BuildRoot/Library/Caches/
可能为IRQ冲突,使用SSDTTime的FixHPET选项并放置生成的SSDT即可。
若无效,则可能是PCI分配问题,可尝试更新BIOS,且启用Above4GDecoding,禁用CSM,启用Windows 8.1 / 10 UEFI模式。
对于Catalina及以上版本,可能是缺少EC设备。对于有电池的设备,需将EC设备进行改名。对于无电池的设备,直接使用SSDT-EC即可。
内核Panic并显示Cannot perform kext summary
预链接内核问题。需验证kext顺序是否正确。
出现Buffer Too Small
开启UEFI-Quirks-AvoidHighAlloc,并在BIOS启用Above4GDecoding。
出现Plist only kext has CFBundleExecutable key
当一个值不应该是实数时,它被设置为实数,通常是Xcode意外地转换了HaltLevel,如下。
1 | <key>HaltLevel</key> |
修复为如下即可。
1 | <key>HaltLevel</key> |
选择macOS分区后卡住
关闭CFG锁,或启用AppleXcpmCfgLock和AppleCpuPmCfgLock。
无法在引导界面选择器中选择任何内容
键盘驱动程序不兼容。
禁用PollAppleHotKeys并启用KeySupport,然后在删除OpenUsbKbDxe驱动。若不起作用,则进行相反操作。
出现[EB|’WL:DT] Err(0xE) @ WL:PWLFRTC错误
关闭CFG锁,并将Misc-Debug-DisplayLevel改为0。
系统进入后,关于本机处无法显示序列号或者序列号不可用
关闭Kernel-Quirks-CustomSMBISOGuid。
出现OCB:LoadImage failed - Unsupported
添加HFSPlus.efi或VBoxHfs.efi驱动。
出现OC:Failed to show boot menu,或no boot device found. press any key to reboot the machine
Misc-Security-ScanPolicy设为0。
出现OCB: Start Image failed - Aborted
将ACPI-Delete的补丁全部删除。
出现OCTY:failed to locate apple event protocol - not found
将UEFI-Applelnput-AppleEvent设为Auto。
Chameleon
Chameleon只支持传统BIOS,不支持UEFI。Enoch和Chimera都属于Chameleon的分支。
下载
1 | # r2908 |
手动安装
Chameleon关于启动的文件如下。
名称 | 作用 |
---|---|
fdisk440 | 帮助写入boot0、boot0hfs的工具,只会写入440bytes,不破坏MBR中的关于Windows的任何资料 |
boot0 | 写入到MBR,boot0会搜索boot1h所在的第一个活动分区 |
boot0hfs | 写入到MBR中,boot0hfs会搜索boot1h所在的第一个分区,无论是否设为活动分区 |
boot1h | 写入到分区引导区块中,借此引导Boot文件 |
boot | 放置于开机分区以完成开机引导程序 |
将文件复制到EFI分区后,Mac下终端执行以下命令即可将Chameleon安装到EFI分区。
1 | # 以下dev/rdisk1表示磁盘号 |
目录层级
Extra/Extensions
相当于Clover的kexts/Other目录。
配置文件详解
开启32位
变色龙RC5 r75x版起,开启32位的方法修改为在/Extra/com.apple.Boot.plist内容加入下面设置。
变色龙RC5 r1105版起,开启32位的方法修改为在/Extra/org.chameleon.Boot.plist内容加入下面设置。
1 | <key>arch</key> |
启动参数
com.apple.Boot.plist的参数如下。
参数 | 含义 | 备注 |
---|---|---|
-F | 忽略org.Chameleon.boot.plist中额外的启动标志 | |
UseKernelCache=Yes | 使用内核缓存安装kexts,使用RAID安装Lion则必须开启 | |
GraphicsEnabler=Yes | 打开Graphics Enabler功能 | 等同于Clover中的InjectAMD/Nvidia,注意运行WhateverGreen即可实现该效果 |
IGPEnabler=Yes | 打开IGP启动器,帮助Mac在集显下更好的使用 | 等同于Clover中的InjectIntel,注意运行WhateverGreen并使用帧补丁即可实现该效果 |
Theme=Default | 设置图形化界面,Default是布景主题名称,可改为任意第三方布景主题名称 | |
Wait=Yes(No) | 点击按键后才开始启动内核 | |
Quiet Boot=Yes(No) | 开机时不显示文字或图形选单,直接进入系统 | |
Timeout=8 | 设定开机选择启动分区的秒数 | |
Instant Menu=Yes | 强制显示分区选择菜单 | |
Default Partition=hd(x,y)/(=UUID)/(=”Label”) | 设定预设开机分区,可使用代码、UUID、标签表示。x代表硬盘代号,y代表分区代号 | |
Hide Partition=hd(x,y)/(=UUID)/(=”Label”) | 设定隐藏分区,可使用代码、UUID、标签表示,也可以添加多个参数以隐藏多个分区,使用空白键作分隔。x代表硬盘代号,y代表分区代号 | |
Rename Partition=hd(x,y)/(=UUID)/(="Label") <alias> |
设置分区名字,可使用代码、UUID、标签表示,也可以添加多个参数以命名多个分区,使用空白键作分隔。x代表硬盘代号,y代表分区代号,<alias> 代表修改名称(因为使用空白键作分隔,所以命名不可包含空白键) |
|
GUI=Yes(No) | 设定启用单图形化界面的开机选单,默认为YES | |
Boot Banner=Yes(No) | 启用在图形化介面显示变色龙版本等讯息文字横幅,默认为YES | |
Legacy Logo=Yes(No) | 启用在进入系统化面显示原苹果Logo,默认为NO | |
SystemID= | 设定开机UUID | |
RestartFix=Yes | 启用重新启动修正功能,建议开启 | |
System-Type=(1),2,3 | 1=PC,2=笔记本,3=服务器,默认为1 | |
DropSSDT=Yes(No) | 忽略BIOS中的SSDT,读取Extra资料中的SSDT资料,默认为NO | |
GenerateCStates=Yes | 启用生成CPU C-State功能(C-State管理CPU电源状态,可以让CPU在闲置状态下处于不同低功耗状态) | |
GeneratePStates=Yes | 启用生成CPU P-State功能(P-State管理CPU性能状态,可以让CPU在不同负载下改变功耗) | |
EnableC2State=Yes | 启用C2 State功能(C2 State管理CPU电源状态,可以让CPU在闲置状态下处于低功耗状态) | |
EnableC3State=Yes | 启用C3 State功能(C3 State管理CPU电源状态,可以让CPU在闲置状态下处于低功耗状态) | |
EnableC4State=Yes | 启用C4 State功能(C4 State管理CPU电源状态,可以让CPU在闲置状态下处于低功耗状态。C2/C3/C4中,数字越大节能效果越明显) | |
GraphicsEnabler=Yes(No) | 启用侦测显卡功能,可取代在DSDT添加的显卡参数,默认为NO | |
UseNvidiaROM=Yes(No) | 启用Nvidia EEPRom功能,可以在不刷显卡BIOS的情况下使用修改的Rom,需要将ROM文件命名为VenderID_DeviceID.rom 并放置Extra资料夹,如10de_0614.rom,默认为NO |
|
UseAtiROM=Yes(No) | 启用ATI EEPRom功能,可以在不刷显卡BIOS的情况下使用修改的Rom,需要将ROM文件命名为VenderID_DeviceID.rom 并放置Extra资料夹,如10de_0614.rom,默认为NO |
|
VBIOS=Yes(No) | 仅针对NVIDIA显卡,启用读取显卡参数,可在显示卡资讯中显示ROM修正版资讯(如果在Extra资料夹放置显卡Rom文件,版本号会变成显卡Rom文件路径) | |
EthernetBuiltIn=Yes(No) | 启用网卡内建设定侦测功能,默认为NO | |
EHCIacquire=Yes(No) | 启用EHCI功能修正,非必要不开启,默认为NO | |
UHCIreset=Yes(No) | 启用UHCI功能修正,非必要不开启,默认为NO | |
USBLegacyOff=Yes(No) | 启用USB原生功能修正,非必要不开启,默认为NO | |
USBBusFix=Yes(No) | 启用EHCI功能修正、UHCI功能修正、USB原生功能修正,非必要不开启,默认为NO | |
Wake=Yes(No) | 启用睡眠唤醒功能,默认为YES | |
ForceHPET=Yes(No) | 启用强制HPET功能,默认为NO | |
ForceWake=Yes(No) | 启用强制使用睡眠资料映像功能,默认为NO | |
SMBIOSdefaults=Yes(No) | 启用SMBIOS的预设值,默认为NO | |
Scan Single Drive=Yes(No) | 启用扫描单一光驱模式,默认为NO | |
Rescan=Yes | 启用光驱重新扫描模式 | |
config=/Extra/com.apple.Boot.plist | 设定com.apple.Boot.plist的位置 | |
SMBIOS=/Extra/SMBIOS.plist | 设定SMBIOS.plist的位置 | |
DSDT=/Extra/DSDT.aml | 设定DSDT.aml的位置 | |
md0=/Extra/Postboot.img | 设定Postboot.img的位置 | |
WakeImage=/private/var/vm/sleepimage | 设定睡眠资料映像文件位置 | |
kext=/Extra/Extensions | 设定kext/mkext所在位置 | |
ShowInfo=No | 取消硬盘分卷与解析度细节显示 | |
CSTUsingSystemIO=Yes | 启用新式生成CPU C-State功能 | |
AtiConfig=<cardcfg> |
设定ATI显卡Framebuffer,更有效驱动显示卡,如AtiConfig=Uakari | |
AtiPorts=<value> |
设定ATI显卡接口数目 | |
display_0=<value> |
写入Nvidia显卡NVDA,Display-A@0的display-cfg参数 | |
display_1=<value> |
写入Nvidia显卡NVDA,Display-B@1的display-cfg参数 | |
InjectIntel-ig=x | 注入ig-platform-id,适用于HD 4000/4400/4600/5000/Iris,x为Intel iGPU的ID | |
IntelAzulFB=x | 注入可用的ig-platform-id,适用于HD4400/4600/5000/Iris,x范围为0-15 | |
IntelCapriFB=x | 注入可用的ig-platform-id,适用于HD4000,x范围为0-11 | |
EnableDualLink=Yes/No | 注入Intel iGPU双Dual信息,对于1366x768分辨率使用No,对于1600x900或更高分辨率使用Yes | |
PCIRootUID=0 | 内核将在内部主板或CPU GFX寻找视频硬件 | |
PCIRootUID=1 | 内核将在外部/PCIe插槽寻找视频硬件 |
对于PCIRootUID应当使用的参数,可通过查看DSDT确定。在DSDT中查找PCI0设备,示例如下。
1 | # 应当使用PCIRootUID=1 |
SMBIOS.plist参数如下。
参数 | 含义 |
---|---|
SMfamily=MacPro (Mac) (MacBookPro) | 设定产品类型(iMac设定会影响声卡使用时产生电流声,改用MacPro即可) |
SMproductname=MacPro3,1 (iMac11,1) (MacBookPro6,1) | 设定产品型号(非Nehalem系列处理器不要设定为MacPro4,1,需设定为MacPro3,1或其它) |
SMmanufacturer=Apple Inc. | 设定制造者 |
SMbiosvendor=Apple Inc. | 设定BIOS供应商 |
SMboardmanufacturer=Apple Inc. | 设定主板制造者 |
SMboardproduct=Mac-F221BEC8 | 设定主板型号 |
SMbiosversion=MP41.88Z.0081.B04.0903051113 | 设定BIOS版本 |
SMserial=CK916000000 | 设定序号 |
SMsystemversion=1.0 | |
SMcputype=1793(1537) | 设定处理器的类型(Core 2 Solo=257,Core 2 Duo=769,Core 2 Quad=1281,Core i5=1537,Core i7=1793) |
SMmaximalclock=2926 | 设定处理器内频(主频)=外频X倍频(内频/主频=CPU Frequency,外频=Base Clock Frequency,倍频=CPU Clock Ratio) |
SMexternalclock=133 | 设定处理器外频 |
SMbusspeed=4800 | 设定总线速度 |
SMmemtype=24 | 设定内存规格(DDR2=19,DDR3=24) |
SMmemspeed=1333 | 设定内存时脉(DDR2 667=667,DDR2 800=800,DDR3 1066=1066,DDR3 1333=1333,DDR3 1600=1600) |
SMmemmanufacturer_1=Kingston | 设定内存制造商 |
SMmemmanufacturer_2=Kingston | 设定内存制造商 |
SMmemmanufacturer_3=Kingston | 设定内存制造商 |
SMmemmanufacturer_4=Kingston | 设定内存制造商 |
SMmemmanufacturer_5=Kingston | 设定内存制造商 |
SMmemmanufacturer_6=Kingston | 设定内存制造商 |
SMmempart_1=9905458-009.A00LF | 设定内存零件编号 |
SMmempart_2=9905458-009.A00LF | 设定内存零件编号 |
SMmempart_3=9905458-009.A00LF | 设定内存零件编号 |
SMmempart_4=9905458-009.A00LF | 设定内存零件编号 |
SMmempart_5=9905458-009.A00LF | 设定内存零件编号 |
SMmempart_6=9905458-009.A00LF | 设定内存零件编号 |
SMmemserial_1=76344B29 | 设定内存序号 |
SMmemserial_2=76344B29 | 设定内存序号 |
SMmemserial_3=76344B29 | 设定内存序号 |
SMmemserial_4=76344B29 | 设定内存序号 |
SMmemserial_5=76344B29 | 设定内存序号 |
SMmemserial_6=76344B29 | 设定内存序号 |
NVRAM支持
Chameleon本身不保存EFI中的内容,因此NVRAM不起作用,需要FileNVRAM模块把nvram文件从磁盘提前加载到内存中。同时该模块向系统插入一个kext,在更改NVRAM时写入内容到/Extra/nvramxxxxxxxx.plist。
常见问题
引导器启动
Boot0: error
一般出现在引导Advanced Format 4格式的HDD上。下载以下文件并复制boot1h到USB安装盘根目录。
1 | https://www.dropbox.com/s/owacbzyriibee5o/boot1h.zip |
引导到安装程序后,打开磁盘工具,取消挂载系统盘后打开终端,输入以下命令即可。
1 | # identifier为系统盘的索引号,如disk0s2 |
引导启动
找不到mach_kernel
打开org.chameleon.Boot.plist,修改以下内容。
1 | <key>Kernel</key> |
若无效,则修改为以下内容。
1 | <key>Kernel</key> |
BootThink
支持GUID/MBR分区表,2.5.2版可引导Lion。启动时按F8可键入启动参数。
运行Darwin/MBR/SetupMBR.bat,可将BootThink设为第一引导。
安装
在苹果系统下运行安装包。BootThink提供以下安装方式。
安装方式 | 说明 |
---|---|
勾选Boot1h | 将boot1h文件写入到所选择安装分区的某个扇区(即dd if=boot1h of=/dev/rdiskXsY) |
勾选Boot1h和boot0 | 除以上操作外,还将boot0文件写入整个磁盘的MBR扇区(即fdisk -f boot0 -u -y /dev/rdiskX) |
勾选EFI | 安装到EFI分区 |
卸载
执行Darwin文件夹下的Uninstall。重启计算机后手动删除系统目录下的Darwin文件夹、boot、nbldr和nbldr.mbr即可。
目录层级
以Snow Leopard为例,引导时将加载Darwin/rc/mkext、Darwin/System/LibrarySL/Extensions.mkext和Darwin/System/LibrarySL/Extensions文件夹下的所有kexts。
若需要安装kexts,放置到Darwin/System/LibrarySL/Extensions即可。
为防止kexts冲突,建议删除以下kexts。
1 | Darwin/System/LibrarySL/Extensions/Extensions.mkext |
若为Lion,则加载Darwin/System/LibraryLion/Extensions。
引导启动
BootThink会优先使用系统/Library/Preferences/SystemConfiguration下的com.apple.Boot.plist启动配置文件。若不存在则会使用Darwin下的 com.apple.Boot.plist文件。
若需要加载DSDT.aml/SMBIOS.plist,可以直接将此文件放到Darwin下,BootThink会自动加载。
启动参数
参数 | 含义 |
---|---|
b=x | 设置当前选中分区为默认启动分区,延时x秒钟启动(0<=x<=32767) |
b=~ | 取消默认启动分区设置 |
p=- | 只显示可引导分区 |
p=+ | 显示恢复分区 |
g=1024x768x32 | 设置默认启动分辨率为1024x768,深度为32 |
g=~ | 取消分辨率设置 |
-x32 | 强制使用32位模式启动 |
Refind
1 | https://www.rodsbooks.com/refind/installing.html |
其它
包括XPC Bootloader等。
ACPI
基础知识
ACPI表是一组硬件描述表,包括SSDT/DSDT等。ACPI是BIOS的基本部分,包含本机设备的基本信息,定义了设备的启动顺序,并提供了它们之间相互通信的基本方法。
Windows 98是第一个支持ACPI的操作系统,Windows Vista以后的Windows则要求电脑必须支持ACPI。Linux不需要ACPI也可以运行,但是在现代设备上禁用ACPI将会导致绝大部分硬件无法运行。Android中也内置了一个精简的ACPI。
Mac从PowerPC架构迁移到Intel架构后开始采用ACPI。但iOS并没有ACPI,而是完全使用自己的私有架构iBoot。搭载M1的Mac也不存在ACPI,使用IBoot作为Bootloader。因此搭载M1的Mac上是几乎没有可能运行Windows的。
系统ACPI表
DSDT与SSDT
DSDT是ACPI的一部分,描述计算机设备信息,包含主要的设备树和标准方法。DSDT是硬件表中最重要的一个,系统根据DSDT驱动相应的硬件。SSDT也称为热补丁,可以在不更改DSDT源文件的情况下完成对DSDT的修复,并实现相应功能。
系统的SSDT则通常包含SATA管理(\_SB.PCI0.SATA
)、传感器管理(PTID)、CPU管理(\_PR.CPU
)、Intel显卡管理(PCI0.GFX0/PCI0.VID)、GPU管理(GFX0/PEGP/DGFX)等。
大部分Intel iGPU在DSDT中被管理,但有时在SSDT中,可通过搜索GFX0所在位置确定。
因此,对DSDT的修补可以直接通过修改DSDT文件本身,也可以通过SSDT避免替代整个DSDT所带来的其它问题。用SSDT修补DSDT的基本思路是,SSDT中提供某设备经修补的函数,启动时引导器将会把SSDT中的内容注入到DSDT中。在SSDT的函数注入DSDT时,为防止DSDT中出现相同的函数导致冲突,一般需要对DSDT中的原函数进行重命名。
OEM SSDT
OEM SSDT在Mac下没有作用。删除OEM SSDT可避免发生冲突,但可能会发生意料不到的错误。
重命名法则
目的
重命名即对DSDT的部分字段进行修改。重命名法则通常写在引导器的配置文件中,在启动时引导器自动完成该工作。
SSDT的应用常常要配合ACPI的更名,但更名不只适用于SSDT,也可以适用于直接对DSDT进行部分小修改。更新BIOS有可能造成重命名失效。
规则
一般而言ACPI重命名为四个字符,这四个ASCII码对应的十六进制为八位。若需要将DSDT中所有的变量AAAA都替换为BBBB,则在config.plist中添加以下更名补丁即可。
1 | Comment: change AAAA to BBBB |
有时需要进行部分修改。如SSDT经常需要将DSDT中的原函数更名,以达到让DSDT中的原函数失效、SSDT中的新函数生效的效果。此时应只对该函数的定义处进行更名,该函数的调用处则不应该被更名。但如果未添加冗余信息,则将会使函数调用处的名称也被更改,从而使调用的函数不是新写的函数,而是被更名过的原函数,这样SSDT便无法起作用。
举例如下。若修改时指定将ABCD修改为ABCX,则不仅ABCD的定义处被修改,EFGH中ABCD的调用处也被修改,则还是调用了被修改名字的原函数,SSDT不起作用。
1 | Method (ABCD, 1, NotSerialized){ |
对于部分修改的情况,为了精确定位到要修改的位置,一般需要添加冗余信息。
对于Method的定义,可通过其类型添加冗余信息。以下以ABCD该Method为例说明,其中ABCD对应的十六进制码为41424344。
方法名 | 十六进制码 |
---|---|
Method (ABCD, 1, NotSerialized) | 41424344 01 |
Method (ABCD, 0, Serialized) | 41424344 08 |
Method (ABCD, 1, Serialized) | 41424344 09 |
一般情况下遵循以下规则。
方法格式 | 十六进制码 |
---|---|
Method(xxxx,a,N) | xxxx的十六进制代码+a的十六进制代码,最后两位范围为 00-07 |
Method(xxxx,b,S) | xxxx的十六进制代码+(b+8)的十六进制代码,最后两位范围为08-0F |
对于其它无规律的情况,可手动查找。用Hex Friend打开DSDT文件,将搜索模式改为Text,搜索要替换的字段名。定位到要替换的字段位置后,选中该字段并将光标向后拉,直至选中约22个十六进制数。复制该值并搜索,查看该DSDT中该内容是否只出现了一次。若是,则将本内容填入Find中,而Replace填写替换了前8位十六进制数后的内容,示例如下。
1 | // 带有14位冗余信息(12345678 901234)用于定位 |
若使用Clover引导,也可通过Tgtbridge限定字段的查找范围。定义Tgtbridge后,Clover只会在Tgtbridge值对应的设备中进行字段修改。以将DSDT中设备CCCC内的变量AAAA替换为BBBB为例,更名补丁如下。
1 | Comment: change AAAA to BBBB in CCCC |
获取十六进制码
打开Hackintool并切换到计算器选项卡,在ASCII码一栏输入原来的字段名,在16进制值一栏会显示对应的八个数字。
也可打开终端,利用以下命令得到ASCII码十六进制数。
1 | // 获取BIFA的ASCII码十六进制数 |
常见十六进制码
常见十六进制码含义如下。Noop一般用于补足字节数量。
十六进制码 | 源码 |
---|---|
00 | { |
A0 | If |
A4 0A 0F | Return(0x0F) |
A3 | Noop |
提取ACPI表
通过Clover
此方法所提取的ACPI最纯净,推荐使用。
在Clover引导界面按F4即可,所有ACPI表将被提取到EFI/Clover/ACPI/origin目录下。
通过OpenCore
使用在USB中的DEBUG版本的OpenCore,并在配置文件中设置SysReport为True,即可在启动时自动提取ACPI表。将OpenCore替换为DEBUG版本,需要替换以下文件。
1 | EFI/BOOT/BOOTx64.efi |
通过MaciASL
Mac下打开MaciASL,默认打开本机DSDT。
通过UefiTableExtract
该工具从UEFI BIOS固件中提取ACPI表。
打开以下链接并下载压缩包,解压后运行install.command,再运行UefiTableExtract即可。
1 | https://github.com/Saman-VDR/uefiTableExtract |
若遇到诸如Namespace lookup failure, AE_ALREADY_EXISTS
的错误,可尝试以下命令进行修复。
1 | cd AML |
通过acpidump
通过以下链接下载acpidump.efi,并复制到Clover或OpenCore的Tools文件夹中。对于OpenCore,还需在config.plist的Misc-Tools下添加该工具的相关条目。
1 | https://www.acpica.org/downloads/uefi-support |
在Clover或OpenCore的引导界面上将会显示该工具,调用后会生成DSDT.dat,修改后缀名为DSDT.aml即可。若无法打开此工具,则可在引导界面进入EFI Shell,输入以下命令以手动运行。
1 | fs0: // 替代为自己的EFI分区标识 |
也可直接使用acpidump.exe,在Windows下运行即可。
1 | https://acpica.org/downloads/binary-tools |
通过RW-Everything
在Windows下打开RW-Everything,点击Access-ACPI Tables,选择要提取的表,点击Save as Binary即可。
通过aida64
在Windows下打开aida64,点击工具-ACPI浏览器,点击Save DSDT以保存DSDT,点击Save Table以保存SSDT。
通过Linux
以Ubuntu为例,启动系统后进入终端并输入以下命令以存储DSDT。
1 | cd Desktop |
通过SSDTTime
在Windows或Linux下打开SSDTTime,选择Dump DSDT
即可。
SSDT加载顺序
当SSDT的对象为机器的ACPI时,各SSDT之间没有顺序要求。当SSDT的对象为在另一个新的SSDT定义的设备时,将此SSDT放到定义该设备的SSDT之后加载。
编译与反编译
ACPI表主要有两种形式,dsl为未编译过的源码,aml为编译过的应用文件。dat扩展名与aml完全相同。
尽管可以直接用MaciASL打开aml文件,但这样的操作实际上是对单个文件进行反汇编。由于DSDT和SSDT间可能存在复杂的应用关系,独立反汇编将可能导致错误,因此建议先将aml反编译为dsl文件。
以下所有操作均需ACPI表的编译器iasl,可通过以下链接下载。
1 | https://bitbucket.org/RehabMan/acpica/downloads/ |
终端切换到iasl所在目录,输入以下命令即可。
1 | # 编译与反编译 |
DSDT
修改
DTGP方法
许多修复需要调用到该方法,放置于DSDT的前部即可。
1 | Method (DTGP, 5, NotSerialized) |
RTC修复
适用于开机时发生错误,然后重新启动的情况。该情况下BIOS会恢复为默认设置。
修改前如下。
1 | Device (RTC){ |
修改后如下。
1 | Device (RTC){ |
HPET修复
将HPET设备修改如下即可。
1 | Device (HPET) |
PIC/TIMR设备修复
删除它们中的每一条IRQNoFlags () {2}
和IRQNoFlags () {0}
语句即可。
IOATAFamily.kext内核恐慌修复
在SATA和IDE0设备的GPCT方法前添加以下代码。
1 | Field (IDCS, DWordAcc, NoLock, Preserve) |
然后在_WAK方法中的最前面添加以下代码。
1 | \_SB.PCI0.PATA._INI () |
原生AHCI支持
在GPCT方法前插入以下代码。此代码依赖DTGP方法,需提前添加DTGP方法到DSDT前部。
1 | Method (_DSM, 4, NotSerialized) |
Clamshell修复
定位到LID设备的_LID
方法并修改如下。
1 | Name (LIDS, One) |
修复UUID Error
在DSDT中搜索PCI0设备,查看_UID
的值,示例如下。
1 | Name (_UID, One) |
启动参数添加PciRoot=#
即可,其中#为_UID的值,上例为1。
让EHCI USB 2.0识别为内建
此代码依赖DTGP方法,需提前添加DTGP方法到DSDT前部。找到0x001D0007和0x001A0007两个设备,并将原来的设备名称分别更改为EHC1和EHC2。在EHC1设备下添加以下代码。
1 | Method (_DSM, 4, NotSerialized) |
在EHC2设备下添加以下代码。
1 | Method (_DSM, 4, NotSerialized) |
跳过操作系统检查
在操作系统检查功能的代码下方以及If (LGreaterEqual (_REV, 0x02))上方加入以下代码。
1 | Store (One, WNTF) |
开启亮度滑块
在Scope (_SB)
块中的_INI方法之后,需要在LNKA设备上方添加以下设备。
1 | Device (PNLF) |
用USB唤醒睡眠
适用于只可通过电源键进行睡眠唤醒的情况。
找到_WAK
方法,将Notify附近的代码修改如下。具体为将USB0-USB4修改为UHC1-UHC5,添加EHC1和EHC2,并添加Return方法。
1 | Notify (\_SB.PCI0.UHC1, Zero) |
找到Scope (_GPE)
物件,将USB0-USB4修改为UHC1-UHC5,USB1-USB2修改为EHC1-EHC2,并删除Notify (\_SB.PCI0.USB3, 0x02)
,然后在每个修改过的Notify方法后面加Notify (\_SB.PWRB, 0x02)
。
找到UHC1-UHC5和EHC1-EHC2设备,将其中_PRW
中的Package的第二个参数由0x01或One修改为0x03。
添加以下物件后,在引导器配置中修改device-id的参数即可。
1 | Method (DTGP, 5, NotSerialized) |
使用VoodooHDA但忘记删除AppleHDA修复
注释HDEF设备即可。
引导加载AC适配器驱动
在AC设备的Name (_UID, Zero)后添加以下代码。
1 | Name (_PRW, Package (0x02) |
引导加载AppleLPC
DSDT搜索0x001F0000,查看对应的设备,对于技嘉为PX40,可全部修改为LPCB或不修改。然后在该设备添加以下方法即可。
1 | Method (_DSM, 4, NotSerialized) |
其中device-id列表如下。
device-id | 型号 |
---|---|
0x02, 0x3B, 0x00, 0x00 | 5 Series/3400 Series |
0x01, 0x3B, 0x00, 0x00 | Mobile 5 Series |
0x00, 0x3B, 0x00, 0x00 | 5 Series |
0x18, 0x3A, 0x00, 0x00 | ICH10 |
0x16, 0x29, 0x00, 0x00 | ICH9R |
0x15, 0x28, 0x00, 0x00 | ICH8M |
0x11, 0x28, 0x00, 0x00 | ICH8M-E |
0xBD, 0x27, 0x00, 0x00 | ICH7M-DH |
0xB9, 0x27, 0x00, 0x00 | ICH7M |
0x70, 0x26, 0x00, 0x00 | ICH6-ESB |
引导加载显卡驱动
DSDT搜索PCI0,然后在设备内添加以下内容。
1 | Device (PEGP) |
NVCAP的内容需要先在Windows下打开NVFlash,并输入以下命令以生成ROM。
1 | nvflash -b nvidia.rom |
然后在Mac下使用NVCAP Maker打开生成的nvidia.rom,得到数字后两两分开即可,示例如下。
1 | # 处理前 |
禁用显卡
在显卡设备的_INI方法添加以下代码即可。
1 | _OFF() |
若提示未找到对象,添加外部引用即可。
引导加载声卡驱动
DSDT搜索0x001B0000,查看对应的设备,应当为AZAL。将AZAL全部修改为HDEF,然后在该设备添加以下方法即可,注意layout-id需要配合自行制作的驱动参数。
1 | Method (_DSM, 4, NotSerialized) |
设置调节风扇转速快捷键
以Fn+Home为例,该快捷键在_Q14
被定义。也可使用Fn+End,定义于_Q15
。根据需求,在快捷键的对应方法添加以下代码。
1 | # 选择其一即可 |
亮度按键映射
对于使用VoodooPS2Controller,补丁如下。注意LPCB也可能为LPC、SBRG,PS2K也可能为KBD、KBD0。
1 | into method label _Q11 replace_content |
对于使用ApplePS2SmartTouchPad,补丁如下。注意PS2K也可能为KBD、KBD0。
1 | into method label _Q11 replace_content |
加载AppleLPC
加载AppleLPC可实现原生CPU电源管理。
查看SLE下的AppleLPC.kext/Contents/Info.plist,可查看和AppleLPC匹配的设备ID。打开DSDT,搜索0x001F0000,在该设备下添加以下代码。
1 | Method (_DSM, 4, NotSerialized) |
修改后需要屏蔽IRQ。查找PNP0000,按以下代码屏蔽IRQ。
1 | Device (PIC) |
查找PNP0100,按以下代码屏蔽IRQ。
1 | Device (TMR){ |
调试
可在任意地方插入以下代码,运行时睡眠灯将会闪烁。
1 | \_SB.PCI0.LPC.EC.LED (0x07, 0x80) |
ASL
语法
ASL是ACPI所使用的语法。注意不支持非ASCII字符注释(中文注释)。
iASL补丁
单行注释用#
,每个补丁用;
分隔。补丁的语法如下。
1 | (into|into_all) (All|DefinitionBlock|Scope|Method|Device|Processor|ThermalZone) [(label|name_adr|name_hid|code_regex|code_regex_not|parent_label|parent_type|parent_adr|parent_hid) <selector>...] (insert|set_label|replace_matched|replaceall_matched|remove_matched|removeall_matched|remove_entry|replace_content|store_%8|store_%9) begin <argument> end; |
其中不同类型的函数如下。
1 | # DOM |
变量
命名
变量命名不超过四个字符,且不能以数字开头。
所有ACPI标识符都是四个字符,短名称用下划线填充。如XHC在AML二进制中表示为XHC_
,EC为EC__
,EC0为EC0_
,MEI为MEI_
。
类型
变量类型包括Integer、String、Event(事件)、Buffer(数组)、Package、Buffer Field等。定义变量时不需要显式声明其类型。
Integer
整数。定义示例如下。
1 | Name(TEST, 0) |
String
字符串。定义示例如下。
1 | Name(MSTR, "ASL") |
Package
对象集合。定义示例如下。
1 | Name (_PRW, Package (0x02) |
Buffer Field
Buffer Field的种类如下。
创建语句 | 大小 |
---|---|
CreateBitField | 1-Bit |
CreateByteField | 8-Bit |
CreateWordField | 16-Bit |
CreateDWordField | 32-Bit |
CreateQWordField | 64-Bit |
CreateField | 任意大小 |
定义示例如下。
1 | CreateBitField (AAAA, Zero, CCCC) |
赋值
1 | // 传统ASL |
作用域
Scope形成作用域,概念类似于数学中的集合{}。
引用
符号\
引用根作用域,^
(父运算符)引用上级作用域,一个^
运算符将当前作用域上移一位。
在同一目录下引用其它字段只需写相对路径,在另一设备下引用则需写绝对路径。比如对于PWBW路径\_SB.PCI0.LPCB.PWBW
,在_SB.PCI0.LPCB
下只需通过PWBW
引用,在外部则要通过\_SB.PCI0.LPCB.PWBW
引用。
根作用域
有且仅有一个根作用域,因此DSDT均为如下框架。
1 | DefinitionBlock ("xxxx", "DSDT", 0x02, "xxxx", "xxxx", xxxx){ |
xxxx参数依次表示输出文件名、OEMID、表ID、OEM版本。第三个参数根据第二个参数指定,DSDT一定是0x02。其他参数可以自由修改。
其它作用域
根作用域下有_GPE
,_PR
,_SB
,_SI
,_TZ
五个作用域,Device(xxxx)也可看做是一个作用域。不同属性的设备放在对应的作用域下。
_GPE
ACPI的事件处理。
1 | Scope (_GPE) |
_PR
处理器相关信息。不同的CPU所在的域会不同,常见的有_PR
,_SB
,SCK0
等。
1 | Scope (_PR) |
_SB
所有的设备和总线。
1 | Scope (_SB) |
_SI
系统指示灯。白苹果中无此作用域。
_TZ
热区,用于读取某些温度。
函数/方法
方法定义
自定义的函数被称为方法,用Method定义。函数最多可以传递八个参数,在函数里用Arg0-Arg7表示,不可以自定义。函数最多可以用八个局部变量,用Local0-Local7表示,无需定义,但需要初始化即必须要有一次赋值操作才能使用。
函数可以定义在Device下或者Scope下,但是不能脱离Scope定义单独的函数。参数个数如果不定义默认为零。
定义示例如下。方法名为ABCD,参数个数为2,为可序列化函数。
1 | Method (ABCD, 2, Serialized) |
单一变量函数
1 | // 定义TEST函数 |
有两个输出参数的函数
使用局部变量Local0-Local7。
1 | // 定义有两个输入参数的MADD函数 |
带返回值的函数
1 | // 实现自定义加法 |
调用方法如下。
1 | // 传统ASL |
可序列化函数
当函数声明为Serialized时,内存中仅能存在一个实例。一般应用在函数中创建一个对象。
1 | Method(TEST, Serialized) |
如果声明TEST函数如上,则运行以下代码时,若先执行Dev1的TEST,Dev2的TEST将等待Dev1中的TEST函数执行完毕后再执行。
1 | Device (Dev1) |
若声明为NotSerialized,则在其中一个Dev调用TEST的时候,另一个将调用失败,因无法同时创建同一字符串MSTR。
现有函数
赋值函数
在ASL+中可直接使用=
,传统ASL中需要用Store(A, B),表示将A存到B中,即B=A。
运算函数
传统ASL中没有运算符。在ASL+中引入了与C语言等同的+-*/=
、<<
、>>
和逻辑判断==
、!=
等。
算术运算函数
ASL+ | 传统 ASL | 中文含义 | 举例 | |
---|---|---|---|---|
+ | Add | 整数相加 | Local0 = 1 + 2 Add (1, 2, Local0) |
|
- | Subtract | 整数减法 | Local0 = 2 - 1 Subtract (2, 1, Local0) |
|
* | Multiply | 整数相乘 | Local0 = 1 * 2 Multiply (1, 2, Local0) |
|
/ | Divide | 整数除法 | Local0 = 10 / 9 Divide (10, 9, Local1(余数), Local0(结果)) |
|
% | Mod | 整数求余 | Local0 = 10 % 9 Mod (10, 9, Local0) |
|
<< | ShiftLeft | 左移 | Local0 = 1 << 20 ShiftLeft (1, 20, Local0) |
|
>> | ShiftRight | 右移 | Local0 = 0x10000 >> 4 ShiftRight (0x10000, 4, Local0) |
|
– | Decrement | 整数自减 1 | Local0– Decrement (Local0) |
|
++ | Increment | 整数自增 1 | Local0++ Increment (Local0) |
|
& | And | 整数于 | Local0 = 0x11 & 0x22 And (0x11, 0x22, Local0) |
|
| | Or | 或 | Local0 = 0x01 \ | 0x02 Or (0x01, 0x02, Local0) |
~ | Not | 取反 | Local0 = ~(0x00) Not (0x00,Local0) |
|
无 | Nor | 异或 | Nor (0x11, 0x22, Local0) |
逻辑运算函数
ASL+ | 传统 ASL | 中文含义 | 举例 |
---|---|---|---|
&& | LAnd | 逻辑与 | If (BOL1 && BOL2) If (LAnd(BOL1, BOL2)) |
! | LNot | 逻辑反 | Local0 = !0 Store (LNot(0), Local0) |
| | LOr | 逻辑或 | Local0 = (0 | 1) Store (LOR(0, 1), Local0) |
< | LLess | 逻辑小于 | Local0 = (1 < 2) Store (LLess(1, 2), Local0) |
<= | LLessEqual | 逻辑小于等于 | Local0 = (1 <= 2) Store (LLessEqual(1, 2), Local0) |
> | LGreater | 逻辑大于 | Local0 = (1 > 2) Store (LGreater(1, 2), Local0) |
>= | LGreaterEqual | 逻辑大于等于 | Local0 = (1 >= 2) Store (LGreaterEqual(1, 2), Local0) |
== | LEqual | 逻辑相等 | Local0 = (Local0 == Local1) If (LEqual(Local0, Local1)) |
!= | LNotEqual | 逻辑不等于 | Local0 = (0 != 1) Store (LNotEqual(0, 1), Local0) |
延迟函数
名称 | 含义 | 语法 | 参数 | 描述 |
---|---|---|---|---|
Sleep | 延迟 | Sleep(Source1) | 整数 | 执行被延迟至少所需的毫秒数(长期) |
Stall | 短时间停止 | Stall(Source1) | 整数 | 执行被延迟至少所需的微秒数(短期,超过100微秒的延迟必须使用Sleep而不是Stall) |
现有方法
以_
字符开头的函数和变量均为系统保留方法。
_OSI
全称为Operating System Interfaces,即操作系统接口。当系统加载时,_OSI会接收到一个参数,不同的系统接收的参数不同,ACPI执行的指令就不同,具体如下表。
操作系统 | 字符串 |
---|---|
macOS | “Darwin” |
Linux/基于Linux内核 | “Linux” |
FreeBSD | “FreeBSD” |
Windows | “Windows 20XX” |
采用操作系统补丁的作用在于修改其返回参数,或修改其参数对应的行为,从而解锁系统对某些部件的限制,通常情况下不推荐使用。示例如下。
1 | // 需要解锁限制的部件 |
ACPI还定义了OSYS,对应关系如下。
标签值 | OSYS值 | 对应系统 |
---|---|---|
Windows 2009 | 0x07D9 | Win7 |
Windows 2012 | 0x07DC | Win8 |
Windows 2013 | 0x07DD | Win8.1 |
Windows 2015 | 0x07DF | Win10 |
Windows 2016 | 0x07E0 | Win10 1607 |
Windows 2017 | 0x07E1 | Win10 1703 |
Windows 2017.2 | 0x07E1 | Win10 1709 |
Windows 2018 | 0x07E2 | Win10 1803 |
Windows 2018.2 | 0x07E2 | Win10 1809 |
Windows 2019 | 0x???? | Win10 1903 |
Win8以上才支持I2C设备。当加载macOS时,_OSI接受的参数不会被ACPI识别,OSYS被赋予了默认值。这个默认值通常小于Win8要求的值,显然I2C无法工作,故VoodooI2C通常需要采用操作系统补丁来驱动触控板。
_STA
全称为Status,即状态。用于描述设备的状态,与PowerResource的_STA不同(PowerResource的_STA只有两个返回值One和Zero)。
ACPI表中的每个设备在初始化之前,都会先执行_STA函数检测这个设备的状态,若设备存在才初始化。若没有显式定义_STA函数,默认认为这个设备存在且能正常工作。描述设备的状态主要靠_STA的返回值,它的返回值有32位,目前只有末5位有定义,如下表。是则置该位为1,否则置为0。
Bit位 | 含义 |
---|---|
0 | 设备是否存在 |
1 | 设备是否被启用且可以解码其资源 |
2 | 设备是否在UI中显示 |
3 | 设备是否正常工作 |
4 | 设备是否存在电池 |
若一个设备没有电池、可以正常工作并在系统中显示,则它的_STA返回值为二进制的01111,换成十六进制为0x0F。若一个设备不存在,返回值为00000,即十六进制下的0x00,或写成Zero。
0x0B表示设备处于半开状态,不允许解码其中的资源。0x1F只会在笔记本的电池设备中出现,多出的那个Bit用于通知电池控制设备(Control Method Battery Device,PNP0C0A)存在电池。
_CRS
全称为Current Resource Settings,即当前资源设置。_CRS函数返回一个Buffer,在触摸设备中会返回触摸设备所需的GPIO Pin/APIC Pin等。通过调整其值,可以控制设备的中断模式。
_SRS
全称为Set Resource Settings。
_CST
与CPU的C2/C4/C6/C7休眠有关。
_PCT
有关SpeedStep功能。
_PPC
控制CPU频率范围。
_PSS
一组包含可能的CPU states数组,与PLimitDict/UnderVoltStep/Turbo有关。
OperationRegion域
格式如下。
1 | OperationRegion (RegionName, RegionSpace, Offset, Length) |
各参数含义如下。
参数 | 含义 |
---|---|
RegionName | 操作区名称,可能不止一个(EC下的通常为ERAM、ECF2、ECF3、ECOR等) |
RegionSpace | 操作空间/作用域(通常EC使用的作用域都是EmbeddedControl,但某些厂商选择将EC数据映射到系统内存中,则作用域为SystemMemory) |
Offset | 作用域内每个Field的起始偏移量(EC作用域的起始偏移量通常为Zero,而系统内存作用域中用于映射EC数据的起始偏移量值由厂商决定) |
Length | 作用域内每个Field的最大长度 |
Field域
格式
格式如下。
1 | Field (RegionName, AccessType, LockRule, UpdateRule) {FieldUnitList} |
各参数含义如下。
参数 | 含义 |
---|---|
RegionName | 对应OperationRegion的操作区名称 |
AccessType | 访问类型(EmbeddedControl只能是ByteAcc,代表按字节访问,因此偏移量是以字节来计算的,即每8位进1) |
LockRule | 锁定规则,与多线程相关,通常为NoLock |
UpdateRule | 更新规则,用来指定如何处理未产生改动的映射区域,通常为Preserve,即维持原值 |
FieldUnitList | 字段单元列表,即寄存器列表 |
偏移量计算
以以下代码为例。
1 | // SMBus I/O and Memory Mapped I/O Registers |
从以上代码,可知SMB_BASE=0x4000。故HSTS的地址为(4000+00)h,HCON的地址为(4000+02)h,HCOM的地址为(4000+03)h。注意后面数字为8时表示8bit,即一个字节,因此下一个变量的地址为上一个变量的地址加一。
Package()
对于以下代码,0x03表示参数个数。
1 | Name (_PSS, Package(0x03)){ |
Buffer()
对于以下代码,0x07表示字符串长度,注意为字符数+空格数+1。
1 | Buffer (0x07){ |
嵌入式控制器
即EmbeddedControl,该ACPI设备下通常具备电池、光线传感器、加速度传感器、EC Query方法映射等定义。
睡眠相关
PNP0C0E(睡眠按钮)、PNP0C0D(笔记本盖子)、_PTS
(睡眠前执行)、_WAK(唤醒后执行)。
设备
I2C总线
通常具备触摸设备及人体学输入设备相关传感器(如指纹传感器)定义。
电池
在电池ACPI代码中,通常具备以下方法。电池驱动主要是通过操作_BIF和_BST这两个方法分别获取电池信息和电池状态。
在DSDT中搜索PNP0C0A(电池的_HID)即可找到电池设备的位置。
方法 | 作用 |
---|---|
_BIF | Battery Information,获取电池基本信息,包括设计容量、电池代号、序列号、电池类型、OEM信息等 |
_BIX | Battery Information Extended,_BIF 的拓展方法,电池驱动通常优先使用_BIX 方法获取电池信息 |
_BST | Battery Status,获取电池实时状态,返回电池充电状态、剩余容量百分比和数值以及当前电池电压 |
_BIP | Battery Trip Point,设置电池低电量触发值,大部分电池不支持此功能,这种情况下系统会轮询_BST 中的剩余电量来判断是否处于警戒水平 |
EC设备
即Embedded Controller,在主板和嵌入式外围设备(如热键、端口或电池)之间进行通信。
在DSDT中搜索PNP0C09(EC的_HID)即可找到EC设备的位置。定义代码如下。
不同机器的EC名称不一样,常见的为EC、EC0、H_EC,戴尔机器通常使用ECDV,华为通常使用HWEC。
1 | Scope (_SB.PCI0.LPCB) |
设备名称对应关系
设备名称 | 所在地址 | 代表装置 | 作用 | 常用命名 | 备注 |
---|---|---|---|---|---|
PEGP | 10000 | PCI Express Root Port | 显示卡 | PEGP/IOU0/IOU1/IOU2/NRP1/NRP5/P0P9 | 关于显示的装置都会出现该项目,如GFX0/LCD/VGA/TV/PXS1 |
HDEF | 1B0000 | HD Audio Controller | 声卡 | HDEF | |
PEX0-PEX5 | 1C0000-1C0005 | PCI Express Port 1-PCI Express Port 6 | 内建有线/无线网卡、FireWire、JmicronATA、JmicronSATA | RP01-RP06 | 在LAN/GIGE/ETH/ARPT/FRWR出现 |
USB0-USB6、US31 | 1A0001-1A0002、1D0001-1D0002 | USB UHCI Controller 1-USB UHCI Controller 6 | USB | UHC1-UHC6 | |
USBE、USE2 | 1A0007、1D0007 | USB2 EHCI Controller 1、USB2 EHCI Controller 2 | 高速USB | EHC1-EHC2 | |
HUB0 | 1E0000 | PCI Bridge | FireWire | PCIB | 在FRWR出现 |
PX40 | 1F0000 | LPC Interface Controller | 并行埠、串列埠、键盘、滑鼠、软碟机等低速设备管理装置 | LPCB | 在HPET/RTC等出现 |
IDE0 | 1F0001 | IDE Controller | IDE控制器(光驱) | PATA | 较新主板无该设备 |
IDE1 | 1F0002 | SATA AHCI Controller | SATA(AHCI) | SATA | |
IDE2 | 1F0005 | SATA RAID Controller | / | / | 苹果不支持Intel RAID,所以没有这个项目 |
PX43 | 1F0003 | SMBus Controller | System Management Bus Controller,控制主板上的装置并收集相应的讯息 | SBUS | |
APIC | Advanced Programmable Interrupt Controller | ACPI控制器 | |||
MCHC | Memory Controller Hub | 内存控制器 |
流程控制
以下均以ASL+举例。
If-ElseIf-Else
1 | If (_OSI ("Darwin")) |
Switch-Case-Default-BreakPoint
BreakPoint相当于断点,意为退出当前Switch。
1 | Switch(Arg2) |
While
1 | Local0 = 10 |
For
1 | for (local0 = 0, local0 < 8, local0++) |
存在性判断
CondRefOf可以用来判断所有类型Object的存在与否。
1 | Method (SSCN, 0, NotSerialized) |
编译错误与警告
(from opcode)
编译完成后在文件内的某些行会有此该提示,一般位于以下位置,表明名称已在作用域中,其外部声明是多余/不必要的。可直接注释掉此行。
1 | External (DTS1, FieldUnitObj) // (from opcode) |
only 0 was resolved (2 unresolved)
在编译完成后,文件内可能会有以下注释,主要含义为方法名称未定义。由于某些方法在Windows而不在ACPI表被定义,因此该警告可忽略。
1 | /* There were 2 external control methods found during |
illegal open scope on external object from within dsdt
CondRefOf函数导致,该函数用于确认该项存在。删除整个CondRefOf块即可。
Pass 1 parse of [DSDT]
DSDT/SSDT中的方法不受MaciASL支持,更新MaciASL即可。
Invalid character (0x3D), expecting ASL keyword or name
DSDT/SSDT中的方法不受MaciASL支持,更新MaciASL即可。
Syntax error, unexpected PARSEOP_ONE, expecting ‘(‘
DSDT/SSDT中的方法不受MaciASL支持,更新MaciASL即可。
错误示例
syntax error, unexpected PARSEOP_ARG0
错误代码如下。
1 | Method (ADBG, 1, Serialized) |
修正后代码如下。
1 | Method (ADBG, 1, Serialized) |
syntax error, unexpected PARSEOP_ZERO
删除全部的Zero即可。
syntax error, unexpected PARSEOP_FIELD
错误代码如下。
1 | OperationRegion (HRPE, SystemMemory, \_GPE.MMTB (0x04), Field (HRPE, DWordAcc, Lock, Preserve)){ |
修改如下。
1 | OperationRegion (HRPE, SystemMemory, \_GPE.MMTB, 0x04) |
Min/Max/Length/Gran are all zero,but no resource tag
错误代码如下。
1 | IO(Decode16, |
修正后代码如下。
1 | IO(Decode16, |
syntax error, unexpected PARSEOP_NAMESEG,expecting’(’
找到如下代码并删除即可。
1 | MUID |
Name already exists in scope(IGDS)
删除多余的外部引用语句即可。
Not a control method, cannot invoke (W008 is a BufferField)
错误代码如下。
1 | Store (^^PCI0.LPCB.EC.FBF2, W008 (Store (0x03, ^^PCI0.LPCB.EC.FDAT), Store (0xC0, ^^PCI0.LPCB.EC.FCMD))) |
修正后代码如下。
1 | Store (^^PCI0.LPCB.EC.FBF2, W008) |
ResourceTag larger than Field (Tag: 64 bits, Field: 32 bits)
错误代码如下。
1 | CreateDWordField (BUF0, _SB.PCI0._Y0F._LEN, MSLN) |
修正后代码如下。
1 | CreateQWordField (BUF0, _SB.PCI0._Y0F._LEN, MSLN) |
Warning ResourceTag larger than Field (Tag: 16 bits, Field: 8 bits)
错误代码如下。
1 | CreateByteField (BUF0, _SB.PCI0.LPCB.N393.LPT1._CRS._Y16._MIN, IOL0) |
修正后代码如下。
1 | CreateWordField (BUF0, _SB.PCI0.LPCB.N393.LPT1._CRS._Y16._MIN, IOL0) |
ResourceTag larger than Field (Tag: 64 bits, Field: 32 bits)
错误代码如下。
1 | CreateDWordField (BUF0, _SB.PCI0._Y0F._LEN, MSLN) |
修正后代码如下。
1 | CreateQWordField (BUF0, _SB.PCI0._Y0F._LEN, MSLN) |
ResourceTag larger than Field(Tag:64its,Field:32bits), Remark Effective AML package length is zero
错误代码如下。
1 | Package (0x00) {} |
修正后代码如下。
1 | Package (0xFF) {} |
Result is not used, possible operator timeout will be missed
错误代码如下。
1 | Acquire (MUT0, 0x0FFF) |
修正后代码如下。
1 | Acquire (MUT0, 0xFFFF) |
Possible operator timeout is ignored
错误代码如下。
1 | Acquire (MUT0, 0x0FFF) |
修正后代码如下。
1 | Acquire (MUT0, 0xFFFF) |
syntax error, unexpected PARSEOP_PACKAGE
错误代码如下。
1 | Package (0x06) |
删除错误行之后一直到下一个NAME之前的内容即可。
_REG has no corresponding Operation Region
错误代码如下。
1 | Method (_REG, 2, NotSerialized) |
删除_REG之前的短横即可。
Remark Use of compiler reserved name (_T_0)
错误代码如下。
1 | Name (_T_0, Zero) |
将_T前边的短横删除,或者改为T0_0即可。若后边是其他数2,3等等,那么相应改为T2_2,T3_3。
Unknown reserved name (_VPC)
错误代码如下。
1 | Name (_VPC, Zero) |
VPC即Virtual power control。搜索VPC,可以看到大部分的VPC之前都没有短横,所以删除所有搜索到的带短横的VPC之前的短横。
not a control method : PS0X()
删除 PS0X(),修改为 Return (PS0X)。
Unknown reserved name (_CFG)
若_CFG
指向Method (_CFG, 0, NotSerialized)
,则删除CFG之前的短横即可。
Not all control paths return a value (WQAA)
错误代码如下。
1 | Method (WQAA, 1, NotSerialized) |
修正后代码如下。
1 | Method (WQAA, 1, NotSerialized) |
Reserved method should not return a value (_PDC)
错误代码如下。
1 | Method (_PDC, 1, NotSerialized) |
修正后代码如下。
1 | Method (_PDC, 1, NotSerialized) |
Statement is unreachable
错误代码如下。
1 | Method (_PRW, 0, NotSerialized) |
修正后代码如下。
1 | Method (_PRW, 0, NotSerialized) |
syntax error, unexpected PARSEOP_IF, expecting PARSEOP_CLOSE_PAREN or ‘,’
错误代码如下。
1 | If (LEqual (PM6H, One)) |
修正后代码如下。
1 | If (LEqual (PM6H, One)) |
Invalid combination of length and Min/Max fixed flags
把0x0000, // Length
改成0x0001, // Length
即可修复错误。若为其它数值,注意需要转换为十六进制。
Control Method should be made Serialized(due to creation of named objects within)
错误代码如下。
1 | Method (UXDV, 1, NotSerialized) |
修正后代码如下。
1 | Method (UXDV, 1, Serialized) |
Error _HID suffix must be all hex digits (GH)
错误代码如下。
1 | Name (_HID, "ABCDEFGH") |
将GH改为01即可。
Result is not used, operator has no effect
错误代码如下。
1 | Add (Local0, 0x02) |
修正后代码如下。
1 | Add (Local0, 0x02, Local0) |
Not all control paths return a value (_CRS), Reserved method must return a value (Buffer required for _CRS)
错误代码如下。
1 | Method (_CRS, 0, NotSerialized) |
修正后代码如下。
1 | Method (RES, 0, NotSerialized) |
版本差异
iASL编译器有4.0、5.0、6.3等版本。其中4.0与5.0为旧版,6.3为新版。对于Snow Leopard及更早的系统,需要用旧版iASL编译,新版iASL编译会在系统启动时卡ACPI的panic。将DSDT从iASL 6.3改为iASL 4.0/5.0后,可能会出现编译错误。
对于找不到对象的错误,主要是因为ACPI 6.3允许后定义,ACPI 4.0/5.0则必须采用先定义的方式。解决方法为调整定义语句到调用语句之前,以及调换If语句的位置。
对于没有
I2cSerialBus/I2cSerialBusV2函数的错误,ACPI 4.0中并没有这两个函数,而ACPI 5.0中为I2CSerialBus函数。ACPI 4.0不支持I2C,只支持I2C的子集SMBus。解决方法为ACPI 5.0编译,并删除I2cSerialBusV2函数和Exclusive,
。
具体示例如下。
例一
1 | Scope (_SB.PCI0) |
使用ACPI 6编译时无错误,使用ACPI 4编译时出现以下错误。
1 | 21694, 4096, syntax error, unexpected PARSEOP_IF |
主要修改方式为将If语句写到I2C1设备之外。修改如下。
1 | Scope (_SB.PCI0) |
例二
1 | Name (SBFB, ResourceTemplate () |
使用ACPI 6编译时无错误,使用ACPI 4编译时出现以下错误。
1 | 22479, 4096, syntax error, unexpected PARSEOP_NAMESEG |
由于ACPI 4不支持I2cSerialBus和I2cSerialBusV2,因此需要直接删除。
例三
1 | Name (SBFI, ResourceTemplate () |
不可使用ACPI 4,需要使用ACPI 5。使用ACPI 5编译即无错误。
例四
1 | Name (SBFG, ResourceTemplate () |
使用ACPI 5,更正如下。
1 | Name (SBFG, ResourceTemplate () |
ACPIDebug
ACPIDebug可用于高级人员排错,也可记录部分按键轨迹。
驱动
ACPIDebug.kext下载链接如下。
1 | https://bitbucket.org/RehabMan/os-x-acpi-debug/downloads/ |
下载后放入SLE中,用Kext Utility修复权限。
然后需要对DSDT进行修改。用MaciASL打开DSDT,点击Patch,在_OS-X-ACPI-Debug
类别下打Add DSDT Debug Methods
和Instrument EC Queries
这两个补丁,退出并保存即可。
也可通过SSDT实现。放置以下SSDT即可。
SSDT-RMDT.aml如下。
1 | // for use with ACPIDebug |
SSDT-TEST.aml,以Dell为例。注意需要重命名。
1 | // In config ACPI, NEVT to XEVT |
使用
重启后在Launchpad找到控制台,在搜索框输入ACPIDebug,然后按下键盘Fn+F5/F6。若控制台中出现信息,则ACPIDebug驱动成功。
Maciasl相关
版本区别
Rebabman版的Maciasl和原版的区别主要在于部分错误被改为了警告,具体如下。
1 | 'Illegal method invocation as target operand' (6126->3126) |
系统升级
以下均在Mojave的基础上进行。
基本知识
一般的小版本更新,如10.15.2升级10.15.3,可以直接在系统内升级。在「系统偏好设置」或「关于本机」中进去系统更新检查。当进度条走完后点击重启,在 Clover 引导界面会出现 Boot macOS install from xxxxx ,方向键选中并按空格,勾选 Verbose(-v) 和 nv_disable=1 后再启动。跑完日志和进度条后会开始升级、自动重启,如果重启后 Clover 中的 Boot macOS install from xxxxx 没有消失则重复上述操作(一般系统更新也需要二次安装)。升级成功后 Clover 引导界面下的 Boot macOS install from xxxxx 会消失。选择 Boot macOS install from xxxxx 进入系统即可。
Catalina
下载
在黑果小兵的部落阁下载即可。
在Mac下也可通过以下链接,通过App Store下载。
1 | https://apps.apple.com/cn/app/macos-catalina/id1466841314?mt=12 |
也可通过以下链接。
1 | 链接 / https://cloud.189.cn/t/UFNFvauUVjua |
安装盘制作
若获得的是系统app安装包,则将其移动到应用程序文件夹后,可通过以下命令制作安装盘。注意MyVolume为USB磁盘名称。
1 | sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume |
必要配置
配置EC
升级Catalina需要将EC控制器名称改为EC,否则系统启动崩溃。
对于台式机
如果为台式机,可直接禁用EC。
通过阻止AppleACPIEC
以OpenCore为例,在config.pilst中进入Kernel/Block,添加以下内容即可。
选项 | 内容 |
---|---|
Enabled | True |
Indentifier | com.apple.driver.AppleACPIEC |
通过SSDT
可通过脚本自动添加。下载SSDTTime,解压后运行SSDTTime.command,选择Fake EC并拖拽DSDT文件以自动生成SSDT,放于引导器的ACPI部分即可。
也可手动添加。将以下代码复制到MaciASL中,将EC0改为对应的EC名称,另存为SSDT-no-EC.aml,放于引导器的ACPI部分即可。
1 | DefinitionBlock ("", "SSDT", 2, "ACDT", "SsdtnoEC", 0x00001000) |
对于笔记本
由于笔记本有电池,不能禁用EC。
打开系统DSDT,搜索PNP0C09,查看对应的EC名称。若不止一个,则需要判断此EC是否被屏蔽,主要看其_STA方法是否存在Return (Zero),若存在,则说明此设备被禁用。如本机对应两个EC名称H_EC和EC0,但只有EC0未被屏蔽,则只需对EC0进行改名。
更名补丁示例如下,注意EC0需改成自己对应的EC设备名。
1 | Comment: Rename EC0 to EC |
更新kexts
将要用到的kexts更新到最新版本。本机在未更新Lilu和Whatevergreen的情况下显卡出现GFX Firmware问题。
系统使用
解锁系统分区
Catalina的系统分区被锁定,无法直接修改系统盘内的文件。进行SLE路径的驱动安装等操作需要解锁。
通过终端
1 | sudo su |
通过自动执行脚本
打开系统的自动操作
程序,选择应用程序-运行Shell脚本,修改Shell为/bin/bash并将以下脚本粘贴进去,保存为unlockSystem.app。
1 | #! /bin/bash |
打开偏好设置-用户与群组,在登录项中将unlockSystem.app添加到启动项并勾选隐藏即可。
通过plist
将以下内容保存为CatalinaAutoMountWritable.plist,并放在系统盘的Library/LaunchDaemons即可。
1 | <?xml version="1.0" encoding="UTF-8"?> |
解锁Sidebar
部分机型不支持Sidebar,可通过修改机型或在终端输入以下命令解锁。
1 | // 绕过SMBIOS限制 |
Big Sur
支持的SMBIOS如下。
1 | iMac14,4及更新 |
特性
即使关闭SIP,root用户依然无法挂载根目录为读写。这意味着直接修改System文件夹内的文件需要到Recovery模式下的终端修改。
因此,单用户模式下不能再加载launchd服务,也不能通过调用OpenDirectory服务修改root密码和管理员密码。
1 | launchctl load /S*/L*/LaunchDaemons/com.apple.opendirectory.plist |
launchctl在单用户模式加载的服务会自动停止运行,同时屏幕显示service only ran for 5 seconds,无法在单用户模式找回管理员密码。
同时,单用户模式中加载kext的kextload命令也失去了效果,被/usr/bin/kmutil接替,不允许绕过系统安全性设置来加载kext,这意味着root用户不能通过终端加载kext。
同时,AppleIntelInfo.kext已经无法用于获取当前CPU状态。
对于AirportBrcmFixup,可能需要使用brcmfx-driver=
参数以强制加载驱动,如BCM94352Z用户可能需要使用brcmfx-driver=2。同时需要阻止AirPortBrcm4360_Injector.kext加载,可将其MaxKernel设置为19.9.9。
下载
在黑果小兵的部落阁下载即可。
在Mac下也可通过以下链接,通过App Store下载。
1 | https://apps.apple.com/cn/app/macos-big-sur/id1526878132?mt=12 |
安装盘制作
若获得的是系统app安装包,则将其移动到应用程序文件夹后,可通过以下命令制作安装盘。注意MyVolume为USB磁盘名称。
1 | sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume |
【进阶】安装在旧版实体Mac机器上
支持Catalina的实体Mac中部分不支持Big Sur,但可以通过制作安装盘并修改安装盘必要内容的方式顺利安装。
对于Mac Mini 2012和其它支持Catalina的设备,可下载以下补丁并解压。
1 | https://github.com/barrykn/big-sur-micropatcher |
在终端以管理员身份运行micropatcher.sh,选择制作好的安装盘进行修补。如果找不到安装盘,在运行时可将安装盘路径附加到后面,如下。
1 | ./micropatcher.sh [安装盘路径,如/Volumes/ABC] |
同理以管理员身份运行install-setvars.sh。对于2013年末的iMac,该脚本将启用SIP和ARV(Authenticated Root Volume,经过身份验证的根卷)。
注意,若希望显示详细日志,可在其后添加参数-v
。若希望强制禁用SIP和ARV,可在其后添加参数-d
。若希望强制启用,则可添加参数-e
。
修补完成后,将安装盘插入到Mac机器,重启并按住Option,然后选择安装盘即可。
若安装完成后出现panic,则按Command+Q,机器将重新启动。重新进入安装盘,打开终端并输入以下命令以安装WiFi补丁。
若希望尝试不同的WiFi补丁,可在脚本后添加参数–wifi=hv12v-old。若需要设置重写或不重写快照,可添加参数–create-snapshot或–no-create-snapshot。
1 | # Image\ Volume为安装盘名称 |
还可通过zap-snapshots.sh删除除最新快照外的所有快照,命令如下。
1 | /Volumes/Image\ Volume/zap-snapshots.sh /Volumes/Macintosh\ HD |
必要配置
除以下列出的项目外,其它与Catalina基本一致。
硬盘驱动
对于OpenCore引导,可能需要CtlnaAHCIPort,否则无法正常识别SATA硬盘。Clover引导不需要该kext。
建议将CtlnaAHCIPort.kext的MinKernel值设置为20.0.0,以避免任何潜在的冲突。
1 | https://github.com/dortania/OpenCore-Install-Guide/blob/master/extra-files/CtlnaAHCIPort.kext.zip |
【进阶】原因
Apple从AppleAHCIPort.kext中删除了AppleIntelPchSeriesAHCI类。
引导器修改
Big Sur需要Clover版本至少为5120,且需要使用OcQuirks作为内存管理驱动。
需要额外添加的启动参数如下。
1 | // DW1820A/DW1560/DW1830等博通网卡可能还需要添加brcmfx-aspm |
安装重启后的第二阶段,如果直接从安装盘启动,会一直循环com.apple.xpc.launchd[1]。这时需要在CLOVER主引导界面按F3,选择Preboot以继续完成安装。
注意部分指南会指出不应使用NoTouchID.kext,但使用该kext能大大提升系统速度,因此还是推荐使用。
OpenCore基本与Clover一致。
系统使用
注意不要用Karbiner,不要开启Airdrop有线传输。
禁用SIP
对于OpenCore,打开config.plist,进入NVRAM-add-7C436110-AB2A-4BBB-A880-FE41995C9F82,并修改csr-active-config为FF0F0000,然后进入NVRAM-block-7C436110-AB2A-4BBB-A880-FE41995C9F82,添加csr-active-config
一项。
然后进入系统恢复模式,输入以下命令后重启。
1 | csrutil disable |
重建kexts缓存
Big Sur重建缓存的命令有所变化,如下。
1 | sudo chown -R root:wheel ~/livemount/System/Library/Extensions/ |
修改系统文件
Big Sur从快照启动,通过sudo mount -uw /
挂载系统分区时会出现failed with 66的错误。
需要通过挂载系统分区,修改分区内容后新建系统分区快照,并指定启动时使用该快照,达到修改系统文件的目的。
注意,由于此方法会使快照的状态变为broken,所以只适用于OpenCore引导,并设置SecureBootModel为Disabled。若使用Clover引导或未设置SecureBootModel,则会启动到恢复模式。
确保禁用SIP后,打开终端并输入以下命令。
1 | mkdir ~/livemount |
前往用户目录,即可看到挂载的系统分区。在该目录下进行系统修改操作。完成后回到终端并输入以下命令,以创建新的快照。
1 | sudo bless --folder ~/livemount/System/Library/CoreServices --bootefi --create-snapshot |
其它方法
确保禁用SIP后,进入恢复模式,打开终端并输入以下命令。
1 | diskutil list |
安装kext到SLE
确保禁用SIP后,打开终端并输入以下命令。
1 | sudo kcditto |
记录Volume Group UUID和Preboot disk。然后进入恢复模式,打开终端并输入以下命令。
1 | diskutil mount /Volumes/[系统分区名称] |
命令执行完成后可通过终端完成文件移动操作。以安装IO80211Family为例,命令如下。
1 | cd /Volumes/[系统分区名称]/System/Library/Extension |
完成后需要重建内核缓存,命令如下。
1 | kmutil install --update-all --volume-root /Volumes/[系统分区名称] |
继续执行以下命令以新建快照。
1 | /System/Library/Filesystems/apfs.fs/Contents/Resources/apfs_systemsnapshot -s "After" -v /Volumes/[系统分区名称] |
然后需要将更新后的BootKernelExtensions复制到Preboot分区。输入以下命令。
1 | diskutil mount /dev/[前面记录的Preboot disk] |
完成后重启即可。若失败,则进入恢复模式或引导到USB安装器,打开终端并输入以下命令,重启即可。
1 | /System/Library/Filesystems/apfs.fs/Contents/Resources/apfs_systemsnapshot -r "Before" -v /Volumes/[系统分区名称] |
常用命令
重建内核缓存
1 | kmutil install --update-all --volume-root /Volumes/[系统分区名称] |
特殊安装方法
可通过VMWare在实体机上进行安装。需要本机同时安装有旧版Mac和Windows。
在Mac下打开磁盘工具,并分出一个新的APFS容器,建议分60G以上。打开VMWare Fusion并创建自定虚拟机,系统选择macOS的任意版本,选择新建虚拟磁盘。新建完成后调整内存大小,尽量调大以防止安装时卡住。
下载Paragon VMDK Mounter并激活,激活码如下。
1 | VMDK-MOUNTER-2014-434979472,51537-43450-1B2D9-8213A |
用Paragon VMDK Mounter打开新建的虚拟机,挂载刚创建的分区。若出现VDM API Error错误,则在系统偏好设置-安全性与隐私-通用中允许软件载入。
打开磁盘工具,将挂载好的VMDK外置磁盘格式化为macOS扩展(日志式)
,名称为Big Sur Installer
。完成格式化后将Big Sur安装包复制到应用程序,然后打开终端并输入以下命令以将安装包写入VDMK磁盘。
1 | sudo /Applications/Install\ macOS\ Big\ Sur\ Beta.app/Contents/Resources/createinstallmedia --volume /Volumes/Big\ Sur\ Installer |
完成后在磁盘工具卸载VMDK磁盘,打开虚拟机检查是否能正常进入安装界面,若没有问题则直接关机。
将创建好的虚拟机复制到Windows,安装VMWare Workstation Pro并激活,双击虚拟机中的VMX文件以导入。打开VMX文件并添加以下内容,其中SMBIOS的应当用新的内容替换。
1 | board-id.reflectHost = "FALSE" |
打开VMWare macOS补丁Unblocker 302中的win-install,注意需要以管理员模式运行。进入VMWare Workstation Pro并选择刚才的虚拟机,点击编辑虚拟机设置,选择添加-硬盘-SATA-使用物理磁盘,设备选择之前在Mac下分出的APFS容器对应的设备,选择使用单个分区,然后根据分区大小选择对应的APFS容器。
开启虚拟机并完成安装,然后重启电脑即可通过OpenCore进入系统。
常见问题
启动过程
卡AppleACPICPU/x86Platform plugin
继续等待较长时间即可。在引导器的ACPI部分加入OC-little包X86注入部分的SSDT-PLUG即可修复。
卡Forcing CS_RUNTIME for entitlement
安装程序仍在运行,等待即可。
卡disk1s1 is locked
继续等待即可。
卡PCI Configuration Begins
一般出现在X99/X299主板,主要为RTC设备问题。可使用以下SSDT补丁解决。
1 | https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/Source/SSDT-RTC0-RANGE.dsl |
卡ramrod(^^^^^^^^^^^^^)
SMC错误。更新最新的VirtualSMC和Lilu,并添加vsmcgen=1启动参数。若无效,可切换为Rehabman的FakeSMC。
卡waiting for root device
有可能是因为没有放VoodooI2C.kext,导致卡在IOUSBDevice。注意放置VoodooI2C.kext后,需要禁用其中的VoodooInput.kext.dYSM和VoodooInput.kext,因为VoodooI2C与VoodooPS2都有VoodooInput,两者会发生冲突。
出现Couldn’t alloc class “AppleIntelPchSeriesAHCI”
添加启动参数smcgen=1。
内核错误
Rooting from the live fs of a sealed volume is not allowed on a release build
修改系统快照导致。
对于OpenCore,更新至0.6.4或更新即可,也可通过设置SecretBootModel为Disabled以解决。对于Clover,由于无法设置SecretBootModel,需要恢复为未修改的快照。
注意,快照没有被破坏时,SecureBootModel可以设为Default。
可打开终端并输入以下命令以判断快照情况。若返回Snapshot Sealed为Yes,则未被修改。若为Broken,则快照被修改,可进入恢复模式,通过时间恢复机器回滚到以前的快照,或重新安装。
1 | diskutil apfs list |
cannot perform kext scan
加载了多个VoodooInput。VoodooI2C和VoodooPS2都有VoodooInput,两者只能启用一个。
IOPCIFamily
一般出现在X79/X99主板,主要由于在ACPI中启用了未使用的非核心PCI桥接器导致。可使用以下SSDT补丁解决。
1 | https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/Source/SSDT-UNC.dsl |
max_cpus_from_firmware not yet initialized
确保OpenCore版本为0.6.0以上,并启用AvoidRuntimeDefrag这一Quirk。
在配置文件的Kernel-Patch添加以下补丁可能会有用,注意需将BB804000000C3中的04替换为硬件支持的CPU线程数。
选项 | 值 |
---|---|
Base | _acpi_count_enabled_logical_processors |
Count | 1 |
Enabled | True |
Find | |
Identifier | Kernel |
Limit | 0 |
Mask | |
MaxKernel | |
MinKernel | 20.0.0 |
Replace | B804000000C3 |
ReplaceMask | |
Skip | 0 |
系统运行
设备属性注入失败
打开IORegistryExplorer并切换到对应设备,查看acpi-path属性是否存在。若不存在,则需要创建一个提供完整路径的SSDT,因为可能有一个未记录在ACPI表中的PCI桥接器。示例如下。
1 | https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/Source/SSDT-BRG0.dsl |
基于HID的键盘/鼠标失效
在配置文件的Kernel-Patch添加以下补丁。
选项 | 值 |
---|---|
Base | _isSingleUser |
Count | 1 |
Enabled | True |
Find | |
Identifier | com.apple.iokit.IOHIDFamily |
Limit | 0 |
Mask | |
MaxKernel | |
MinKernel | 20.0.0 |
Replace | B801000000C3 |
ReplaceMask | |
Skip | 0 |
DRM视频解码黑屏
可尝试添加启动参数shikigva=80
。
状态栏卡顿
找不到wifi设备造成。使用USB网卡或无网卡时,需要删除WiFiAgent启动项,在终端运行以下命令即可。
1 | mount -o rw / |
无法升级到更新的Big Sur版本
可能是Update Utility损坏,常见于Beta更新。在终端输入以下命令即可。
1 | # Unenroll from beta catalog |
完成后可通过以下命令进行软件更新。
1 | # List software updates via terminal |
若问题仍存在,可能是快照损坏。在终端输入以下命令以判断。
1 | # List all APFS volumes |
若结果为Snapshot Sealed: Broken
,则需要将OpenCore更新至0.6.4或更新,然后回滚系统快照。进入恢复模式后选择Restore From Time Machine Backup即可。
系统降级
以下均在Mojave的基础上进行。
注意Lilu及插件(包括VirtualSMC)需要Mountain Lion及更高版本才可运行。VirtualSMC需要Snow Leopard及更高版本,较低版本可使用FakeSMC。AppleALC需要Mountain Lion及更高版本才可运行,较低版本可使用VoodooHDA(10.6+)或VoodooHDA-FAT(10.5,32位CPU)。下载链接如下。
1 | # VoodooHDA-FAT |
Snow Leopard及更低版本在使用OpenCore引导时需要启用RebuildAppleMemoryMap,以解决早期内核问题。Snow Leopard及更低版本仅支持iASL 4/5编译的DSDT/SSDT,不支持iASL 6。
High Sierra
下载
在黑果小兵的部落阁下载即可。此处使用10.13.6,使用10.13可能会出现OSInstall.mpkg似乎已缺失或已损坏
的问题。
在Mac下也可通过以下链接,通过App Store下载。
1 | https://apps.apple.com/cn/app/macos-high-sierra/id1246284741?mt=12 |
也可通过以下链接下载。
1 | 链接 / https://cloud.189.cn/t/2Iruua6B73Yj |
安装盘制作
若获得的是系统app安装包,则将其移动到应用程序文件夹后,可通过以下命令制作安装盘。注意MyVolume为USB磁盘名称。
1 | sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume |
【进阶】在Windows下制作的其它方法
也适用于Mojave。
下载以下内容并放置到名为SharedSupport的新建文件夹中。
1 | # High Sierra |
下载完成后将InstallESDDmg.pkg重命名为InstallESD.dmg。用记事本打开InstallInfo.plist,删除InstallESD的chunklistURL和chunklistid键,同时将InstallESDDmg.pkg重命名为InstallESD.dmg。
打开BDU,选择用于制作安装盘的USB,点击Options,Source选择DL,将自动从网络下载最新版的Clover。Boot records选择Clover,分区格式选择FAT32-LBA,点击Refresh。
点击Tools-Extract HFS(HFS+) partition from DMG-files,选择BaseSystem.dmg,提取得到4.hfs。点击USB的第二个分区,选择Restore Partition,来源为刚才的4.hfs。
完成后通过Paragon Partition Manager Free将第二个分区的大小调整至足够大。然后打开TransMac,切换到刚才的HFS分区,进入Install macOS High Sierra.app/Contents,右侧点击Copy Here,来源选择刚才准备的SharedSupport文件夹。
若无法使用Paragon Partition Manager或TransMac,也可先尝试通过该USB引导。若成功进入安装程序,则可打开终端并通过以下命令复制必要的文件并开始安装。
1 | # 复制文件 |
也可使用startosinstall.command脚本执行以上步骤,下载链接如下。解压后放置到安装盘根目录。
1 | https://www.insanelymac.com/applications/core/interface/file/attachment.php?id=273769 |
在终端运行以下命令即可。
1 | cd "/Volumes/Macintosh HD" |
必要配置
时间设置
从U盘启动后,安装向导会提示安装包破损,其原因是苹果对安装包的签名已经过期。保持断网,在安装向导菜单栏点击实用工具-终端,输入以下命令即可。
1 | date 0201010116 |
引导器修改
可使用原来的引导,将SMBIOS改为MacBook Pro14,2即可。注意csrconfig应为0x67。
驱动修补
无需任何修改。
Sierra
下载
在黑果小兵的部落阁下载即可。此处使用10.12.6,这是Whatevergreen支持的Kaby Lake架构下的最旧版本。
也可通过以下链接下载。
1 | 链接 / https://cloud.189.cn/t/BBJ3EnMvQZJr |
也可下载Apple官方镜像,如下。
1 | http://updates-http.cdn-apple.com/2019/cert/061-39476-20191023-48f365f4-0015-4c41-9f44-39d3d2aca067/InstallOS.dmg |
Apple官方镜像可能需要手动提取安装包。挂载dmg后,打开终端并输入以下命令。
1 | cd ~/Desktop |
安装盘制作
若获得的是系统app安装包,则将其移动到应用程序文件夹后,可通过以下命令制作安装盘。注意MyVolume为USB磁盘名称。
1 | sudo /Applications/Install\ macOS\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume |
必要配置
时间设置
在安装向导菜单栏点击实用工具-终端,输入以下命令即可。
1 | date 100123452015 |
引导器修改
与High Sierra一致。
驱动修补
与High Sierra一致。
El Capitan
下载
10.11.6下载链接如下。
1 | # 其它 |
也可下载Apple官方镜像,如下。
1 | http://updates-http.cdn-apple.com/2019/cert/061-41424-20191024-218af9ec-cf50-4516-9011-228c78eda3d2/InstallMacOSX.dmg |
Apple官方镜像可能需要手动提取安装包。挂载dmg后,打开终端并输入以下命令。
1 | cd ~/Desktop |
安装盘制作
若获得的是系统app安装包,则将其移动到应用程序文件夹后,可通过以下命令制作安装盘。注意MyVolume为USB磁盘名称。
1 | sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume --applicationpath /Applications/Install\ OS\ X\ El\ Capitan.app |
引导器修改
使用Clover 3911。
设置FakeCPUID
每个系统都只能在特定架构的CPU下使用,系统会有对应的CPU白名单,在名单内的CPU才能被运行。对于Kaby Lake,El Capitan本身并不支持,因此启动时会出现卡一排+号,或卡AppleIntelCPU的问题。
通过设置FakeCPUID,可以在启动过程中骗过系统,从而顺利完成启动。注意系统启动完成后,通过Hackintool可以看到正确的CPU信息。对于El Capitan,可使用0406E3
。
若一时未能找到合适的CPUID,可在Clover引导页面进入Options-Binary Patching,勾选Support CPU,然后返回主界面进行引导。由于Clover引导的CPUID未必合适,因此可能会产生问题。
可通过查看安装包中的InstallESD.dmg/BaseSystem.dmg/System/Library/Extensions中含有架构缩写(如SL、KBL等)的kext,以判断该系统适用于哪些架构的CPU。
其它配置
勾选Kernel Pm、AppleRTC、XCPM、IntelCPUPM,csrconfig设置为0x67。
驱动修补
SATA支持
对于本机,El Capitan无法提供完整的SATA支持,从而导致启动时卡在DSMOS has arrived,且启动后无法识别SATA硬盘的问题。可通过在Clover中放置SATA-unsupported.kext修复。
键盘
不能使用最新版的VoodooPS2Controller,会卡在鼠标键盘解锁的页面。可以使用20161208的RehabMan版VoodooPS2Controller。
常见问题
登录时卡无敌风火轮
若已经出现该问题,则可重新进入一次设置向导以临时进入。Clover启动时添加引导参数-s以进入单用户模式,然后运行以下命令即可。
1 | sbin/mount -uw |
也可在输入密码后,不要敲Enter键,而是单击输入框右侧的箭头按钮以临时进入系统。
设置自动登录即可从本质上避免此问题。也可打开终端,输入以下命令以解决。
1 | su [用户名] |
Yosemite
下载
10.10.5下载链接如下。
1 | # 其它 |
也可下载Apple官方镜像,如下。
1 | http://updates-http.cdn-apple.com/2019/cert/061-41343-20191023-02465f92-3ab5-4c92-bfe2-b725447a070d/InstallMacOSX.dmg |
Apple官方镜像可能需要手动提取安装包。挂载dmg后,打开终端并输入以下命令。
1 | cd ~/Desktop |
安装盘制作
若获得的是系统app安装包,则将其移动到应用程序文件夹后,可通过以下命令制作安装盘。注意MyVolume为USB磁盘名称。
1 | sudo /Applications/Install\ OS\ X\ Yosemite.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume --applicationpath /Applications/Install\ OS\ X\ Yosemite.app |
【旧版】其它方法
在安装包上右键并点击显示包内容
,双击Contents/SharedSupport/InstallESD.dmg以挂载。显示隐藏文件后挂载该镜像中的BaseSystem.dmg,挂载的磁盘将会显示为OS X Base System。
插入USB磁盘,打开磁盘工具,将OS X Base System磁盘恢复到USB磁盘。
【特殊】修改内核
对于Haswell,需要修改过的内核,链接如下。需复制到USB安装盘的/System/Library/Kernels。
1 | https://www.dropbox.com/sh/dogcgje65kthyqy/AADhBj3_7Y5zxMlgrYe-mT25a |
安装后需要替换系统盘中的内核。重新启动到安装程序,打开终端并输入以下命令。
1 | # Hackintosh为系统盘名称 |
必要配置
时间设置
在安装向导菜单栏点击实用工具-终端,输入以下命令即可。
1 | date 100123452015 |
引导器修改
Clover使用4096。
设置FakeCPUID
可使用0306D0,以仿冒BroadWell。
其它配置
勾选Kernel Pm、AppleRTC、XCPM、IntelCPUPM,csrconfig设置为0x67。
驱动修补
USB
需要添加GenericUSBXHCI.kext以修补USB3驱动,且添加引导参数-gux_nomsi
,否则在通过U盘启动时,由于无法找到启动盘,将卡在Still Waiting for root device。
注意,插入的设备在系统启动后无法热插拔。
常见问题
安装时卡one second remaining
原因是缺少TSplicedFont字体。通过以下链接下载字体包,放入USB安装盘的System/Library/Fonts即可。
1 | https://www.google.com/get/noto/ |
Mavericks
下载
1 | # 10.9.5 |
安装盘制作
若获得的是系统app安装包,则将其移动到应用程序文件夹后,可通过以下命令制作安装盘。注意MyVolume为USB磁盘名称。
1 | sudo /Applications/Install\ OS\ X\ Mavericks.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume --applicationpath /Applications/Install\ OS\ X\ Mavericks.app --nointeraction |
【旧版】其它方法
与Yosemite相同。
【特殊】修改内核
对于Haswell,需要修改过的内核,链接如下。需复制到USB安装盘的根目录。
1 | https://www.dropbox.com/sh/dogcgje65kthyqy/AADhBj3_7Y5zxMlgrYe-mT25a |
安装后需要替换系统盘中的内核。重新启动到安装程序,打开终端并输入以下命令。
1 | # Hackintosh为系统盘名称 |
必要配置
时间设置
在安装向导菜单栏点击实用工具-终端,输入以下命令即可。
1 | date 100123452014 |
引导器修改
Clover
Clover使用4096。
设置FakeCPUID
可使用0306C0,以仿冒HasWell。
其它配置
同Yosemite。
OpenCore
Mavericks的磁盘映像使用的是Apple分区方案(Apple Partitioning Scheme),需要OpenPartitionDxe驱动程序来进行DMG恢复和安装。可以将DmgLoading设置为Disabled,以在不加载DMG的情况下运行恢复功能,同时也避免了OpenPartitionDxe的需求。
缓存的内核映像通常不包括网络(IONetworkingFamily)或音频(IOAudioFamily)的家族驱动,这些家族驱动往往需要使用Force加载来注入。
Chameleon
Extra文件夹示例如下。
1 | https://www.dropbox.com/s/8xw3bzol3xivqjh/Extra.zip |
驱动修补
同Yosemite。
Mountain Lion
下载
1 | // 速度较慢 |
安装盘制作
在系统app安装包上右键,点击显示包内容,进入Contents/Shared Support,双击InstallESD.dmg以挂载。打开磁盘工具,选择要设置为安装盘的USB,点击恢复,来源为刚才挂载的镜像Mac OS X Install ESD,等待完成即可。若报错,则可能需要禁用SIP。
如果为dmg镜像,也可直接双击挂载该镜像,并用该镜像恢复。
若无USB,可在硬盘上划分一块区域作为安装盘,在恢复时选择该分区即可。该方法可以摆脱USB的限制,如因USB 3.0未驱动而出现的Still Waiting for Root Device问题。
【特殊】修改内核
对于AMD CPU,需要修改过的内核,链接如下。
1 | https://www.insanelymac.com/forum/topic/281450-mavericks-kernel-testing-on-amd-formerly-mountain-lion-kernel-testing-on-amd |
必要配置
时间设置
在安装向导菜单栏点击实用工具-终端,输入以下命令即可。
1 | date 020123452013 |
引导器修改
CLover和OpenCore同Mavericks。启动参数可能需要slide=0。
驱动修补
显卡
若使用HD 2500,可在变色龙的org.Chameleon.boot.plist添加以下内容。
1 | <key>device-properties</key> |
若使用ATI 5000/6000控制器,需要使用ATIConnectors patch。
Lion
下载
尽量使用10.7.5。该版本前的SLE中的IOUSBFamily没有AppleUSBXHCI,因此GenericUSBXHCI无法工作,USB3不受支持。
1 | # 10.7.5 |
安装盘制作
同Mountain Lion。
引导器修改
Clover
Clover使用4096。
设置FakeCPUID
可使用0206F0,以仿冒WestmereFx。
其它配置
勾选Kernel Pm、AppleRTC、XCPM、IntelCPUPM,csrconfig设置为0x67。
OpenCore
同Mavericks。
驱动修补
包括Lilu(使用32位内核时)及其插件在内的许多Kext在Lion或更低版本上都不支持,它们所需的内核API比较新,不在SDK之中。
Lion及更早系统不支持KASLR slide,因此会导致内存较低的固件分配内存失败。
显卡
若使用ATI 5000/6000控制器,需要使用ATIConnectors patch。
系统使用
显示隐藏文件
打开终端并输入以下命令即可。
1 | defaults write com.apple.finder AppleShowAllFiles TRUE |
常见问题
啰嗦模式
卡在MBR Start!
在BIOS关闭串行端口。
系统运行
出现「您的电脑尚未连接任何键盘,现在,请连接您的键盘」错误
删除/System/Library/CoreServices/Setup Assistant.app/Contents/Resources/DeviceSection.bundle即可。
Snow Leopard
下载
1 | # 10.6.7 Acidanthera版(删除SMBIOS锁) |
安装盘制作
同Mountain Lion。也可在终端输入以下命令以制作。
1 | # /Volumes/Mac\ OS\ X\ Install\ DVD为挂载的磁盘 |
【进阶】在Lion上安装Snow Leopard
仅适用于BIOS引导。
挂载安装包后,切换到/Volumes/Mac OS X Install DVD/System/Installation/Packages
,打开OSInstall.mpkg,安装目标选择要安装Snow Leopard的GUID磁盘。
若需要为MBR引导,可先用Flat Package Editor打开OSInstall.mpkg,打开Distribution并删除以下字段,然后保存。
1 | eraseOptionAvailable='true' |
工具下载地址如下。
1 | http://www.mediafire.com/file/mzomjodmkmm/SL_Files.zip/file |
安装完成后需要安装Chameleon引导。下载以下文件后打开Apps-PC EFI 10.1,安装目标选择安装Snow Leopard的磁盘。
1 | http://www.lookass.ch/?id=4&area=art&art=248 |
完成后打开安装磁盘,删除boot文件夹,并将下载文件中的boot和Extra复制到磁盘根目录。若无P55M-UD2主板,则需要删除Extra/Extensions目录下的LegacyHDA_ALC888B.kext。若无GA-P55M-UD2主板,则需要删除Extra目录下的Extensions.mkext。若为GA-P55M-UD2主板,则需要放置DSDT.aml。
完成后重启即可。
引导器修改
Clover
设置FakeCPUID
可使用0206A0,以仿冒SandyBridge。
启动参数
由于系统默认启动32位内核,因此需要启动参数arch=x86_64
以强制使用64位内核。
设置SMBIOS
SMBIOS应设置为MacBookPro8,1/MacBookPro8,2/MacBookPro8,3。
其它
对于OpenCore,需要在Snow Leopard及更早版本上启用RebuildAppleMemoryMap。
OpenCore
同Lion。
可通过LegacyCommpage这一Quirk解除64位用户空间内核的SSSE3要求。
驱动修补
需要FakeSMC.kext、AppleACPIPS2Nub.kext、ApplePS2Controller.kext、VoodooHDA.kext、LegacyT60p.kext。
对于声卡,可能需要AppleAzaliaAudio.kext或AppleHDA.kext。
显卡
对于使用ATI Radeon X1650的用户,该显卡的DeviceID不太平常,为0x71cd。需要使用ATIRadeonX1000.kext,且添加以下patch。
1 | <dict> |
USB
由于SLE中的IOUSBFamily没有AppleUSBXHCI,只有AppleUSBEHCI,因此仅支持USB2,不支持USB3。
虚拟机安装
VirtualBox
创建新虚拟机,系统类型为BSD-FreeBSD,在System-Motherboard勾选Enable IO APIC,System-Acceleration勾选Enable VT-x/AMD-V,Storage-IDE Controller选择ICH6,CPU选择2核或4核,并挂载下载好的安装ISO镜像。
创建完成后切换到虚拟机所在目录并编辑XML文件,添加以下内容到<ExtraData>
部分。
1 | <ExtraDataItem name="VBoxInternal/Devices/e1000f/0/Trusted" value="integer:1"/> |
常见问题
啰嗦模式
卡在panic: “Unable to find driver for this platform: "ACPI"
具体消息如下。
1 | panic(cpu caller 0xffffff801ead78f4): "Unable to find driver for this platform: \"ACPI\".\n"@/Library/Caches/com.apple.xbs/Sources/xnu/xnu-3789.51.2/iokit/Kernel/IOPlatformExpert.cpp:1672 |
com.apple.driver.AppleACPIPlatform引发的内核崩溃代表了DSDT.aml的错误。事实上,Snow Leopard及以前的系统只支持iASL 4.0或5.0编译的DSDT与SSDT,iASL 6.0及更新的版本并不支持。可通过在MaciASL中点击偏好设置,选择编译器为iASL 4.0即可。修改编译器后出现错误的解决方法可看ACPI一章。
卡在panic: AppleIntelCPUManagement
可以尝试使用Nullpowermanagement。若无效,则删除SLE下的AppleIntelCPUManagement。
卡在PCI configuation begin
在启动时可查看打印出的线程数。若与现实不符,如四核八线程的CPU打印出了16个线程,则可能是系统启动时找到了另一个虚构的CPU。此时添加启动参数cpus=1
即可。
卡在panic: kernel trap
尝试使用OpenCore引导,注意需要设置EnableWriteUnprotector为True,RebuildAppleMemoryMap为false。
卡在BSD Process name corresponding to current thread: kernel_task/BSD Process name corresponding to current thread: unknown
放入ACPI补丁,可使用IOATAFamily.kext。IOATAFamily.kext包括了以下kexts。
名称 | 说明 |
---|---|
AppleIntelPIIXATA | Intel免AHCI补丁 |
AppleATIATA | AMD免AHCI补丁 |
AppleATIPATA | AMD免AHCI补丁 |
AppleNForceATA | NForce免AHCI补丁 |
AppleVIAATA | VIA免AHCI补丁 |
AppleVIAATA.kext.for.sis.SATA | SIS免AHCI补丁 |
JMicronATA | JMicron免AHCI补丁 |
系统运行
鼠标不起作用
可尝试VBVMMDevice.kext。
1 | http://www.mediafire.com/file/c1mzumynm3w/VBVMMDevice.kext.zip/file |
Leopard
不支持x86_64内核,需要i386内核扩展和补丁。
prelinkedkernel Kext无法被OpenCore注入。Mkext Kext的注入仍然正常,也不会有明显的性能消耗。
下载
1 | # 10.5.7 Acidanthera版(删除了SMBIOS锁) |
驱动修补
即使是在64位CPU上,系统内核空间仍然是32位。若使用OpenCore引导,可将FakeSMC-32与VirtualSMC结合使用,且将FakeSMC-32的Archentry设置为i386,VirtualSMC的entry设置为x86_64。
USB
由于SLE中的IOUSBFamily没有AppleUSBXHCI,只有AppleUSBEHCI,因此仅支持USB2,不支持USB3。
专用Kexts
AppleACPIPS2NUB
有可能解决Panic (cpu 0 caller 0x…..) Unable to find driver for this platform :\ACPI".\n”@/SourceCache/xnu/xnu-1456.1.25/iokit /Kernel/IOPlatformExpert.cpp:1389的问题。
1 | https://www.insanelymac.com/forum/topic/114578-appleacpips2nub-for-leopard-only/ |
虚拟机安装
VMware
以Jas 10.5.2发行版为例。
在Vmware新建虚拟机,其中硬盘类型为IDE,硬盘大小为6G或以上,系统类型为其他-FreeBSD/FreeBSD64,内存为512MB或以上。
新建完成后编辑虚拟机设置,在处理器选项卡中勾选虚拟化Intel VT-x/EPT或AMD-V/RVI
,在硬盘-高级勾选独立
并选择永久
,在网络适配器选择仅主机模式
以防止在安装过程中无法注册。
启动虚拟机后按F8,选择ISO安装盘并填写启动参数-v -x cpus=1
,开始安装。安装前组件选择如下,错误选择将会造成CPU has been disabled,或中途无故卡死。
组件 | 是否选择 |
---|---|
Jas 10.5.2 Intel.sse2 sse3 | 选 |
Leopard Graphics Update | 选 |
Patched Driver | 全选 |
PlugIns | 全选 |
Device Identification | 全选 |
Kernel | 选 |
Darwin x/86 Bootloader | - |
PC EFI GIUD | - |
PC EFI MBR | 选 |
Post Install Optimization | 选 |
安装完成后仍需要从ISO启动,按F8并选择安装好的硬盘以进入系统。
VirtualBox
创建新虚拟机,系统类型为BSD-FreeBSD,在System-Motherboard勾选Enable IO APIC,System-Acceleration勾选Enable VT-x/AMD-V,Storage-IDE Controller选择ICH6,CPU选择2核或4核,并挂载下载好的安装ISO镜像。
创建完成后切换到虚拟机所在目录并编辑XML文件,添加以下内容到<ExtraData>
部分。
1 | <ExtraDataItem name="VBoxInternal2/SupportExtHwProfile" value="on"/> |
常见问题
啰嗦模式
显示OsxAptioFixDrv: requested memory exceeds our allocated relocation block
换用OsxAptioFixDrv2即可。
卡在panic: Unsupported CPU
在Clover的配置文件中勾选IntelCPUPMKernel即可。
重启出现b0 error
将启动硬盘设置为激活分区。通过DOS版的DiskGenius即可。
Tiger
不支持x86_64内核,需要i386内核扩展和补丁。
prelinkedkernel Kext无法被OpenCore注入。Mkext Kext的注入仍然正常,也不会有明显的性能消耗。
这个版本需要两张光盘或两个USB安装介质来访问第二张DVD盘安装介质上的所有可选包。
下载
1 | # 10.4.8 Acidanthera版(删除了SMBIOS锁) |
驱动修补
即使是在64位CPU上,系统内核空间仍然是32位。若使用OpenCore引导,可将FakeSMC-32与VirtualSMC结合使用,且将FakeSMC-32的Archentry设置为i386,VirtualSMC的entry设置为x86_64。
虚拟机安装
以Jas 10.4.8发行版为例。
在Vmware新建虚拟机,配置与Leopard基本一致。完成后定位到虚拟机文件位置,打开配置文件并添加以下内容,保存后启动虚拟机。注意不要在Vmware界面中修改虚拟机配置,否则以下更改会丢失。
1 | paevm="true" |
常见问题
系统运行
Reset问题
用16进制编辑软件编辑mach_kernel文件,将EBFE9090替换为B0FEE664即可。
SATA硬盘无法装载,提示AppleVIAATA.kext装载失败
打开终端并输入以下命令即可。
1 | sudo -s |
旧版系统
以下旧版系统不支持Intel CPU,需要模拟其它CPU的架构,因此只可在虚拟机中使用。
现成虚拟机
1 | # System 8 |
虚拟机安装
安装文件下载
ROM
用于模拟机型。ROM映像通过读取安装在Macintosh中的集成电路的内容来创建,包含了设备的以及来自Apple的版权数据。
打开以下链接下载ROM,选择Old_World_Mac_Roms.zip。
1 | https://www.macintoshrepository.org/7038-all-macintosh-roms-68k-ppc- |
也可选用以下特定ROM。
1 | # Old World 4mb |
【进阶】从Basilisk II提取SheepShaver适用的ROM
Basilisk II需要安装Stuffit Expander。下载TomeViewer,链接如下。TomeViewer适用于System 7.1及更高版本。
1 | https://www.emaculation.com/sheepshaver/tomeviewer.sit |
可从以下两个文件之一提取SheepShaver ROM,适用于在SheepShaver启动MacOS 8.5-9.0.4。
1 | # Mac OS Rom Update 1.0 |
启用文件共享,在MacOS中打开以上两个文件之一,然后打开TomeViewer,点击File-Open,选择刚才挂载的磁盘。软件将提取ROM文件,点击蓝色图标保存即可。
安装盘
用于安装系统。
Panther
1 | https://winworldpc.com/product/mac-os-x/103 |
Jaguar
1 | https://winworldpc.com/product/mac-os-x/102 |
Puma
1 | https://winworldpc.com/product/mac-os-x/101 |
Cheetah
1 | https://winworldpc.com/product/mac-os-x/100 |
Kodiak
1 | https://winworldpc.com/product/mac-os-x/developer-previews |
Rhapsody
1 | https://winworldpc.com/product/mac-os-x/rhapsody |
Server 1.0
1 | https://winworldpc.com/product/mac-os-x/server-10 |
System 9
1 | # 根据个人需求选择版本 |
System 8
1 | # 根据个人需求选择版本 |
System 7
1 | # 根据个人需求选择版本 |
System 6
1 | https://winworldpc.com/product/mac-os-0-6/system-6x |
System 5
1 | https://winworldpc.com/product/mac-os-0-6/system-5x |
System 4
1 | https://winworldpc.com/product/mac-os-0-6/system-4x |
System 3
1 | https://winworldpc.com/product/mac-os-0-6/system-3x |
System 2
1 | https://winworldpc.com/product/mac-os-0-6/system-2x |
System 1
1 | https://winworldpc.com/product/mac-os-0-6/system-1x |
空白磁盘映像
用于提供磁盘空间。
打开以下链接下载空白磁盘映像。
1 | # System 7选择5MB |
Mini vMac
模拟基于Motorola 68K的黑白Mac Plus,支持MacOS 1.1-7.5.5。下载链接如下。
1 | https://www.gryphel.com/c/minivmac/download.html |
在Mini vMac界面上,按住Control可弹出控制模式界面。Control+M让显示范围变大,Control+F全屏显示。
【特殊】iOS版本
iOS安装包下载链接如下。
1 | https://github.com/zydeco/minivmac4ios |
模拟为Macintosh II
下载Mini vMac时,版本选择Macintosh II Variations。根据自己的操作系统下载对应安装包。
新建文件夹,将Mini vMac、磁盘映像和ROM包中的1988-09 - 97221136 - Mac II FDHD & IIx & IIcx.ROM
放在一起,并将ROM重命名为MacII.ROM
。打开Mini vMac,即模拟为Macintosh II,屏幕出现一个带有问号的软盘图标。
以安装System 7.0.1为例,拖动System 7.0.1安装盘中的Install 1.img至窗口,即可看到安装向导。拖动空白磁盘映像至窗口,以提供安装位置,然后点击Install即可,其中需要安装提示拖动不同的System 7安装盘至窗口。
安装完成后点击Quit-Rstart,拖动刚才的磁盘映像到窗口,即可加载系统。
模拟为Macintosh Plus
前面下载时Mini vMac的版本选择Standard Variations,使用ROM包中的1986-03 - 4D1F8172 - MacPlus v3.ROM
即可,注意需要重命名为vMac.ROM
。打开后即模拟为Macintosh Plus。
SheepShaver
基本使用
模拟基于Power PC的Macintosh,支持MacOS 7.5.2-9.0.4。下载链接如下。
1 | https://www.emaculation.com/forum/viewtopic.php?f=20&t=2409&sid=65c645c9dc937e59251f3ff05916b177 |
下载好ROM后重命名为Mac OS ROM
,注意无后缀名,然后与SheepShaver放置在同一目录。打开应用,屏幕出现一个带有问号的软盘图标。点击菜单栏的Preferences,在Volumes手动添加安装盘即可。
接下来的步骤与Mini vMac一致。
常见问题
无法使用音频
若系统为Linux,可在终端输入以下命令。
1 | sudo apt-get install osspd |
然后使用以下命令打开SheepShaver。
1 | padsp /usr/bin/SheepShaver |
Basilisk II
基本使用
模仿基于摩托罗拉68k色彩的Mac,支持MacOS 7.x-8.1。最新版本下载链接如下,需要下载Basilisk II和Basilisk II GUI。
1 | https://www.emaculation.com/doku.php/basilisk_ii |
以Mac为例,需要下载以下两个文件。
1 | # Basilisk II |
下载好ROM后打开Basilisk II GUI,点击菜单栏的Preferences,在Volumes手动添加安装盘,在System的ROM File选择下载好的ROM文件,点击Start即可。接下来的步骤与Mini vMac一致。
注意,若在Linux下使用Basilisk II,需要将安装盘设置为只读,且不要以root身份运行Basilisk II,否则将无法进行安装。
【进阶】详细配置
以Linux版的Basilisk II为例。该软件可通过系统包管理器获取。
1 | # Volumes |
文件共享
可使用HFVExplorer。
1 | https://emaculation.com/quick/hdexp131.zip |
也可在设置中勾选Enable 'My Computer' icon
,以在MacOS中访问当前文件系统。
QEMU
支持MacOS 9.0.4-10.5。
安装
在终端输入以下命令即可。
1 | brew install qemu |
【进阶】对于Mac OS X 10.4及以上版本
需要使用以下特殊版本。
1 | https://static.imvictor.tech/static-old/201709/qemu-mac99p.zip |
需在同目录下新建qemu.command
,内容如下。保存后运行即可。
1 | #!/bin/bash |
使用
生成虚拟硬盘镜像
选择其中一种格式即可。
1 | # 生成IMG |
启动
在终端输入以下命令以打开。
1 | # 内存256MB |
该命令格式如下。
1 | qemu-system-x86_64 [参数] |
其中参数如下。
参数 | 说明 | 选项 |
---|---|---|
-hda A.qcow2 | 第一块内置硬盘的镜像 | |
-hdb B.img | 第二块内置硬盘的镜像 | |
-cdrom C.iso | 光盘镜像 | |
-m 512 | 内存(以MB为单位) | |
-boot c | 第一启动项为硬盘 | c-硬盘d-光盘 |
-net user | 网络配置 | |
-M mac99p | 机型为mac99p | |
-prom-env “boot-args=-v” | 向NVRAM写入启动参数-v | |
-vga virtio | ||
-display default,show-cursor=on | ||
-usb | ||
-device usb-tablet | ||
-machine type=q35,accel=hvf | ||
-smp 2 | ||
-cpu Nehalem | ||
-drive file=windows.iso,index=1,media=cdrom | ||
-drive file=/Users/slanla/qemu/disk.img,index=0,format=raw,if=virtio |
PearPC
仅可用于Windows和Linux,可用于Mac OS 10.3。
下载链接如下,注意需要下载源程序和空白磁盘。空白磁盘解压所得的bz2压缩包,并与ppc程序放置在同一目录。将安装盘也放置在同一目录。
1 | http://pearpc.sourceforge.net/downloads.html |
复制ppccfg.example并重命名,用文本编辑器打开。主要修改以下内容。
1 | # 磁盘0 |
打开命令提示符,切换到ppc程序所在路径后输入以下命令即可。
1 | ppc [配置文件名] |
现成磁盘映像
以下磁盘映像无需进行安装步骤,直接挂载即可使用。
Jaguar
适用于QEMU,磁盘映像如下。
1 | http://macintoshgarden.org/apps/mac-os-x-102-pre-made-qemu-hard-drive |
终端切换到磁盘映像所在目录,运行以下命令即可。
1 | # 10.2.img为磁盘映像 |
System 9
适用于SheepShaver。设置好ROM后,在Preferences中添加该磁盘镜像即可。
1 | # 9.0 |
System 7
适用于Mini vMac。设置好ROM后,将以上镜像直接拖到窗口即可。
1 | # 7.5.3 |
旧硬件安装
硬件配置如下。
型号 | Device ID | Vendor ID | |
---|---|---|---|
CPU | Intel Core 2 Duo T5750 2000MHz(x86/x86-64/MMX/SSE/SSE2/SSE3/SSSE3) | / | / |
显卡 | |||
声卡 | |||
有线网卡 | / | / | |
无线网卡 | |||
键盘 | / | / | |
触摸板 | / | / | |
蓝牙 |
系统选择
如果主板或CPU较旧,则只能安装旧版系统。可先查看CPU支持的指令集,如果CPU不支持SSE4.1指令集,则不能运行10.12及以上的系统。
10.11支持SSE3指令集。各系统情况具体可参看黑苹果发展一章。
引导方式
UEFI
安装引导器
如果主板为BIOS Legacy模式,可以通过模拟UEFI实现运行UEFI的效果,具体做法可参照有关引导的文章。向EFI分区安装好Clover后即可开始。
准备安装介质
U盘安装
在Mac系统下下载好后缀为app的安装包拖到应用程序
文件夹。用磁盘工具格式化U盘,选择GUID分区图,格式化为Mac日志式。然后打开终端并输入以下命令,以Sierra安装包为例,其中/Volumes/Sierra为U盘的盘符。
1 | sudo /Applications/Install\ macOS\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/Sierra --applicationpath /Applications/Install\ macOS\ Sierra.app --nointeraction |
制作完成后,插入到需要安装的电脑即可引导启动。
硬盘安装
用Diskgenius划分一块10G左右的磁盘作为安装盘,注意分配盘符但不要分区。通过硬盘安装助手,可以把镜像写到硬盘中。
如果镜像为cdr格式,则需要以管理员模式打开硬盘安装助手,选择安装镜像和安装磁盘,只勾选写入
,点击开始即可。如果不以管理员身份运行,则会出现not a HFS partition
的错误提示。
完成写入后需要手动设置安装盘的参数。打开Diskgenius,在安装盘分区上右键选择修改参数,修改系统类型为48465300-0000-11AA-AA11-00306543ECAC
即可。
如果是以app为后缀的安装包,则需要从app包制作cdr镜像。打开终端并输入以下命令即可。
1 | # 创建dmg |
BIOS
如果不希望使用模拟UEFI,也可以通过MBR+BIOS的模式。注意,由于Mac不支持MBR启动,因此需要通过MBR补丁的方式实现,且应当使用Ecoch即变色龙进行引导,通过Clover引导时可能会出现X64 Exception
的错误。
安装引导器
U盘安装
在Mac系统下下载Ecoch的pkg安装包,安装时安装路径选择U盘即可。U盘可为MBR分区表。
硬盘安装
下载Chameleon Install安装器并打开,按照提示完成安装。安装好的镜像文件wowpc.iso位于系统分区根目录,下载最新的wowpc.iso并替换即可。
准备安装介质
下载Catalina MBR HFS Firmware Check Patch。
1 | https://www.insanelymac.com/forum/files/file/985-catalina-mbr-hfs-firmware-check-patch/ |
打开dmg文件,进入Old-macOS-10+11+12
,运行想安装的系统的脚本。注意需要使用一个U盘作为写入盘,并按照提示格式化。
安装盘完成后,需要将Enoch-r2922里的文件拷贝到引导器。对于U盘安装的变色龙而言,直接替换文件即可。而对于硬盘安装,需要编辑iso文件。
常见问题
引导启动
启动界面中键盘无法使用
有可能由不兼容的键盘驱动程序引起。对于OpenCore,可以在配置文件中取消勾选PollAppleHotKeys并勾选KeySupport,然后在Drivers文件夹中删除OpenUsbKbDxe。
若无效,则进行相反的操作,即取消勾选KeySupport,然后在Drivers文件夹中添加OpenUsbKbDxe。
也有可能由缺失PS2键盘驱动引起。在Drivers文件夹中添加Ps2KeyboardDxe即可。
也可尝试在Drivers文件夹中添加AptioInputFix。若仍无效,可通过设置倒计时的方式暂时在启动时能够引导到系统。
啰嗦模式
用Clover引导选择完启动项后即黑屏
更换旧版Clover,如r3333。注意,旧版Clover需要在启动项上空格,并选择Boot with injected kexts
才能载入kexts。
卡AppleEHCI/AppleUHCI
Clover配置文件中勾选FixHPET和FixIPIC。若无效则改用硬盘模式安装。
显示panic(CPU 1 caller 0xffffff800e7ce6fa):Kernel trap at 0xffffff7f9294d4c6
Clover配置文件中勾选FixHPET和FixIPIC。
卡Missing bluetooth controller transport!后禁行
Clover配置文件中勾选FixHPEC、FixIPIC、FixFirewire、FixUSB、DropOEM,并关闭所有USB注入。也可尝试在启动参数添加dart=0
。
出现满屏FireWire错误
可能为在BIOS中关闭了CSM导致,关闭CSM会确保是纯UEFI启动。
可在Clover的配置文件中勾选Fix Firewire解决。也可尝试使用FireWireDriver.efi,放置于Clover的driver64UEFI文件夹即可。
1 | https://www.insanelymac.com/applications/core/interface/file/attachment.php?id=124931 |
注意,该错误理论上不造成系统启动时卡住,若卡住,应该为其它原因导致。
AMD CPU
内核处理
需要对系统内核进行处理后,才可在AMD CPU上正常运行。
内核修补补丁
适用的CPU如下,可用于10.13及以上系统。
家族 | 代号 | 示例 |
---|---|---|
15h | Bulldozer | FX Series |
16h | Jaguar | A Series(包括AM4 A-Series) |
17h和19h | Zen | Ryzen, 1st, 2nd + 3rd Gen Threadripper, Athlon 2xxGE |
在OpenCore配置文件中合并以下补丁即可。
1 | # 15h/16h |
内核替换
对于32位系统,需要进行内核替换,下载链接如下。注意替换内核后将失去iMessage支持。
1 | https://wiki.osx86project.org/wiki/index.php/Patched_Kernels |
驱动修补
对于10.13,可能需要以下kext。
1 | https://github.com/amd-osx-kb/HighSierraLegacy/tree/master/files |
列表如下。
1 | AppleActuatorDriver.kext |
kexts作用如下。
名称 | 作用 |
---|---|
AMDRyzenCPUPowerManagement | AMD CPU电源管理 |
SMCAMDProcessor | AMD CPU监测 |
SMCBatteryManager | AMD CPU电池修复 |
USB
FX
需要使用DummyUSBEHCIPCI和DummyUSBXHCIPCI,下载链接如下。
1 | https://github.com/amd-osx-kb/HighSierraLegacy/blob/master/files/DummyUSB.zip |
Ryzen
仅适用于10.13。打开DSDT并添加以下源。
1 | # Ryzen USB |
点击Patch,使用USB Ryzen补丁。保存后将DSDT.aml放到Clover的ACPI部分,然后需要在配置文件中添加以下kext补丁。
对于10.13.1-10.13.3,内容如下。
1 | Name: AppleUSBXHCI |
对于10.13.4-10.13.6,内容如下。
1 | Name: AppleUSBXHCI |
SSE4.2仿真
对于AMD CPU,可用MouSSE.kext在SSE4.1 CPU下运行要求为SSE 4.2的系统,下载链接如下。
1 | https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/ |
支持性
USB
原生USB受到支持。
音频与麦克风
原生音频受到支持。
G系列APU上音频问题无法修复,必须使用外部DAC。
麦克风支持仅限于Ryzen上的VoodooHDA,不支持15/16H CPU的麦克风。
IOMMU
IOMMU不工作。
三码
iCloud、iMessage、FaceTime、Siri可用。
显卡
内置显卡(Ax CPU/G Ryzen)无法工作。
Adobe
Adobe从2019年开始大部分应用都高度依赖基于Intel的特殊数学函数库Intel Math Kernel Library(Intel-mkl),以及其它一些Intel特殊指令集用于硬件加速,涉及到的有MXMCore、FastCore、CameraRAW等。因此在AMD处理器上安装黑苹果,使用Photoshop的某些功能会导致闪退甚至Kernel Panic。
可通过禁用诸如RAW支持之类的功能以避免崩溃。打开终端并输入以下代码。
1 | for file in MMXCore FastCore TextModel libiomp5.dylib; do |
然后输入以下代码,重启即可。
1 | [ ! -d $HOME/Library/LaunchAgents ] && mkdir $HOME/Library/LaunchAgents |
若希望撤销操作,则输入以下代码。
1 | for file in MMXCore FastCore TextModel libiomp5.dylib; do |
Matlab
AMD黑苹果无法运行MatLab。即使能够运行,运算速度也非常缓慢,原因是缺乏Intel-mkl。
音频软件
Cubase、REAPER、Waves插件等在启动时崩溃。使用Clang构建的REAPER可以工作。
32/64位
不支持32位指令。
CPU电源管理
不可设置CPU电源管理。
虚拟机
由于使用AMD CPU需要注释XNU内核对Intel特有指令集的调用,因此VMX不受支持,AppleHV框架不可用,VMWare、Parallels、Docker、Android Studios等虚拟机软件均无法使用,只能使用VirtualBox,或某些虚拟机的特定版本,如VMware 10、Parallels 13.1.0。
XCode
XCode的Apple Watch在Catalina中损坏,在Mojave中正常。
常见问题
啰嗦模式
出现AppleIntelMCEReporter报错
双插槽支持被打破,受影响的SMBIOS包括MacPro6,1、MacPro7,1、iMacPro1,1。在引导器放置AppleMCEReporterDisabler.kext即可,需要10.15及更高版本。
1 | https://github.com/acidanthera/bugtracker/files/3703498/AppleMCEReporterDisabler.kext.zip |
出现Still Waiting for Root Device
先按照普通情况处理,若无效则可能需要添加XLNCUSBFix.kext,以修复AMD FX系统的USB控制器。需要10.13及更高版本,下载链接如下。
1 | https://cdn.discordapp.com/attachments/566705665616117760/566728101292408877/XLNCUSBFix.kext.zip |
若无效,则尝试AMD StopSign-fixv5。
系统启动
在Data&Privacy页重启
进入单用户模式并输入以下命令。以上命令将跳过设置屏幕,并新建一个用户名为Temp User,密码为password的账户。
1 | /sbin/fsck -fy |
Safari一直重新加载YouTube等网站
打开系统偏好设置-通用,将高亮显示颜色设置为最后一个颜色。
系统优化
问题修复
华硕笔记本键盘修复
按键驱动
利用AsusSMC.kext,可修复华硕笔记本键盘与Fn有关的快捷键不工作的问题。需要Lilu和VirtualSMC,下载链接如下。
1 | https://github.com/hieplpvip/AsusSMC |
将下载好的kext放到Clover的kexts文件夹中,若键盘有睡眠和飞行模式按键则还需运行install_daemon.sh,然后重启。逐个测试按键是否工作,若不工作,可通过SSDT或DSDT进行修补。
按键修复
通过DSDT
用MaciASL打开DSDT。添加以下源,然后点击Patch打相应补丁即可。
1 | http://raw.github.com/hieplpvip/AsusSMC/master |
通过SSDT
选取以下所需代码复制到MaciASL中,创建一个SSDT并保存为SSDT-ASUS.aml,放入引导器的ACPI部分,并按照注释在config.plist中添加更名补丁即可。
1 | DefinitionBlock ("", "SSDT", 2, "hack", "EC", 0x00000000) |
亮度快捷键调整
通过BrightnessKeys.kext即可,链接如下。
1 | https://github.com/acidanthera/BrightnessKeys |
CPU显示未知修复
打开终端并输入以下命令。
1 | cd /System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/Resources/zh_CN.lproj/ |
打开AppleSystemInfo.strings,将UnknownCPUKind下的内容修改为需要显示的内容,如下。
1 | <key>UnknownCPUKind</key> |
保存后在终端输入以下命令即可。
1 | sudo cp ~/Desktop/AppleSystemInfo.strings /System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/Resources/zh_CN.lproj/ |
ACPI修补
应当实现以下SSDT修补。以下修补文件在OpenCore的AcpiSamples文件夹。
列表
平台 | CPU | EC | AWAC/RTC | NVRAM | USB | PCI | Backlight | I2C触控板 | IRQ | IMEI |
---|---|---|---|---|---|---|---|---|---|---|
Penryn | / | SSDT-EC | / | / | / | / | ||||
Lynnfield and Clarkdale | / | SSDT-EC | / | / | / | / | ||||
Clarksfield and Arrandale | / | SSDT-EC | / | / | SSDT-PNLF | IRQ SSDT | / | |||
Sandy Bridge | CPU-PM(系统安装后使用) | SSDT-EC | / | / | / | / | SSDT-PNLF | IRQ SSDT | SSDT-IMEI(用于7代主板) | |
Ivy Bridge | CPU-PM(系统安装后使用) | SSDT-EC | / | / | / | / | SSDT-PNLF | IRQ SSDT | SSDT-IMEI(用于6代主板) | |
Haswell | SSDT-PLUG | SSDT-EC | / | / | / | / | SSDT-PNLF | SSDT-GPI0 | IRQ SSDT | / |
Broadwell | SSDT-PLUG | SSDT-EC | / | / | / | / | SSDT-PNLF | SSDT-GPI0 | IRQ SSDT | / |
Skylake | SSDT-PLUG | SSDT-EC-USBX | / | / | / | / | SSDT-PNLF | SSDT-GPI0 | / | / |
Kaby Lake | SSDT-PLUG | SSDT-EC-USBX | / | / | / | / | SSDT-PNLF | SSDT-GPI0 | / | / |
Coffee Lake (8th Gen) and Whiskey Lake | SSDT-PLUG | SSDT-EC-USBX | SSDT-AWAC | SSDT-PMC | / | / | SSDT-PNLF-CFL | SSDT-GPI0 | / | / |
Coffee Lake (9th Gen) | SSDT-PLUG | SSDT-EC-USBX | SSDT-AWAC | SSDT-PMC | / | / | SSDT-PNLF-CFL | SSDT-GPI0 | / | |
Comet Lake | SSDT-PLUG | SSDT-EC-USBX | SSDT-AWAC | / | SSDT-RHUB | / | SSDT-PNLF-CFL | SSDT-GPI0 | / | / |
Ice Lake | SSDT-PLUG | SSDT-EC-USBX | SSDT-AWAC | / | SSDT-RHUB | / | SSDT-PNLF-CFL | SSDT-GPI0 | / | / |
AMD (15/16h, Bulldozer/Jaguar) | / | SSDT-EC-USBX | / | / | / | / | ||||
AMD (17/19h, Zen) | SSDT-CPUR for B550 and A520 | SSDT-EC-USBX | / | / | / | / | ||||
Nehalem and Westmere | / | SSDT-EC | / | / | / | / | ||||
Sandy Bridge-E | / | SSDT-EC | / | / | / | SSDT-UNC | ||||
Ivy Bridge-E | / | SSDT-EC | / | / | / | SSDT-UNC | ||||
Haswell-E | SSDT-PLUG | SSDT-EC-USBX | SSDT-RTC0-RANGE | / | / | SSDT-UNC | ||||
Broadwell-E | SSDT-PLUG | SSDT-EC-USBX | SSDT-RTC0-RANGE | / | / | SSDT-UNC | ||||
Skylake-X | SSDT-PLUG | SSDT-EC-USBX | SSDT-RTC0-RANGE | / | / | / |
【旧版】SSDT列表
名称 | 解释 |
---|---|
SSDT-Config | SSDT控制入口文件 |
SSDT-LPC | 正确识别LPC总线到系统 |
SSDT-SMBUS | 正确识别SMBus到系统 |
SSDT-DMAC | 将DMA控制器公开给系统 |
SSDT-MCHC | 将内存控制器暴露在系统中 |
SSDT-IGPU | 将属性添加到集成显卡设备,可以实现HDMI音频以及正确显示 |
SSDT-Disable_DGPU | 在启动时关闭独立显卡,因为Mac OS无法使用它 |
SSDT-ALS0 | 添加假环境光传感器以在重新启动之间保存背光信息 |
SSDT-BRT6 | 将键盘的ACPI管理亮度键映射到VoodooPS2Controller.kext的PS2代码 |
SSDT-Dell_FN | 将键盘的ACPI管理亮度键映射到VoodooPS2Controller.kext的PS2代码 (部分DELL机型) |
SSDT-PNLF | 显示器亮度控制,为IntelBacklight.kext或AppleBacklight.kext + AppleBacklightInjector.kext添加PNLF设备 |
SSDT-HDAU | 自动注入HDAU属性(适用于Haswell和Broadwell平台) |
SSDT-HDEF | 自动注入HDEF属性(声卡layoutid注入点) |
SSDT-GPRW | 通过挂接GPRW或UPRW来解决即时唤醒 |
SSDT-LANC_PRW | 通过挂接GPRW来解决即时唤醒 |
SSDT-UPRW | 通过挂接GPRW或UPRW来解决即时唤醒 |
SSDT-IMEI | 添加IMEI(6系列HD4000,7系HD3000) |
SSDT-PTSWAK | 在睡眠之前对离散GPU进行驱动,并在唤醒后将其关闭,以确保系统能够跟踪它 |
SSDT-Debug | 用于ACPIDebug,该文件是通过将「添加DSDT调试方法」应用于空SSDT创建的,使用「添加SSDT调试外部声明」从其他方式访问这些方法hotpatch SSDT甚至打补丁的OEM ACPI文件 |
SSDT-ESEL | 关闭ESEL,在DSDT里原生ESEL被重命名为ESEX |
SSDT-XWAK | 关闭XWAK,在DSDT里原生的XWAK被重命名为ZWAK |
SSDT-PluginType1 | 在_PR.CPU0上插入plugin-type=1,可能是所有支持XCPM的SMBIOS只需要这种插件类型的注入 |
SSDT-SATA | 修复某些不支持的SATA设备 |
SSDT-XHC | 自动注入XHC属性 |
SSDT-XOSI | 操作系统补丁 |
SSDT-AWAC | 修复300系列主板(B360/B365/H310/H370/Z390等)系列主板的RTC设备问题,部分微星的主板/清华同方九代模具需要应用这个补丁,否则会卡住而无法进入系统,建议八代 CoffeeLake以上的用户都添加 |
SSDT-EC-USBX | 添加了一个仿冒的EC设备并完善了USB的供电,若主板的EmbeddedController原生ACPI命名就是EC则不需要该补丁 |
SSDT-PMC | 与NVRAM相关 |
SSDT-PLUG | 启用原生电源管理,Skylake六代以上的机型在Clover中可以直接勾选注入插件类型,自动注入plugin-type=1 参数实现同等效果 |
SSDT示例
SSDT-EC
禁用原有EC设备,并新建一个新的EC设备。
1 | # Desktop |
【进阶】手动编写
在DSDT中搜索PNP0C09,即可定位到EC设备。也可在Windows下的设备管理器下查找Embedded Controller,右键选择属性,在详细页面选择BIOS名称查看设备路径。
根据需求下载以下示例并打开。
1 | # SSDT-EC-USBX |
若为笔记本,则不要修改注释掉的代码,否则取消对代码的注释。这段代码的主要用途为禁用EC设备。
重命名以下地方为获得的EC设备路径。
1 | External (_SB_.PCI0.LPCB, DeviceObj) |
若出现多个PNP0C09,则检查是否存在_HID
、_CRS
、_GPE
方法,若均存在,则该设备为所求的EC设备。但若有_STA
方法,说明该EC设备是无用设备。
若无PNP0C09,则只需虚拟一个EC。尝试搜索LPCB、LPC0、LPC、SBRG、PX40,若其一存在,则使用其LPC路径取代SSDT中的EC设备路径。
若PNP0C09已被重命名为EC,则无需使用以上SSDT。但若为Skylake及更新版本,则仍需要SSDT-USBX。
SSDT-EC-USBX
用于禁用真正的嵌入式控制器并为Mac创建一个假的控制器。USBX部分用于注入Skylake和更新版本上缺少的USB电源属性。
1 | # Desktop |
在Catalina及更新版本中,AppleACPIEC.kext及其插件和USB电源管理依赖于名为EC的ACPI设备。同时,AppleBusPowerController也会查找名为EC的设备,还需要一个USBX设备来为Skylake和更新版本提供USB电源属性,因此SSDT-EC-USBX将SSDT-EC和SSDT-USBX进行了结合。
EC设备在笔记本上主要用于电池管理和热键处理,在台式机上与AppleACPIEC冲突。因此在笔记本上可以通过创建一个假EC设备实现启动,而在台式机中直接禁用该设备。
【备注】SSDT-USBX
SSDT-USBX不可使用于Broadwell及更早版本。
1 | https://github.com/dortania/OpenCore-Post-Install/blob/master/extra-files/SSDT-USBX.aml |
SSDT-IMEI
在ACPI中不存在IMEI设备时创建IMEI设备。
使用Sandy Bridge CPU的7系列主板(B75、Q75、Z75、H77、Q77、Z77)和Ivy Bridge CPU的6系列主板(H61、B65、Q65、P67、H67、Q67、Z68)需要。
在DSDT中搜索IMEI/HECI/MEI,若出现其一,则不需要SSDT-IMEI。若未出现则需要使用。
1 | https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-IMEI.aml |
SSDT-PLUG
启用Apple的XCPM,从而实现更好的CPU电源管理。
1 | https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PLUG-DRTNIA.aml |
SSDT-AWAC/SSDT-RTC0-RANGE-HEDT
在Mac中启用旧版RTC时钟,因为不支持较新的AWAC时钟。适用于以下主板。
1 | B360 |
SSDT-RTC0-RANGE-HEDT还解决了由于ACPI实施不佳而导致的Big Sur启动的提前停止。
1 | # SSDT-AWAC |
【进阶】手动编写
在DSDT中搜索ACPI000E,用于搜索AWAC设备。若无该设备则无需进行以下操作。
继续搜索PNP0B00,用于搜索RTC设备。若有该设备,则证明可以禁用AWAC并启用RTC,使用上面的SSDT-AWAC即可。
若无RTC设备,则需要使用SSDT-RTC0,如下。
1 | https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/Source/SSDT-RTC0.dsl |
需要改动的设备路径如下,其中LPCB路径可通过搜索Name (_ADR, 0x001F0000)
查看。注意应当保证PCI设备存在,可通过搜索PNP0A08
确定。
1 | External (_SB_.PCI0.LPCB, DeviceObj) |
SSDT-PMC
在300系列主板上启用本机NVRAM,如B360、B365、H310、H370、Z390。Z370、HM370不需要。仅适用于第九代笔记本电脑,第十代不需要。
1 | https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PMC.aml |
【进阶】手动编写
需要使用的SSDT如下。
1 | https://github.com/acidanthera/OpenCorePkg/tree/master/Docs/AcpiSamples/Source/SSDT-PMC.dsl |
需要改动的设备路径如下,其中LPCB路径可通过搜索Name (_ADR, 0x001F0000)
查看。注意应当保证PCI设备存在,可通过搜索PNP0A08
确定。
1 | External (_SB_.PCI0.LPCB, DeviceObj) |
SSDT-RHUB
重置Asus 400系列主板上的USB控制器。Gigabyte、MSI、AsRock等不需要。主要用于使用Ice Lake的Dell笔记本。
1 | https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-RHUB.aml |
【进阶】手动编写
需要使用的SSDT如下。
1 | https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/decompiled/SSDT-RHUB.dsl |
需要改动的设备路径如下,其中RHUB路径可通过搜索Device (RHUB)
查看。也可搜索XHC/XHCI/XHC1。注意应当保证PCI设备存在,可通过搜索PNP0A08
确定。
1 | External (_SB_.PCI0.XHC1.RHUB, DeviceObj) |
SSDT-PNLF
控制内部显示器背光。在极少数情况下,可能需要修改GFX0为显卡设备名称。
1 | # Kaby Lake及更低 |
SSDT-XOSI
在macOS中启用许多仅限Windows的功能。
1 | https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-XOSI.aml |
SSDT-UNC
确保正确禁用未使用或丢失的非核心桥接器,否则会在Big Sur中出现IOPCIFamily的panic。
1 | https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-UNC.aml |
SSDT-CPUR
用于修复ACPI中的CPU定义,因为Mac不能正确支持B550和更新的主板中使用的ACPI。仅无threadripper的机器以及B550、A520和更新版本需要,X570和更旧版本并不需要。
1 | https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-CPUR.aml |
SSDT-SBUS-MCHC
修复AppleSMBus。非必需,安装时无需此SSDT。
打开Hackintool并点击PCI选项卡,在SubClass下查找SMBus设备,即可找到其ACPI路径。也可在Windows下通过设备管理器,查找SMBus设备并查看其BIOS名称。
获取以下示例。
1 | https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/Source/SSDT-SBUS-MCHC.dsl |
需要修改的设备路径如下,修改为上面找到的SMBus设备路径即可。
1 | External (_SB_.PCI0, DeviceObj) |
编译并放置后,可在终端输入以下命令以查看是否工作。
1 | kextstat | grep -E "AppleSMBusController|AppleSMBusPCI" |
IRQ SSDT
使用SSDTTime即可。
【进阶】对于HP Compaq DC7900
需要以下SSDT。
1 | https://github.com/khronokernel/trashOS/blob/master/HP-Compaq-DC7900/0.6.1%20HP%20EFI/EFI/OC/ACPI/SSDT-CSR-HPET.aml |
在OpenCore配置文件的ACPI-Patch添加以下内容。
1 | Comment: change CRES to XCRES |
FixShutdown-USB-SSDT
用于替代FixShutdown。
1 | https://github.com/dortania/OpenCore-Post-Install/blob/master/extra-files/FixShutdown-USB-SSDT.dsl |
SSDT生成
可使用SSDTTime生成部分SSDT,具体如下。
1 | IRQ patch |
注意,若进行FixHPET,还需要将oc_patches.plist合并到原来的配置文件中,具体为添加ACPI-Patch部分。
SSDT制作
基础知识
外部引用
由于SSDT仅为DSDT的一部分,在该SSDT中的变量可能并不在这段代码中定义,在编译时则会出现对象不存在
错误。因此需要添加外部引用,声明该变量在DSDT中已被定义过。
外部引用通过以下语句完成,它应当填到DefinitionBlock的下面。
1 | External ([字段名(包含路径)], [字段对象]) |
在DSDT中搜索需要添加的外部字段,一般所得到的第一个结果即为其字段定义,字段定义与字段对象的对应关系如下表。编译不报错时,添加外部引用完成。
添加外部引用的示例可参照电池修补过程。
字段定义 | 字段对象 | 含义 | 示例 |
---|---|---|---|
Name (GZXB, 0) | IntObj | 整数 | External (GZXB, IntObj) |
Field (…){…, OSYS,16, …} | FieldUnitObj | 字段单元 | External (OSYS, FieldUnitObj) |
Mutex (BATM, 0x07) | MutexObj | 互斥体 | External (_SB.PCI0.LPCB.H_EC.BATM, MutexObj) |
Name (BPKH, Package (0x07){……}) | PkgObj | 包 | External (_SB.PCI0.LPCB.H_EC.BAT1.BPKH, PkgObj) |
Device (TPD0) | DeviceObj | 设备 | External (_SB.PCI0.I2C1.TPD0, DeviceObj) |
Method (_STA, 0, NotSerialized) | MethodObj | 函数 | External (_SB.PCI0.I2C1.TPD0._STA, MethodObj) |
OperationRegion (GNVS, SystemMemory, 0x7A4E7000, 0x0866) | OpRegionObj | 操作区 | External (GNVS, OpRegionObj) |
Event (XXXX) | EventObj | 事件 | External (XXXX, EventObj) |
ThermalZone (THRM) | ThermalZoneObj | 温控区 | External (THRM, ThermalZoneObj) |
CreateField (AAAA, Zero, BBBB) | BuffFieldObj | 缓冲区 | External (_SB.PCI0._CRS.BBBB, BuffFieldObj) |
Name (BPKH, Buffer (0x07){……}) | BuffObj | 缓冲 | External (BPKH, BuffObj) |
/ | UnknownObj | 未知 | External (_SB.EROR, UnknownObj) |
Name (MSTR,"ASL") |
StrObj | 字符串 | External (_PR.MSTR, StrObj) |
PowerResource (USBC, 0, 0) | PowerResObj | 电源资源 | External (_SB.PCI0.XDCI, PowerResObj |
Processor (PR00, 0x01, 0x00001810, 0x06) | ProcessorObj | 处理器 | External (_SB.PR00, ProcessorObj) |
/ | DDBHandleObj |
偏移量
以下代码中GNVS可以替换为任意名称,因为0x100, Zero
指向该地址的范围,偏移量地址已经被确定。而OOXX可以用0x1E代替,因为首先要保证的是字段的偏移量正确,故OOXX与OOX1互换,其数据也会跟着变化。
偏移量以字节为单位,一字节等于8位,故OOX1的偏移量为0x1E+1=0x20。
1 | Name (OOXX, Zero) |
预置变量法开关设备
每个设备的_STA方法用于控制设备开关,返回非零为开,返回零为关。因此通过修改_STA的返回值,可以禁用或启用该设备。
预置变量法即在SSDT中对某些变量预先赋值,使某个设备的_STA按照需求返回零或非零。
一般情况
被修正的变量可能存在于多个地方,对它修正后,在达到预期效果的同时,有可能影响到到其它部件。因此应当尽量修正该设备独有的变量。
预置变量法的示例可参照I2C触控板修补过程。
特殊情况
被修正的变量可能来自硬件信息,只能读取不能写入。这种情况下需要二进制更名和SSDT补丁共同完成。示例原文如下。
1 | // IM01为只读 |
为修改IM01,需要将IM01重命名,然后直接通过操作系统而非IM01作为判断条件。假设重命名为XM01,则重命名如下。
1 | Comment: change IM01 to IM01 |
补丁如下。该补丁表示如果操作系统不是Mac,则将IM01恢复为原值。
1 | Name (IM01, 0x02) |
对于仅包含返回设备状态的使能位和根据条件判断返回的使能位的_STA方法,可以直接将该方法引用为IntObj并赋值。示例如下。
1 | // 示例一 |
补丁如下。该方法有效的原因是_STA方法在操作系统OSPM模块对设备状态评估和初始化的优先级高于_INI
、_ADR
、_HID
,且_STA的返回值本身也是整数Integer。
1 | External (_SB_.PCI0.XXXX._STA, IntObj) |
不可使用该方法的示例如下。原因是_STA方法中还有其它操作,直接让_STA返回会使这些操作失效。
1 | // 示例一 |
基本框架
打开MaciASL,新建文件并将本机DSDT中的DefinitionBlock头复制到文件中。然后将里面的DSDT改为SSDT,即可得到适用于本机的SSDT框架。保存时文件名应当以SSDT-
开头。
所有SSDT补丁均需满足该基本框架的需求。以下示例的DefinitionBlock头应当根据本机的具体内容替换。
1 | DefinitionBlock ("", "SSDT", 2, "_ASUS_", "Notebook", 0x01072009) |
电池修补
请基于在修改DSDT后设备能够正常显示电量的前提下制作此热补丁。
电池热补丁的基本原理是,新建一个OperationRegion块,在这个新块里动态注入所有的拆分字节数据,同时对原有的未拆分字节保留空位,从而在保证位移量正确的情况下正确注入并引用新的数据。
确认修改位置
打开IORegistryExplorer,查找BAT
,记录电池设备名称,本机为SB.PCI0.LPCB.EC0.BAT0
。对修补DSDT的补丁进行分析,内容如下。
1 | // 字段拆分 |
可以得出,实际修改的字节数据如下。
1 | B0C3->B1B2(C3HG,C3HF) |
故需要拆解的字节有B0C3、B0SN、B1SN,需要添加的额外方法(Method)为B1B2。比对原DSDT和已修改好的DSDT,查找调用到这些变化过的字段的Method位置,以及需要添加的Method出现位置。本机调用到B0C3、B0SN、B1SN的Method为BIFA和_BIX,需添加的额外方法B1B2在原DSDT中不存在,在修改过的DSDT中位于根目录。至此所有需要修改的地方已完全确定。
数据插入
打开MaciASL,新建一个SSDT框架,如下。
1 | // xxxx用说找到的电池设备名(此处为BAT0)替换 |
打开原DSDT并搜索EmbeddedControl,复制整个OperationRegion到这个热补丁内。注意要把整个OperationRegion复制过来,即从OperationRegion行始,到第一个}
止。
然后把调用到变化字段的Method和所有额外添加的Method复制到OperationRegion后。对于本机而言,需复制OperationRegion段、Method (BIFA)、Method (_BIX)、Method (B1B2),故完成后代码结构应如下所示。注意,在同一个设备下的Method需放到一起。
1 | OperationRegion (ECOR, EmbeddedControl, Zero, 0xFF) |
添加位置代码
在代码块前需添加它们的位置代码,以使BIOS修补时有迹可循。在代码块的前后分别用以下代码框住即可,注意xxxx为位置,需要用绝对路径。
1 | Scope (xxxxx) |
以本机为例,本机的OperationRegion和BIFA方法均在_SB.PCI0.LPCB.EC0
下,而_BIX
方法位于_SB.PCI0.LPCB.EC0
的BAT0设备下。因此将OperationRegion和BIFA用Scope (_SB.PCI0.LPCB.EC0)
框住,而_BIX
方法则用Scope (_SB.PCI0.LPCB.EC0.BAT0)
框住,如下。注意,B1B2和B1B4方法放置于根目录,故无需位置代码。
1 | DefinitionBlock ("", "SSDT", 2, "hack", "BAT0", 0x00000000) |
添加外部引用
完成以上步骤后进行编译,并根据相应错误添加外部引用。
首先添加设备引用。以上面代码为例,设备_SB.PCI0.LPCB.EC0
与_SB.PCI0.LPCB.EC0.BAT0
被引用,故需用以下语句进行声明。
1 | // xxxx是设备地址 |
该部分语句需添加到DefinitionBlock的下面,故代码如下,其中DeviceObj
表示这是一个ACPI设备。再次编译,有关设备的报错均已消失。
1 | DefinitionBlock ("", "SSDT", 2, "hack", "BAT0", 0x00000000) |
然后根据报错,继续在DSDT里搜索其他的报错代码。如对于BIXT,它是BAT0设备下的一个字段,在DSDT查询到的第一个结果是Name (BIXT
,因此用以下代码进行外部引用。
1 | External (_SB.PCI0.LPCB.EC0.BAT0.BIXT, IntObj) |
对于其余变量方法同理,字段定义与字段对象的对应关系见前面所列出的表格。
字节处理
首先需要把OperationRegion和Field里的字段重命名。以本机为例,由ECOR重命名为ECAG,如下。
1 | OperationRegion (ECAG, EmbeddedControl, Zero, 0xFF) |
然后要使字段有正确的偏移量,可把Field里所有不拆分的字节数据段名字去掉,只保留空位,如ACST, 1
,清空变量名后变为, 1,
。示例如下。
1 | Offset (0x93), |
或可采用以下注释的形式。
1 | Offset (0x93), |
或可手动计算偏移量,如下。
1 | Offset (0x93), |
修改完成后,将之前的电量补丁Patch使其生效,然后编译并保存。
添加更名补丁
将热补丁中从原始DSDT复制过来的Method名全部进行修改,如热补丁中有从DSDT复制过来的代码Method (BIFA, 1, NotSerialized)
,则BIFA需要更名。此处以更名为BIGA为例,打开config.plist,添加以下更名规则即可。
1 | Comment: change BIFA(1, N) to BIGA(1, N) |
若所需要更改的方法名位于电池设备(即BAT0)内,则在Tgtbridge栏还应加入该电池设备名的16进制数,如下。
1 | Comment: change _BIX(1, N) to XBIX(1, N) in BAT0 |
但如果添加Tgtbridge后电池补丁反而失效,则将Tgtbridge值删除。
添加_OSI判断
在已经完成的补丁文件中,在每一个Method的开始部分加上_OSI系统判断并在结尾处回调原始方法,示例如下。
1 | Method (_BIF, 0, NotSerialized) |
Else后面的代码为回调原始方法,如果原始方法没有出现Return语句,则可直接以XBIF()的方式回调。如果原始方法的代码中出现了Return语句,则在回调时也需要以Return形式回调原方法,示例如下。
1 | Method (SMTF, 1, NotSerialized) |
完成修补
将上述SSDT保存为aml文件,放到引导器的ACPI部分即可。
特殊处理
惠普笔记本ACEL设备禁止
部分惠普笔记本配备机械硬盘防护传感器。该设备实际为一个加速度传感器,即便没有驱动也能保持运行,持续向EC中读写数据,会导致电池状态刷新异常。
在Windows下确认该设备ACPI名称为ACEL后,可通过ACPI更名其_STA,并在热补丁中要求macOS下禁止该设备即可。
ECRD和ECWT读写控制
部分机器的ACPI对于EC作用域下的寄存器读写有严格控制,有时需要修改其中的代码以解除限制。暂时无相关解决方案。
双电池系统
对于单块物理电池,禁用另一个电池设备即可,一般为BAT1。SSDT示例如下,其中BAT1路径根据实际替换。
在OpenCore中,加载顺序为主补丁-禁用BAT1补丁。
1 | // battery for WTX30,WTX40,X260,X1C2014,X1C2016 |
对于两块物理电池,更改两块电池设备的ACPI _HID名称使其保持运行的情况下不被电池驱动识别,同时新建一个BATC设备用于合并计算两块电池的信息和状态,代替原来两块电池设备的代码为驱动提供信息。
分别使用SSDT-Notify-LPC和SSDT-OCBATC-TP-LPC进行实现,链接如下。注意根据DSDT的相关内容修改补丁,如3代机器的_Q4C的内容和样本内容不同,4/5/6/7代机器无_Q4C,7代+机器有BFCC等。
在OpenCore中,加载顺序为主补丁-BATC设备补丁-Notify补丁。
1 | # SSDT-Notify-LPC |
I2C触控板修补
该SSDT不涉及任何的ACPI更名。
修补准备
按照与修改DSDT时相同的方法,确定设备路径和APIC Pin,并放置VoodooI2C驱动。
禁用原设备
通过预置变量法
本方法在本机上通过Clover引导时可行,通过OpenCore引导时不起作用。
用Macisal打开本机DSDT,查找触控板设备名称,此处为ETPD。观察其_STA方法,该方法用于控制设备的开启与关闭,返回0x0F时为开启,返回Zero时为关闭。示例如下。
1 | Method (_STA, 0, NotSerialized) // _STA: Status |
通过简单的代码知识,可知若TPIF不等于1或DSYN不等于0,则会返回Zero,从而禁用该设备。
在DSDT中搜索TPIF,发现该变量仅在此处被引用。同理搜索DSYN,发现该变量有在其它地方被引用。因此选择改变TPIF而非DSYN的值,以避免对其它设备的影响。此处将TPIF设为0即可。
在DSDT中搜索TPIF,其定义示例如下。
1 | Scope (_SB) |
可见TPIF是一个FieldUnitObj,因此可得如下补丁示例。由于TPIF在Scope (_SB)
内,而_SB即为根目录,因此补丁中可用\
表示。
注意,上述过程仅为示例,用于阐述预置变量法的基本流程。具体的变量类型和数值设置需要根据不同的DSDT做出相应的调整。
1 | DefinitionBlock ("", "SSDT", 2, "_ASUS_", "Notebook", 0x01072009) |
通过_STA修改法
新建一个SSDT框架,如下。
1 | DefinitionBlock ("", "SSDT", 2, "_ASUS_", "Notebook", 0x01072009) |
在其中添加Scope作用域,路径为原触控板设备的路径,此处为ETPD。
1 | DefinitionBlock ("", "SSDT", 2, "_ASUS_", "Notebook", 0x01072009) |
把以下_STA方法复制到Scope作用域中。
1 | Method (_STA, 0, NotSerialized) |
根据添加外部引用的相关办法,添加对ETPD和XSTA的相关引用。其中XSTA为ETPD的原_STA方法,后面会通过更名的方式将其改为XSTA,因此上述注入的新_STA方法意为在系统不为Mac时,调用XSTA即原_STA方法。
完整补丁如下。
1 | DefinitionBlock ("", "SSDT", 2, "DELL", "CBX3", 0x01072009) |
在config.plist中添加以下重命名补丁,示例如下。
1 | Comment:change _STA(0,N) to XSTA(0,N) |
启用GPIO
DSDT搜索Device (GPI0
,观察其_STA方法,示例如下。
1 | Method (_STA, 0, NotSerialized) |
同样使用预置变量法。观察以上代码,可知启用GPI0需要SBRG和GPEN都不等于0。搜索SBRG,发现该变量被多处引用。同理搜索GPEN,发现该变量仅本处被引用。考虑到SBRG可能本来就不为0,因此尝试只设定GPEN。
在DSDT中搜索SBRG和GPEN,其定义示例如下。
1 | // 这里就是根目录,没有Scope() |
可见GPEN是一个FieldUnitObj,因此可得如下补丁示例。
1 | // GPI0 enable |
新建热补丁
新建一个SSDT框架,如下。
1 | DefinitionBlock ("", "SSDT", 2, "_ASUS_", "Notebook", 0x01072009) |
用MaciASL打开系统的DSDT,搜索触控板名称,本机为ETPD,路径为_SB.PCI0.I2C1.ETPD。在新建的SSDT中,首先添加Scope域,注意小括号内为除触控板名称外的路径。然后将触控板名称对应的整个Device复制进去,此处为Device (ETPD)
。完成后形式如下。
1 | DefinitionBlock ("", "SSDT", 2, "_ASUS_", "Notebook", 0x01072009) |
此处也可以写成如下形式。
1 | DefinitionBlock ("", "SSDT", 2, "_ASUS_", "Notebook", 0x01072009) |
将该SSDT中的ETPD进行改名,此处改为TPXX,该名称应当在DSDT中未出现过。然后替换_STA
部分为以下代码。
1 | Method (_STA, 0, NotSerialized) |
在禁用原设备中,若使用的是预置变量法,则在该SSDT中搜索上述用到的变量,此处为TPIF。若有类似If(TPIF...)
的语句,则修改为If(one)
。
在该SSDT中搜索OSYS。若有,则注释以下内容。
1 | If (LLess (OSYS, 0x07DC)) |
移除APIC中断控制器
在该SSDT中搜索_CRS方法。
1 | Method (_CRS, 0, Serialized) |
若代码类似如上,则将Name (SBFI
改为Name (SBFB
,并删除整个Interrupt()函数,修改后变为如下。
1 | Method (_CRS, 0, Serialized) |
在该SSDT中定位到_CRS方法,确保所有返回语句都改成以下内容。
1 | // 若该SSDT中没有I2CM,选择该语句 |
示例如下。
1 | Method (_CRS, 0, Serialized) |
GPIO固定
代码修补
在该SSDT中寻找类似如下的代码。
1 | Name (SBFG, ResourceTemplate () |
若有该代码,则系统会自动注入GPIO Pin,可跳过GPIO Pin的计算与填入。若没有,则需要将该段代码复制到TPXX的根目录,示例如下。
1 | Device (TPXX){ |
计算GPIO Pin
将上面得到的APIC Pin化为十进制,此处为6D,化成十进制为109。带入以下公式计算,计算完成后将答案重新化为十六进制,所得即为GPIO Pin的值。
对于Skylake平台,本机适用,所得为85=0x55。
1 | If APICPIN > 47 And APICPIN <= 79 Then |
对于CoffeeLake-H平台如下。
1 | If APICPIN > 47 And APICPIN <= 71 Then |
对于CoffeeLake-LF/Whiskylake平台如下。
1 | If APICPIN > 47 And APICPIN <= 71 Then |
【进阶】其它方法
打开Hackintool,在PCI选项卡下可以查看触控板类型,包括SunrisePoint、CannonPoint(Lake)[Coffee Lake(-R)]和CannonPoint(Lake)[Whiskylake]。
打开下面相应平台的第一个链接,查找设备的十六进制APIC Pin值,并记录左侧标签值(只需记录GPP_XYY_IRQ中的XYY部分),若有多个标签值,需全部记录。再打开第二个链接,搜索上面所记录的XYY,记下右侧的数值(十进制),此即为触控板的硬件引脚号。
1 | // SunrisePoint[Kaby Lake(-R)] |
对于SunrisePoint,硬件引脚号即为GPIO引脚号。
对于CannonPoint(Lake)[Coffee Lake(-R)]或CannonPoint(Lake)[Whiskylake],前面步骤与上面相同,但得到的硬件引脚号并不是GPIO引脚号,因此还需要进行转换。打开下面转换公式链接,搜索前面记录的GPP_X,得到格式如CHIPSET_GPP(数字, 基数, 终止, GPIO基数)
的内容。用所记下的十进制硬件引脚号减去基数
,再加上GPIO基数
,就是最后的十进制的GPIO引脚号。注意,X_NO_GPIO
表示此引脚号无效。
1 | // CannonPoint(Lake)[Coffee Lake-R] |
得到十进制的GPIO引脚后,需将数字转换为十六进制。
填入GPIO Pin
在某些极端状况下,只能尝试比较常见的GPIO Pin。如SunrisePoint平台可尝试0x17、0x1b、0x34和0x55。
计算完成后把GPIO Pin填入到SBFG的Pin list,示例如下。
1 | Name (SBFG, ResourceTemplate () |
添加外部引用
点击编译并根据报错添加外部引用,过程可参照电池修补部分。
完成修补
至此触控板热补丁已完成,将上述生成的所有SSDT都另存为aml,放到引导器的ACPI部分。重启后打开IORegistryExplorer,查找触控板名称(ETPD),若无此设备则禁用成功。查找新建的触控板设备(TPXX),若有此设备则触控板已处于中断模式。
系统安装与维护
修改InstallESD.dmg
InstallESD.dmg位于macOS系统的安装包内,修改其内容(如删除部分kexts)可能会使安装过程更加顺利。
打开磁盘工具,点击菜单栏上的映像-转换,选择要转换的镜像,映像格式选择读/写。打开转换好的dmg,修改完成后再次转换,映像格式选择压缩即可。
去除机型检查
可用Flat Package Editor或其它工具编辑OSInstall.mpkg,让Distribution脚本在hwbeModelCheck函数中总是返回true。编辑完成后在终端输入建议以下命令以重建映像。
1 | # Original.dmg为原始镜像 |
恢复盘
FireWolf OS X PE
类似Windows PE,FireWolf OS X PE可视作macPE,可为Mac提供恢复环境。下载链接如下。
1 | https://pe.firewolf.app/manual/downloads/thankyou.html |
安装
在Windows下用Etcher刻录到U盘即可。
引导启动
在启动之前需先确保系统完整性保护(SIP)中已允许加载任意Recovery系统,即启用CSR标志位CSR_ALLOW_ANY_RECOVERY_OS
,修改Clover配置文件中的Rt Variables-CsrActiveConfig为0x3E7即可。
使用引导High Sierra的Clover文件,可以顺利启动该恢复盘。
系统调试与日志
日志内容
previous shutdown cause:5
Mac用于说明先前关机原因的代码。可在终端通过以下命令显示。
1 | log show --predicate 'eventMessage contains "Previous shutdown cause"' --last 24h |
数字具体含义如下。
代码 | 含义 | 备注 |
---|---|---|
5 | 正确关机 | 通过关机菜单或其他关机命令关机 |
7 | CPU线程错误 | 尝试安全模式 |
3 | 硬关机 | 按电源按钮强制关机 |
0 | 电源断开 | 对笔记本而言,若电源仍有电,则代表电池或电池控制器出现问题,可尝试重置SMC |
-3 | 温度传感器超出阈值 | |
-14 | 电流突峰 | 电问题或电池问题 |
-20 | T2芯片导致的关机 | |
-60 | 错误的主目录块(badMDBEr) | 尝试重装系统 |
-61 | 应用程序无响应导致的关机 | |
-62 | 应用程序无响应导致的重启 | |
-71 | SO-DIMM内存温度超出阈值 | 尝试清除风扇灰尘 |
-74 | 电池温度超出阈值 | 尝试重置SMC |
-75 | 充电器通信问题 | |
-78 | 充电器电流不正确 | |
-79 | 电池电流不正确 | |
-86 | 接近温度超出阈值 | |
-95 | CPU温度超出预知阈值 | 尝试重置SMC |
-100 | 电源温度超出阈值 | |
-102 | 过压保护导致的关机 | |
-103 | 电池电压不足 | |
-104 | 可能与电池有关 | |
-108 | 可能与内存有关 | |
-112 | 可能与内存有关 | |
-127 | PMU强制关闭 | |
-128 | 可能与内存有关 |
内核Panic
可在/Library/Logs/DiagnosticReports目录下找到Panic日志。
错误数字含义
向量偏移值 | 描述 | 说明 |
---|---|---|
0 | Devide Error | 当进行除以零的操作时产生 |
1 | Debug Exceptions | 当进行程序单步跟踪调试时,设置了标志寄存器eflags的T标志时产生这个中断 |
2 | NMI Interrupt | 由不可屏蔽产生 |
3 | Breakpoint | 由断点指令INT3产生,与Debug处理相同 |
4 | INTO Detected Overflow | eflags的溢出标志0F引起 |
5 | BOUND Range Exceeded | 寻址到有效地址以外引起 |
6 | Invalid Opcode | CPU执行发现一个无效的指令操作码 |
7 | Coprocessor Not Available | 设备不存在,指协处理器。在两种情况下会产生该中断:CPU遇到一个转意指令并且EM置位;MP和TS都在置位状态,CPU遇到wait或一个转意指令。在这种情况下,处理程序在必要应该更新协处理器的状态 |
8 | Double Exception | 双故障出错 |
9 | Coprocessor Segment Overrun | 协处理器段超出 |
10 | Invalid Task State Segment | CPU切换时发现TSS无效 |
11 | Segment Not Present | 描述符所指的段不存在 |
12 | Stack Fault | 堆栈溢出或者不存在 |
13 | General Protection | 没有符合80386保护机制的(特权机制)操作引起 |
14 | Page Fault | 页溢出或不存在 |
16 | Coprocessor Error | 协处理器检测到非法操作 |
错误分析
在Finder切换到/Library/Logs/DiagnosticReports
,打开后缀名为panic的文档以获取内核错误报告,示例如下。
1 | *** Panic Report *** |
从以上内容可知,该错误由14=page fault
即页面错误引起,RIP寄存器即程序计数器的值为0xffffff7f8c7ba8b1
,CR2寄存器即触发页面错误的内存地址为0xffffff80639b8000
,Kernel slide为0x0000000008600000
。在kext回溯中,可以看到以下两个kext可能触发该页面错误,从而引起恐慌。
1 | kext / com.apple.iokit.IOAcceleratorFamily2 |
下载Hopper,链接如下。
1 | https://www.hopperapp.com/ |
打开Hoppeer并在软件中加载/System/Library/Kernels/kernel,单击Modify-Change File Base Address,在Base Address输入Kernel slide加上0x100000的值,即0xffffff8008700000。
重定位后点击G
,输入Backtrace中的最后一个地址,即0xffffff8008a014f7。汇编代码片段如下。
1 | _call_continuation: |
由堆栈相关知识可知,在调用ffffff8008a014f5处的call时会压入返回地址,此处为0xffffff8008a014f7。同理搜索Backtrace中的倒数第二个地址0xffffff800908f1dc,可得到另一个调用语句的地址。重复以上过程,结果如下。
1 | kernel.call_continuation() |
根据以下内容,可知内核在找到要执行的任务后,首先调用com.apple.iokit.IOAcceleratorFamily2的内核线程,其中调用了restart_channel方法。然后切换到特定的kext即com.apple.kext.AMDRadeonX4150,调用writeDiagnosisReport方法。
在0xffffff7f8c7ba8b1处不是一个call指令,而是mov r8d, dword [r12+rax*4]
。该地址即为RIP寄存器的内容,因此可以确定出现panic的指令位置。
根据内核报告,R12=0xffffff80639b6a70,RAX=0x0000000000000564,计算可得传送的地址为0xffffff80639b8000。该地址为fault CR2寄存器的内容。
因此可以猜测,0xffffff80639b8000指向一个未映射的页面,当com.apple.kext.AMDRadeonX4150中的mov指令尝试从该未映射地址读取时,会发生未处理的页面错误,从而导致panic。
Data Hub日志
Data Hub日志中不包括Kernel和Kext的日志。可在终端通过以下命令获取Data Hub日志。
1 | ioreg -lw0 -p IODeviceTree | grep boot-log | sort | sed 's/.*<\(.*\)>.*/\1/' | xxd -r -p |
UEFI变量日志
可在终端通过以下命令获取UEFI变量日志。
1 | nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:boot-log | awk '{gsub(/%0d%0a%00/,"");gsub(/%0d%0a/,"\n")}1' |
内核调试套件
内核调试工具包(Kernel Debug Kits,KDK)可从内核和核心kext获取日志信息。
安装
在终端输入以下命令以确定需要下载的KDK版本。
1 | sw_vers | grep BuildVersion |
打开以下链接,搜索Kernel Debug Kit并下载相应的版本。
1 | https://developer.apple.com/download/all/ |
下载后运行安装包进行安装。禁用系统SIP后,在终端输入以下命令以挂载根目录为可写。
1 | # Big Sur+ |
然后输入以下命令安装。
1 | # Install KDK to System Volume |
完成安装后,需要添加以下启动参数之一。
1 | # kasan是一个包含AddressSanitizer的日志密集型内核 |
重新启动并在终端输入以下命令以查看当前内核是否已被改变。
1 | sysctl kern.osbuildconfig |
卸载
禁用系统SIP后,在终端输入以下命令以挂载根目录为可写。
1 | # Big Sur+ |
然后输入以下命令删除调试内核和kexts。
1 | # Revert to old snapshot (Big Sur+) |
删除启动参数kcsuffix=
后重新启动,然后在终端输入以下命令以查看当前内核是否已被改变。
1 | sysctl kern.osbuildconfig |
本机文件内容
DSDT
电池
1 | Scope (_SB.PCI0.LPCB.EC0) |
SSDT
电池
更名如下。
1 | Comment: change BIFA to BIGA |
SSDT如下。
1 | // 使用Catalina用户则需将EC0更改为EC |
I2C触控板
SSDT如下。
1 | DefinitionBlock ("", "SSDT", 2, "_ASUS_", "Notebook", 0x01072009) |
Clover结构
Mojave/Catalina
1 | ├── ACPI |
Big Sur
1 | ├── ACPI |
OpenCore结构
Catalina
1 | ├── ACPI |
Big Sur
1 | ├── ACPI |
附录
Kexts
WebCamera
相机驱动。
1 | https://i.applelife.ru/2019/03/448848_WebCamera.kext.zip |
AnyiSightCam
在系统报告中添加相机信息。
1 | https://github.com/tuiuVN/EFI_Clover/tree/13a94765f8c3f4a5c7138b2fcc1b9e8d091c65e8/K46CA/EFI/CLOVER/kexts/Other |
AnyCardReader
在系统报告中添加读卡器信息(需更改为自己的ID)。
1 | https://github.com/holoto/ec-471g/tree/master/EFI/EFI/CLOVER/kexts/10.11 |
AnyiSightCam
在系统报告中添加相机信息。
1 | https://github.com/tuiuVN/EFI_Clover/tree/13a94765f8c3f4a5c7138b2fcc1b9e8d091c65e8/K46CA/EFI/CLOVER/kexts/Other |
DebugEnhancer
啰嗦模式下可输出更多内容。
1 | https://github.com/acidanthera/DebugEnhancer |
IOElectrify
为Intel Thunderbolt硬件提供始终开启的电源。
1 | https://github.com/the-darkvoid/macOS-IOElectrify/releases |
VoodooInput
提供Magic Trackpad 2仿真。
1 | https://github.com/acidanthera/VoodooInput/releases |
LiluFriend
确保Lilu及其插件被加载。
1 | https://github.com/PMheart/LiluFriend |
VoodooSDHCMod
读卡器驱动。
1 | https://github.com/lvs1974/VoodooSDHCMod/releases |
SASMegaRAID
1 | https://github.com/dukzcry/osx-goodies |
Legacy_USB3&Legacy_InternalHub-EHCx
1 | https://applelife.ru/posts/537459 |
Sinetek-rtsx
读卡器驱动。
1 | https://github.com/tsingui/Sinetek-rtsx-1 |
SerialMouse
串行鼠标驱动,在系统启动前需先将鼠标接入电脑。
1 | https://github.com/Goldfish64/SerialMouse/releases |
RTCMemoryFixup
解决部分Z370 B360新BIOS的RTC中STA函数导致卡Apfs NVME的问题。
1 | https://github.com/acidanthera/RTCMemoryFixup |
SidecarEnabler
删除Sidecar使用的所有SMBIOS检查。
1 | https://github.com/hieplpvip/SidecarEnabler |
ThunderboltReset
禁用Alpine Ridge中的ICM,以便OSX接管LC。
1 | https://github.com/osy/ThunderboltReset |
SystemProfilerMemoryFixup
在MacBookAir和MacBookPro10,x平台上显示内存选项卡。
1 | https://github.com/Goldfish64/SystemProfilerMemoryFixup |
DiskArbitrationFixup
禁用此计算机无法读取您插入的磁盘
消息。
1 | https://github.com/Goldfish64/DiskArbitrationFixup |
AHCI_3rdParty_eSATA/SATA
第三方eSATA/SATA驱动,连接到这些接口的设备将会识别为内置磁盘。
1 | // AHCI_3rdParty_eSATA |
AHCI_Intel_Generic_SATA
英特尔SATA驱动。
1 | https://github.com/NTT123/Hackintosh-HP-Z420-MacOS-High-Sierra-10.13-10.14/tree/master/CLOVER/kexts/10.12 |
FakePCIID
仿冒PCI设备核心驱动。与IOPCIDevice设备建立连接,以便当另一个驱动程序连接到同一设备时提供备用的PCI ID。
必须放置FakePCIID,然后根据需求放置以下kexts中的一个或多个。
名称 | 作用 |
---|---|
FakePCIID_AR9280_as_AR946x | 将PCI ID重新映射回AR9280(168c:002a),即使该设备本身报告的是168c:0034 |
FakePCIID_Broadcom_WiFi | 模拟真正的Apple Airport(苹果无线网卡) |
FakePCIID_Intel_GbX | 与一些Intel以太网设备建立连接,以使基于Intel芯片组的驱动程序工作。不做单独使用,通常与SmallTreelntel8254x.kext、Applelntel8254XEthernet.kext、SmallTreelntel82576.kext、SmallTreelntel8259x.kext一起使用 |
FakePCIID_Intel_HD_Graphics | 用于核显HD4200/HD4400/HD4600/P4600,Iris 540/550 Iris Pro 580、HD510 HD515 HD520 HD530 P530(多数530不需要这个)、P4000、P6300 – 162a、UHD620 KabyLake-R、UHD630 CoffeeLake |
FakePCIID_Intel_HDMI_Audio | 在Haswell以上的系统中提供HDMI-audio的设备,为不支持的HDAU提供支持(通常称为B0D3,但需要将其重命名为HDAU) |
FakePCIID_XHCIMux | 把USB3.0主控器XHC下的USB2.0 port转移(bypass)到USB2.0主控器EHC1/EHC2下 |
FakePCIID_BCM57XX_as_BCM57765 | 用于Broadcom无线网卡BCM5700/BCM5701/BCM5702/BCM5703/BCM5717/BCM5718/BCM5719/BCM5725/BCM5727/BCM5761/BCM5762/BCM57760/BCM57764/BCM57767/BCM57781/BCM57782/BCM57785/BCM57786/BCM57787/BCM57788/BCM57790/BCM57791/BCM57795/BCM5785/BCM5787M |
AMFIExemption
将允许的entitlements添加到非Apple签名的应用程序。
1 | https://github.com/osy/AMFIExemption |
Innie
使PCIe驱动器显示为内部驱动器。
NightShiftEnabler
NightShiftUnlocker已被整合到NightShiftEnabler。
开启Night Shift功能。
1 | https://github.com/cdf/NightShiftEnabler |
ECEnabler
允许读取长度超过1个字节的EC字段,大大减少工作电池状态所需的ACPI修改量。
1 | https://github.com/1Revenger1/ECEnabler |
RestrictEvents
MacProMemoryNotificationDisabler已被整合到RestrictEvents。
阻止不需要的进程,避免在不同的硬件上引起兼容性问题,并解锁对仅限于其他硬件的某些功能的支持。
1 | https://github.com/acidanthera/RestrictEvents |
TSCAdjustReset
修复了在x299主板和Skylake-X平台的cpu启动Mac时同步TSC的衰退的问题。
TOSMotionSensor
东芝hackintosh设备的加速度计驱动程序。
1 | https://github.com/jslegendre/TOSMotionSensor |
AAAMouSSE
1 | https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/ |
Polaris22Fixup
修复Polaris22/VegaM的已知图形问题,支持10.14+。
1 | https://github.com/osy/Polaris22Fixup |
HWPEnable
1 | https://cgithub.com/headkaze/HWPEnable |
旧版Kexts
名称 | 作用 | 下载 | 备注 |
---|---|---|---|
OpenHaltRestart/EvOreboot | 解决重启/关机时遇到无法断电问题 | 不可同时使用 | |
ElliottForceLegacyRTC/LegacyAppleRTC | 防止主板BIOS的CMOS重置错误 | 不可同时使用 | |
PlatformUUID | 解决Unable to determine UUID for host. Error:35的问题 | ||
IOAHCIBlockStorageInjector | 修复将内置硬盘识别为外置硬盘的问题 | ||
ApplePS2SmartTouchPad | 键盘鼠标触摸板万能驱动 | ||
SATA-100-series-unsupported | Intel 100系列主板SATA磁盘识别驱动 | ||
SATA-200-series-unsupported | Intel 200系列主板SATA磁盘识别驱动 | ||
SATA-RAID-unsupported | SATA磁盘阵列驱动 | ||
XHCI-200-series-injector | 200系列主板驱动 | ||
XHCI-300-series-injector | 300系列主板驱动 | ||
XHCI-unsupported | Intel X99系列主板驱动,可用于H370、B360、H310、Z390(Mojave及更新版本不需要)、X79、X99、AsRock(除B460/Z490+) | ||
XHCI-x99-injector | Intel X99系列主板驱动 | ||
BT4LEContiunityFixup | 开启BT4LE蓝牙上的hotspot以及handoff | ||
NVEnabler | NVidia GeForce 9500GT驱动 | ||
AppleAC97Audio | AC97音频驱动 | 适用于10.4-10.5 | |
BCM5906MEthernet | NetLink BCM5906M有线网卡驱动 | https://github.com/vmatyushin/osx-bcm5906m/ | 适用于10.6-10.7 |
ACPICPUThrottle | 根据负载自动调整CPU时钟和电压 | 适用于10.4 | |
MMInputFamily | 多媒体输入设备驱动 | http://defyne.org/dvb/driver.html | 适用于10.2-10.4 |
Macam | USB摄像头驱动 | https://sourceforge.net/projects/webcam-osx/ | 适用于10.4 |
Kext禁用器
下载以下kext并右键显示包内容,打开Contents/Info.plist,将AppleUserUpstreamClient替换为需要禁用的kext名称,然后放到引导器的Kexts部分即可。
1 | https://www.tonymacx86.com/attachments/disabler-kext-zip.18081/ |
旧版资源
1 | https://github.com/OSXLatitude/EDP |
工具
SSDTTime
下载
1 | https://github.com/corpnewt/SSDTTime |
常见问题
提示Could not locate or download iasl!
Python版本过时。可更新Python,或下载iasl并放置到SSDTTime的脚本文件夹中。
ProperTree
1 | https://github.com/corpnewt/ProperTree |
OpenCore Configurator
1 | https://mackie100projects.altervista.org/download-opencore-configurator/ |
旧版工具
DSDT editor
1 | https://www.insanelymac.com/forum/topic/223205-dsdt-editor-and-patcher/ |
DSDT库
1 | # Intel NUC5/NUC6/NUC7/NUC8 DSDT patches |
存档
AMD内核补丁
15h/16h
1 | <?xml version="1.0" encoding="UTF-8"?> |
17h/19h
1 | <?xml version="1.0" encoding="UTF-8"?> |
参考教程
黑苹果制作虚拟机CDR镜像
1 | https://blog.csdn.net/qq_41855420/article/details/102750055 |
OpenCore引导教程
1 | https://blog.daliansky.net/OpenCore-BootLoader.html |
【持续更新】OpenCore引导-v各种卡及OC引导常见问题解决方案速查表合集
1 | https://imacos.top/2020/03/28/0154/ |
macOS 10.13安装中常见的问题及解决方法
1 | https://blog.daliansky.net/macOS-10.13-installation-of-common-problems-and-solutions.html |
OpenCore 引导迁移折腾记录
1 | https://kirainmoe.com/blog/post/opencore-migration-experience/ |
热补丁制作教程
1 | https://www.penghubingzhou.cn/2019/05/02/Battery%20Hotpatch%20Make/ |
Acidanthera故障排除
1 | https://github.com/acidanthera/bugtracker |
AsusSMC使用教程
1 | https://github.com/hieplpvip/AsusSMC/wiki/Installation-Instruction |
macOS Catalina 10.15安装中常见的问题及解决方法
1 | https://blog.daliansky.net/Common-problems-and-solutions-in-macOS-Catalina-10.15-installation.html |
FIREWOLF OS X PE 9 使用手册
1 | https://pe.firewolf.app/manual/chapter3/launcherfirstview.html |
Clover的用法
1 | https://www.misonsky.cn/28.html |
Booting the OS X installer on LAPTOPS with Clover
1 | https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/ |
MaciASL / Wiki / Patching Syntax Grammar
1 | https://sourceforge.net/p/maciasl/wiki/Patching%20Syntax%20Grammar/ |
Patching LAPTOP DSDT/SSDTs
1 | https://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573/ |
Using Clover to hotpatch ACPI
1 | https://www.tonymacx86.com/threads/guide-using-clover-to-hotpatch-acpi.200137/ |
Clover EFI Bootloader v5.1 r5127 四叶草黑苹果引导程序
1 | https://heipg.cn/clover/clover-efi-bootloader-v5-1-r5127.html |
-V进mac不滚代码直接卡++加号或者加号下几行代码Error allocating 0x11c8d pages at……卡住解决方案
1 | https://imacos.top/2019/08/12/1033/ |
CatalinaAutoMountWritable.plist
1 | https://forums.macrumors.com/attachments/catalinaautomountwritable-plist-zip.847064/ |
用热补丁修理你的触摸板
1 | https://blog.gzxiaobai.cn/2020/05/17/%E7%94%A8%E7%83%AD%E8%A1%A5%E4%B8%81%E4%BF%AE%E7%90%86%E4%BD%A0%E7%9A%84%E8%A7%A6%E6%91%B8%E6%9D%BF%EF%BC%88TouchPad-Hotpatch%EF%BC%89/ |
Hotpatch热补丁之路2:常见的种类与外部引用
1 | http://bbs.pcbeta.com/viewthread-1866928-1-1.html |
Fix for El Capitan stuck at login
1 | https://discussions.apple.com/thread/7376445?tstart=0 |
Macbook Pro stuck after I enter my password
1 | https://apple.stackexchange.com/questions/305097/macbook-pro-stuck-after-i-enter-my-password |
AptioMemoryFix
1 | https://www.insanelymac.com/forum/topic/331381-aptiomemoryfix/?tab=comments#comment-2564269 |
Turn on performance mode for macOS Server
1 | https://support.apple.com/en-gb/HT202528 |
macOS启动参数列表
1 | https://blog.skk.moe/post/macos-boot-args/ |
Dortania’s OpenCore Install Guide
1 | https://dortania.github.io/OpenCore-Install-Guide/ |
MP3,1 (& others?) SSE 4.2 emulation (to enable AMD Metal driver)
1 | https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/ |
Clover Kexts and Firmware driver conversion(.kext, .efi)
1 | https://github.com/dortania/OpenCore-Install-Guide/blob/master/clover-conversion/clover-efi.md |
macOS BigSur 11.0安装中常见的问题及解决方法
1 | https://blog.daliansky.net/Common-problems-and-solutions-in-macOS-BigSur-11.0-installation.html |
Release Date – Gixxer PC
1 | https://www.dualbootpc.com/guide/release-date/ |
TSplicedFont failed creating descriptor for El Capitan
1 | https://apple.stackexchange.com/questions/304552/tsplicedfont-failed-creating-descriptor-for-el-capitan |
Acer V5-572G On Yosemite
1 | https://www.jianshu.com/p/30ff92784076 |
How to make a bootable Mountain Lion install drive
1 | https://www.macworld.com/article/1167857/how-to-make-a-bootable-mountain-lion-install-drive.html |
Who can help me compile the DSDT, Thanks!
1 | https://www.tonymacx86.com/threads/solved-who-can-help-me-compile-the-dsdt-thanks.189972/ |
HACKINTOSH BOOT FLAGS
1 | https://www.fitzweekly.com/2016/04/hackintosh-boot-flags.html |
macOS系统下载
1 | https://www.applex.net/pages/macos/ |
A full history of macOS (OS X) release dates and rates
1 | https://robservatory.com/a-full-history-of-macos-os-x-release-dates-and-rates/ |
Show Hidden Files OS X 10.7 Lion
1 | https://apple.stackexchange.com/questions/18662/show-hidden-files-os-x-10-7-lion |
Is Intel’s 8th gen Compatible with OS X 10.9, 10.10, 10.11, 10.12?
1 | https://www.tonymacx86.com/threads/is-intels-8th-gen-compatible-with-os-x-10-9-10-10-10-11-10-12.253152/ |
How to create a bootable OS X Snow Leopard USB drive?
1 | https://apple.stackexchange.com/questions/400472/how-to-create-a-bootable-os-x-snow-leopard-usb-drive |
Download MacOS X 10.4 - 10.15 original - All versions
1 | https://applehint.com/t/download-macos-x-10-4-10-15-original-all-versions/376 |
Common boot options for Chimera, Chameleon, Unibeast, Niresh, and more
1 | http://www.macbreaker.com/2012/01/list-of-common-hackintosh-boot-flags_29.html |
关于黑苹果升级macOS11(bigsur)的建议与观点
1 | https://zhuanlan.zhihu.com/p/158770898 |
卡在com.apple.xpc.launchd[1]这里了,一直循环,求大神指导一下
1 | http://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1876638 |
acidanthera/bugtracker
1 | https://github.com/acidanthera/bugtracker/issues/1235 |
macOS 11.0 Big Sur Public Beta 10 - boot, kernel panic
1 | https://www.tonymacx86.com/threads/solved-macos-11-0-big-sur-public-beta-10-boot-kernel-panic.305007/ |
Slide值获取及计算
1 | https://blog.daliansky.net/Slide-value-acquisition-and-calculation.html |
macOS 11 Big Sur on Unsupported Macs Thread
1 | https://forums.macrumors.com/threads/macos-11-big-sur-on-unsupported-macs-thread.2242172/page-28?post=28603788#post-28603788 |
Install macOS Big Sur on a Newly Unsupported Mac With WI-FI Working: My iMac Late-2012
1 | https://blog.juliensatti.com/install-macos-big-sur-mac-obsolete/ |
Making WiFi work on Big Sur unsupported Macs with “failed with 66” error
1 | https://andv.medium.com/making-wifi-on-big-sur-unsupported-macs-with-failed-with-66-error-36c98e3f7965 |
[教程] Win版变色龙安装到EFI方法
1 | http://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1072629 |
Previous Shutdown Causes Explained
1 | https://georgegarside.com/blog/macos/shutdown-causes/ |
Stuck on [ PCI CONFIGURATION BEGIN ] npci=0x2000 not working
1 | https://www.tonymacx86.com/threads/stuck-on-pci-configuration-begin-npci-0x2000-not-working.49320/ |
macOS版本歷史 - 維基百科,自由的百科全書
1 | https://zh.wikipedia.org/wiki/MacOS%E7%89%88%E6%9C%AC%E6%AD%B7%E5%8F%B2 |
[Hack] Hackintosh - Install Mac OS X 10.6.8 (Snow Leopard) on ThinkPad X61T (Tablet)
1 | https://xuelianghan.tumblr.com/post/52456030005/hack-hackintosh-install-mac-os-x-1068-snow |
成功安装MAC OS 10.4.6 for X86
1 | http://www.playcase.com/blog/article.asp?id=55 |
VMware再战MAC 10.5.2
1 | http://www.playcase.com/blog/article.asp?id=103 |
Mac OSx86: 10.4.8 Tiger VMware Installation Guide
1 | https://blog.naver.com/sysyphus/70025314227 |
识别 MacBook Pro 机型
1 | https://support.apple.com/zh-cn/HT201300 |
识别 MacBook 机型
1 | https://support.apple.com/zh-cn/HT201608 |
识别 MacBook Air 机型
1 | https://support.apple.com/zh-cn/HT201862 |
识别 Mac mini 机型
1 | https://support.apple.com/zh-cn/HT201894 |
识别 Mac Pro 机型
1 | https://support.apple.com/zh-cn/HT202888 |
识别您的 iMac 机型
1 | https://support.apple.com/zh-cn/HT201634 |
MacBook Pro机型列表/型号详解(识别MacBook Pro机型)
1 | https://www.xiaoyuanjiu.com/10465.html |
如何识别 MacBook Pro 机型
1 | https://www.jianshu.com/p/45151c1444fd |
MacBook - 維基百科,自由的百科全書
1 | https://zh.wikipedia.org/wiki/MacBook |
iMac (Intel-based) - Wikipedia
1 | https://en.wikipedia.org/wiki/IMac_(Intel-based) |
iMac Pro - Wikipedia
1 | https://en.wikipedia.org/wiki/IMac_Pro |
Mac mini - 维基百科,自由的百科全书
1 | https://zh.wikipedia.org/wiki/Mac_mini |
Mac Pro - 維基百科,自由的百科全書
1 | https://zh.wikipedia.org/wiki/Mac_Pro |
MacBook Pro - 維基百科,自由的百科全書
1 | https://zh.wikipedia.org/wiki/MacBook_Pro |
MacBook Air - 維基百科,自由的百科全書
1 | https://zh.wikipedia.org/wiki/MacBook_Air |
APPLE 电脑型号大全
1 | https://blog.csdn.net/zhugq_1988/article/details/42705659 |
如何获取旧版 macOS
1 | https://support.apple.com/zh-cn/HT211683 |
如何升级至 macOS Big Sur
1 | https://support.apple.com/zh-cn/HT201475 |
iMac - iMac11,1 | Itemcycle
1 | https://www.itemcycle.com/imac/id/iMac11,1 |
iMac - Macmini5,3 | Itemcycle
1 | https://www.itemcycle.com/imac/id/Macmini5,3 |
Apple 15” MacBook Pro (2.53Ghz, Mid 2009); MacBookPro5,4 Installation Guides & Specifications - Macfixit Australia
1 | https://support.macfixit.com.au/article/119-apple-15-macbook-pro-253ghz-mid-2009-macbookpro54-installation-guides-specifications |
记录一些Opencore黑苹果问题解决方案
1 | https://www.cmlnt.com/?p=239 |
21.5” iMac (Edu, Slim Alum., Early 2013) / 3.3 GHz Core i3 / ME699LL/A
1 | https://www.sellyourmac.com/mac-product-guides/imac/me699ll-a-21-5-imac-edu-slim-alum-early-2013-3-3-ghz-core-i3.html |
21.5-inch Apple iMac - Late 2013*
1 | https://eshop.macsales.com/tech_center/system-specs/iMac2013.09_21.5_143/ |
Mac & Apple Devices - EveryMac.com’s Ultimate Mac Lookup
1 | https://everymac.com/ultimate-mac-lookup/?search_keywords=iMac14,3 |
黑苹果必备驱动:VirtualSMC 系统管理控制器内核仿冒驱动 1.1.4
1 | https://heipg.cn/drivers/virtualsmc-1-1-4.html |
[OpenCore] 关于AppleIntelMCEReporter的报错
1 | http://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1843338 |
DSDT与SSDT编译错误解决方案合集汇总
1 | http://imacos.top/2019/08/23/1709/ |
苹果macOS 10.9~10.15系列原版系统镜像下载
1 | https://mac.osystem.club/47.html |
X61 安装完黑苹果10.6.4 无法驱动无线网卡
1 | http://mac.8miu.com/thread-791955-1-1.html |
异常处理
1 | https://tinylab-1.gitbook.io/lad-book/zh-cn/kernel/core/exception |
Mac OS X for PPC (Mac OS 10)
1 | http://macintoshgarden.org/apps/mac-osx-mac-os-10-ppc |
Mac OS X Public Beta
1 | http://macintoshgarden.org/apps/mac-os-x-public-beta |
An Unpatched Kernel Bug
1 | https://objective-see.com/blog/blog_0x27.html |
[Guide] Gigabyte Z77X UD5H Clover UEFI Install/Tweak guide
1 | https://www.insanelymac.com/forum/topic/288829-guide-gigabyte-z77x-ud5h-clover-uefi-installtweak-guide/?_fromLogin=1 |
‘[IOBluetoothHCIController]…– Missing Bluetooth Controller Transport!’
1 | https://www.insanelymac.com/forum/topic/320388-iobluetoothhcicontroller-missing-bluetooth-controller-transport/ |
使用 Mini vMac 搭建一个 System 7.0 虚拟机
1 | https://zhuanlan.zhihu.com/p/57342369?from_voters_page=true |
How to Install Mac OS System 1.0 - 7.5 in Mini vMac and Run Classic 68k Applications
1 | https://www.youtube.com/watch?v=FhdGxH8lzGA |
Open core Boot Menu Keyboard Not Working
1 | https://www.reddit.com/r/hackintosh/comments/hdlb6i/open_core_boot_menu_keyboard_not_working/ |
naveenkrdy/AdobeAMDFix.md
1 | https://gist.github.com/naveenkrdy/26760ac5135deed6d0bb8902f6ceb6bd |
DRM Compatibility Chart for 10.15
1 | https://github.com/acidanthera/WhateverGreen/blob/master/Manual/FAQ.Chart.md |
Howto create nVidia EFI string for Geforce the simple way
1 | http://forum.netkas.org/index.php?topic=222.0 |
GPU Buyers Guide
1 | https://dortania.github.io/GPU-Buyers-Guide/ |
使用 QEMU 模拟 PowerPC 版本的 Mac OS X / Classic Mac OS
1 | https://blog.qwq.ren/posts/simulation-of-ppc-macos-via-qemu/ |
Can you virtualize PowerPC versions of Mac OS X on Intel Macs?
1 | https://apple.stackexchange.com/questions/22262/can-you-virtualize-powerpc-versions-of-mac-os-x-on-intel-macs |
FakeSMC, VirtualSMC, LAN, Sound, Graphics - где взять кексты?
1 | https://applelife.ru/threads/fakesmc-virtualsmc-lan-sound-graphics-gde-vzjat-keksty.2942933/page-2#post-744431 |
[交流] 新手常见(五国)(-v图)错误解决(原版,破解kernel,补丁kext下载)
1 | https://blog.csdn.net/ashuai81/article/details/8032952 |
[分享] 终于安装上雪豹了,把自己的经验与大家分享,解决了IOATAFamily.kext引起的问题
1 | http://bbs.pcbeta.com/viewthread.php?tid=595342 |
[下载] 最新发布:bootthink 2.5.2 for lion包括WIN版和MAC版~附带Mac OS安装教程
1 | http://bbs.pcbeta.com/viewthread-937914-1-1.html |
使用 QEMU 模拟 PowerPC 版本的 Mac OS X / Classic Mac OS
1 | https://blog.qwq.ren/posts/simulation-of-ppc-macos-via-qemu/ |
在macos使用qemu安裝windows
1 | https://slanla.com/2020-12-17-529 |
Alternate Guide #1 – OS X Snow Leopard Install using Retail DVD
1 | https://tonymacx86.blogspot.com/2009/11/alternate-guide-1-os-x-snow-leopard.html |
[分享] 从技术角度谈谈10.11的USB驱动机制,兼论10.11 USB安装盘的花屏禁行问题
1 | http://bbs.pcbeta.com/viewthread-1646768-1-1.html |
[教程] 新手安装指南:一步一步在Windows安装苹果雪豹系统
1 | http://bbs.pcbeta.com/viewthread-592288-1-1.html |
OCB: boot LoadImage failed - Not Found
1 | https://www.tonymacx86.com/threads/ocb-boot-loadimage-failed-not-found.297803/ |
mac 安装qemu的方法
1 | https://blog.csdn.net/qianss520/article/details/90294748 |
Redundant Robot
1 | https://www.redundantrobot.com/sheepshaver |
How To Install Mac OS 9 In OS X Using SheepShaver
1 | https://www.youtube.com/watch?v=XQAf7GII9NY |
Setting up System 7.5.3 with BasiliskII for OSX/macOS
1 | https://www.emaculation.com/doku.php/basiliskii_osx_setup#setting_up_system_753_with_basiliskii_for_osx_macos |
AMD Mojave Kernel Development and Testing
1 | https://www.insanelymac.com/forum/topic/335877-amd-mojave-kernel-development-and-testing/page/7/?tab=comments#comment-2658085 |
Vanilla AMD Hackintosh
1 | https://kb.amd-osx.com/guides/HS/ |
/r/Hackintosh Multiboot
1 | https://hackintosh-multiboot.gitbook.io/hackintosh-multiboot/ |
OpenCore 引导迁移折腾记录
1 | https://kirainmoe.com/blog/post/opencore-migration-experience/ |
XStar-Dev’s Blog
1 | https://xstar-dev.github.io/ |
NVRAM Variables
1 | https://docs.google.com/spreadsheets/d/1HTCBwfOBkXsHiK7os3b2CUc6k68axdJYdGl-TyXqLu0/ |
Boot argument options in OS X
1 | https://osxeon.wordpress.com/2015/08/10/boot-argument-options-in-os-x/ |
小白也能看懂的入门教程DSDT/SSDT/ROM提取完整步骤编译拆分补丁除错实现笔记本电脑电池显示
1 | http://imacos.top/2019/07/22/1409/ |
SNOWLEOPARDAMD INSTALL AND POSTINSTALL
1 | https://web.archive.org/web/20201129192905/https://amd-osx.com/forum/viewtopic.php?t=4482#p39746 |
[教程] Darwin boot loader參數一覽(中文版)
1 | http://bbs.pcbeta.com/viewthread-638119-1-3.html |
[教程] 【变色龙系列一】Chameleon手动安装说明+ Chameleon 2 RC5 Rev580【11/03更新】
1 | http://bbs.pcbeta.com/viewthread.php?tid=797534 |
[教程] 【变色龙系列二】com.apple.Boot.plist + SMBIOS.plist设定说明【09/22更新】
1 | http://bbs.pcbeta.com/viewthread-798366-1-1.html |
黑苹果常见kext驱动解读
1 | https://macx.top/1972.html |
Is there a list of available boot-args for darwin / OS X
1 | https://superuser.com/questions/255176/is-there-a-list-of-available-boot-args-for-darwin-os-x |
/r/Hackintosh macOS Internet Install
1 | https://internet-install.gitbook.io/macos-internet-install/ |
[交流] DSDT 修改討論 (技嘉) 02/04 更新
1 | http://bbs.pcbeta.com/viewthread-633082-1-1.html |
[GUIDE] Snow Leopard with 100% vanilla /S/L/E - Comprehensive DSDT patching guide
1 | https://www.insanelymac.com/forum/topic/211705-guide-snow-leopard-with-100-vanilla-sle-comprehensive-dsdt-patching-guide/ |
Mother-FKR/RazerBlade15-Base-Model-Hackintosh_macOS_Big_Sur
1 | https://github.com/Mother-FKR/RazerBlade15-Base-Model-Hackintosh_macOS_Big_Sur |
[教程] 「教程」简单扯扯用 VMWare 在实体机上装 Big Sur
1 | http://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1862049&highlight=big%2Bsur |
[Guide] Installing Mountain Lion.
1 | https://www.insanelymac.com/forum/topic/277015-guide-installing-mountain-lion/ |
[Guide] The all-in-one guide to Vanilla OS X (including Chameleon + DSDT) for beginners (updated for Yosemite!)
1 | https://www.insanelymac.com/forum/topic/280756-guide-the-all-in-one-guide-to-vanilla-os-x-including-chameleon-dsdt-for-beginners-updated-for-yosemite/ |
ALL IN ONE GUIDES FOR HACKINTOSH
1 | https://www.insanelymac.com/forum/topic/298027-guide-aio-guides-for-hackintosh/ |
黑苹果常见驱动以及作用介绍
1 | http://blog.sina.com.cn/s/blog_4ddc30040102yzho.html |
黑果驱动介绍和选择
1 | https://zhuanlan.zhihu.com/p/94680998 |
(GUIDE) Calculating your Bus Ratio
1 | https://www.insanelymac.com/forum/topic/240542-guide-getting-your-busratio/ |
Existing Lilu plugins
1 | https://github.com/acidanthera/Lilu/blob/master/KnownPlugins.md |
Chameleon 2.4svn Official PKG Installer
1 | https://www.insanelymac.com/forum/topic/231075-chameleon-24svn-official-pkg-installer/ |
[Guide] USB power property injection for Sierra (and later)
1 | https://www.tonymacx86.com/threads/guide-usb-power-property-injection-for-sierra-and-later.222266/ |
Οδηγός Εγκατάστασης MacOSX Lion 10.7 στο project PC (GA-EP35-DS3P). v1.1
1 | https://howtomacospc.wordpress.com/2011/12/02/%CE%BF%CE%B4%CE%B7%CE%B3%CF%8C%CF%82-%CE%B5%CE%B3%CE%BA%CE%B1%CF%84%CE%AC%CF%83%CF%84%CE%B1%CF%83%CE%B7%CF%82-macosx-lion-10-7-2-%CF%83%CF%84%CE%BF-project-pc-ga-ep35-ds3p-v1-1/ |
The Always Up-to-Date Guide to Building a Hackintosh (macOS Sierra)
1 | https://lifehacker.com/the-always-up-to-date-guide-to-building-a-hackintosh-o-5841604 |
How to easily install Mac OS X Lion on your PC / Laptop Osx86 Hackintosh Walkthrough / Tutorial
1 | https://www.youtube.com/watch?v=f6gnFSwRVpI |
Δημιουργία DVD Mac OS X Lion installation για PC (video)
1 | https://howtomacospc.wordpress.com/2011/10/30/%ce%b4%ce%b7%ce%bc%ce%b9%ce%bf%cf%85%cf%81%ce%b3%ce%af%ce%b1-dvd-lion-installation-%ce%b3%ce%b9%ce%b1-pc/ |
Installation Guides
1 | https://wiki.osx86project.org/wiki/index.php/Installation_Guides |
Cómo activar Intel HD 2500 ga-z77-d3h en OS X 10.8.5 Mountain Lion
1 | https://www.osx86spain.com/52/47197/como-activar-intel-hd-2500-ga-z77-d3h-en-os-x-10-8-5-mountain-lion.html |
Install OS X Lion 10.7.2, 10.7.3 on PC Hackintosh [USB]
1 | https://geeknizer.com/install-osx-lion-10-7-2-on-pc-hackintosh-usb/ |
Install Snow Leopard on PC
1 | https://geeknizer.com/install-snow-leopard-on-pc/ |
Retail OS X Install (10.5.7) on Gigabyte GA-EX58-UD5 (Core i7) Mobo, Scripted
1 | https://wiki.osx86project.org/wiki/index.php/Retail_OS_X_Install_%2810.5.7%29_on_Gigabyte_GA-EX58-UD5_%28Core_i7%29_Mobo%2C_Scripted |
Dual Boot Windows 7 and OS X Snow Leopard Using Chameleon
1 | https://tonymacx86.blogspot.com/2009/11/dual-boot-windows-7-and-os-x-snow.html |
Build a Hackintosh Mac for Under $800
1 | https://lifehacker.com/build-a-hackintosh-mac-for-under-800-321913 |
Инсталация на mac os x 10.5.x на ПЦ с дуалбуут
1 | https://www.kaldata.com/forums/topic/157610-%D0%B8%D0%BD%D1%81%D1%82%D0%B0%D0%BB%D0%B0%D1%86%D0%B8%D1%8F-%D0%BD%D0%B0-mac-os-x-105x-%D0%BD%D0%B0-%D0%BF%D1%86-%D1%81-%D0%B4%D1%83%D0%B0%D0%BB%D0%B1%D1%83%D1%83%D1%82/ |
creating a kext disabler
1 | https://www.tonymacx86.com/threads/creating-a-kext-disabler.48254/ |
【持续更新】OpenCore引导-v各种卡及OC引导常见问题解决方案速查表合集
1 | http://imacos.top/2021/01/19/0154/ |
How to update to 10.5.2./10.5.3
1 | http://netkas.org/?p=50 |
Triple Boot Windows 7, Mac OS X Snow Leopard & Ubuntu 10.04
1 | https://bigfloppydonkeydisk.blogspot.com/2010/07/triple-boot-windows-7-mac-os-x-snow.html |
Vista bootloader
1 | https://wiki.osx86project.org/wiki/index.php/Vista_bootloader |
Understanding MAC OSx86 for Dummies
1 | https://geeknizer.com/understanding-mac-osx86-for-dummies/ |
Download, Install Chameleon RC4 Bootloader
1 | https://geeknizer.com/download-install-chameleon-bootloader/ |
Dual Booting Windows 7 and Snow Leopard on a HP dv5 Laptop - The Definitive Guide!
1 | https://kylesinterestingstuff.blogspot.com/2010/06/dual-booting-windows-7-and-snow-leopard.html |
Install Mac OS X – HP DV1000
1 | https://cisco21c.wordpress.com/2011/01/21/install-mac-os-x-hp-dv1000/ |
Install Snow Leopard on AMD PC, Laptop
1 | https://geeknizer.com/install-snow-leopard-on-amd/ |
Instalación OS X 10.9 Mavericks con MyHack
1 | https://www.osx86spain.com/148/47060/instalacion-os-x-10-9-mavericks-con-myhack.html# |
How to Build a Hackintosh with Snow Leopard, Start to Finish
1 | https://lifehacker.com/how-to-build-a-hackintosh-with-snow-leopard-start-to-f-5351485 |
Installation Guides/Kalyway DualBoot 10.5.2
1 | https://wiki.osx86project.org/wiki/index.php/Installation_Guides/Kalyway_DualBoot_10.5.2 |
Install Snow Leopard on Your Hackintosh PC, No Hacking Required
1 | https://lifehacker.com/install-snow-leopard-on-your-hackintosh-pc-no-hacking-5360150 |
How to Install SnowOSX Universal
1 | https://geeknizer.com/how-to-install-snowosx-universal/ |
Install OS X 10.8 Mountain Lion on PC Hackintosh [Bootable USB]
1 | https://geeknizer.com/install-osx-mountain-lion-on-pc-hackintosh-usb/ |
Make Bootable USB Mountain Lion Install Disk drive [Easy]
1 | https://geeknizer.com/make-bootable-usb-mountain-lion-install-disk-drive/ |
Install Mac OS X Lion 10.7 on PC Hackintosh
1 | https://geeknizer.com/install-mac-os-lion-10-7-on-pc-hackintosh/ |
Installation Guides/Existing Leopard Method
1 | https://wiki.osx86project.org/wiki/index.php/Installation_Guides/Existing_Leopard_Method |
Snow Leopard on Samsung R519
1 | https://www.unix-master.com/2013/06/snow-leopard-on-samsung-r519.html |
Using “myHack installer” with additional custom kext files
1 | https://wiki.osx86project.org/wiki/index.php/Using_%22myHack_installer%22_with_additional_custom_kext_files |
How to Build a Hackintosh Mac and Install OS X in Eight Easy Steps
1 | https://lifehacker.com/how-to-build-a-hackintosh-mac-and-install-os-x-in-eight-5672051 |
Hackintosh Upgrades Without Problems to 10.6.1
1 | https://lifehacker.com/hackintosh-upgrades-without-problems-to-10-6-1-5356864 |
Make Bootable USB [OSx86, Snow Leopard]
1 | https://geeknizer.com/make-bootable-usb-mac-osx86-snow-leopard/ |
Install Mac OS X Leopard OSx86 on PC Dual Boot Windows 7, Vista in 9 Easy Steps
1 | https://geeknizer.com/install-mac-os-x-leopard-osx86-on-pc-dual-boot-windows-7-vista-in-9-easy-steps/ |
OSX 10.6.8 running on Toshiba M305
1 | https://thetalesnet.wordpress.com/2011/06/28/osx-10-6-8-running-on-toshiba-m305/ |
How to install 10.4.4 on Dell Inspiron 8500
1 | https://wiki.osx86project.org/wiki/index.php/How_to_install_10.4.4_on_Dell_Inspiron_8500 |
The Dual boot Tutorial With installing (Snow) Leopard and Windows 7 on a PC OSX86 Tutorial
1 | https://www.youtube.com/watch?v=ZRHbmsVZ3ww |
Install Mac OSX Snow Leopard 10.6.6 VMware on Windows PC
1 | https://geeknizer.com/install-mac-osx-snow-leopard-10-6-6-vmware-on-windows-pc/ |
How to install OS X 10.9 Mavericks on your PC with myHack
1 | http://www.macbreaker.com/2013/06/how-to-install-os-x-109-mavericks-dp1.html |
Quad booting
1 | https://wiki.osx86project.org/wiki/index.php/Quad_booting |
Make Bootable USB, DVD drive for OS X Lion Installation
1 | https://geeknizer.com/make-bootable-usb-dvd-drive-os-x-lion-installation/ |
OpenCore引导各平台所需要的SSDT
1 | http://imacos.top/2020/03/29/ssdt/ |
Wingrub instead of Grub
1 | https://wiki.osx86project.org/wiki/index.php/Wingrub_instead_of_Grub |
Multibooting
1 | https://wiki.osx86project.org/wiki/index.php/Multibooting |
Stock XP and OS X Dual Boot
1 | https://wiki.osx86project.org/wiki/index.php/Stock_XP_and_OS_X_Dual_Boot |
MacOSx86 10.4.5 via VMWare on WinXP Pro Sp2
1 | https://buddhistnerd.blogspot.com/2006/06/namaste-friends.html |
Install Snow Leopard on PC [USB]
1 | https://geeknizer.com/install-snow-leopard-on-pc-easy/ |
How to Troubleshoot a Hackintosh
1 | https://lifehacker.com/how-to-troubleshoot-a-hackintosh-5845186 |
Install Mac OS X Leopard OSx86 on PC Dual Boot Windows 7, Vista in 9 Easy Steps
1 | https://geeknizer.com/install-mac-os-x-leopard-osx86-on-pc-dual-boot-windows-7-vista-in-9-easy-steps/ |
10.5.5 on the Dell Inspiron/mini 9
1 | https://wiki.osx86project.org/wiki/index.php/10.5.5_on_the_Dell_Inspiron/mini_9 |
Install to a USB Hard Drive
1 | https://wiki.osx86project.org/wiki/index.php/Install_to_a_USB_Hard_Drive |
Intel 3945 Wireless Driver for Snow Leopard [Hackintosh]
1 | https://geeknizer.com/intel-3945abg-wireless-snow-leopard-hackintosh/ |
ZDNet.de - Praxis: Installation von Mac OS X 10.6 auf einem PC
1 | https://www.youtube.com/watch?v=lfzXhzMrruI |
The Dual boot Tutorial With installing (Snow) Leopard and Windows 7 on a PC OSX86 Tutorial
1 | https://www.youtube.com/watch?v=ZRHbmsVZ3ww |
Mac OS X86!!! Run Mac natively on windows
1 | https://drchoc.blogspot.com/2006/04/mac-os-x86-run-mac-natively-on-windows.html |
Το OS X x86 στο windows-PC σας!
1 | https://makosxgr.blogspot.com/ |
Simple Dual Boot
1 | https://wiki.osx86project.org/wiki/index.php/Simple_Dual_Boot |
Triple Booting Windows, Linux, and OSX86.
1 | https://cy8erpunkthunk.blogspot.com/2006/03/triple-booting-windows-linux-and-osx86.html |
Installatie van Kalyway/OSX en bootloader Vista/XP
1 | https://docs.google.com/document/d/1RO_-oS4h3_i3iA-buWXoHQM3Q9ocg87ACKz-zvtkWl8/edit |
Mac osx86 iDeneb 10.5.6
1 | https://pools.wordpress.com/2009/02/26/mac-osx86-ideneb-1056/ |
Atualizando o iDeneb da versão 10.5.6 para a 10.5.7
1 | https://pools.wordpress.com/2009/06/29/atualizando-o-ideneb-da-versao-10-5-6-para-a-10-5-7/ |
Atualizando o iDeneb para a versão 10.5.8
1 | https://pools.wordpress.com/2009/08/12/atualizando-o-ideneb-para-a-versao-10-5-8/ |
Installation Guides/Pentium4D-G31M-GS-R2.html
1 | https://wiki.osx86project.org/wiki/index.php/Installation_Guides/Pentium4D-G31M-GS-R2.html |
Using a British/UK Windows keyboard with an Apple Mac in OS X (3)
1 | https://www.gyford.com/phil/writing/2005/11/20/using-a-british/ |
Installation Guides/Kalway AMD 10 5 2
1 | https://wiki.osx86project.org/wiki/index.php/Installation_Guides/Kalway_AMD_10_5_2 |
Install Mac OS X Leopard OSx86 on PC Dual Boot Windows 7, Vista in 9 Easy Steps
1 | https://geeknizer.com/install-mac-os-x-leopard-osx86-on-pc-dual-boot-windows-7-vista-in-9-easy-steps/ |
Praxis: Installation von Mac OS X 10.6 auf einem PC
1 | https://www.zdnet.de/41502928/praxis-installation-von-mac-os-x-10-6-auf-einem-pc/ |
Installation Guide in Turkish
1 | https://wiki.osx86project.org/wiki/index.php/Installation_Guide_in_Turkish |
Programas Essenciais no MacOSX
1 | https://pools.wordpress.com/2009/03/29/60/ |
Como instalar o Windows XP, Mac OSX86 10.5.6 e o Linux Ubuntu 9.04 no PC com Triple Boot!
1 | https://pools.wordpress.com/2009/06/29/como-instalar-windows-xp-mac-osx86-ubuntu-904-triple-boot/ |
Mac OS X Leopard Retail Installation Simple Guide
1 | https://web.archive.org/web/20120510121540/http://3rr0rists.net/macintosh/mac-os-x-leopard-retail-installation-simple-guide.html |
How To Install Mac OS X Lion on PC
1 | https://web.archive.org/web/20120324081231/http://3rr0rists.net/macintosh/how-to-install-mac-os-x-lion-on-pc.html |
How To Install Snow Leopard Retail on a PC
1 | https://web.archive.org/web/20120324031242/http://3rr0rists.net/macintosh/how-to-install-snow-leopard-retail-in-a-pc.html |
Installing OS X Snow Leopard
1 | http://lnx2mac.blogspot.com/2010/07/installing-os-x-snow-leopard-part-one.html |
Inverting direction of mouse scroll wheel
1 | https://superuser.com/questions/310681/inverting-direction-of-mouse-scroll-wheel/364353#364353 |
OpenCore 简体中文参考手册
1 | https://oc.skk.moe/ |
Optimal BIOS Configuration
1 | http://lnx2mac.blogspot.com/2010/07/optimal-bios-configuration.html |
[GUIDE] HP ProBook 4530s with Lion 10.7.5
1 | https://www.insanelymac.com/forum/topic/282994-guide-hp-probook-4530s-with-lion-1075 |
10.9 Mavericks Simple Vanilla Hackintosh Install Guide
1 | https://www.insanelymac.com/forum/topic/289062-109-mavericks-simple-vanilla-hackintosh-install-guide/ |
[Guide] El Capitan, Sierra / High Sierra / Mojave / Catalina on Intel 5, 6, 7, 8, 9 Chipset Series / Nehalem, SandyBridge, IvyBridge, Haswell, Broadwell
1 | https://www.insanelymac.com/forum/topic/323052-guide-el-capitan-sierra-high-sierra-mojave-catalina-on-intel-5-6-7-8-9-chipset-series-nehalem-sandybridge-ivybridge-haswell-broadwell/ |
10.11.0-10.11.3 Skylake Starter Guide
1 | https://www.tonymacx86.com/threads/10-11-0-10-11-3-skylake-starter-guide.179221/ |
[Guide] 10.11+ USB changes and solutions
1 | https://www.tonymacx86.com/threads/guide-10-11-usb-changes-and-solutions.173616/ |
[Guide] Alternative to the minStolenSize patch with 32mb DVMT-prealloc
1 | https://www.tonymacx86.com/threads/guide-alternative-to-the-minstolensize-patch-with-32mb-dvmt-prealloc.221506/ |
iBoot + MultiBeast: Install Mac OS X on any Intel-based PC
1 | https://tonymacx86.blogspot.com/2010/04/iboot-multibeast-install-mac-os-x-on.html |
Tweaking Your System: Install Chameleon, DSDT, & Extras to EFI Partition
1 | https://tonymacx86.blogspot.com/2010/01/tweaking-your-system-install-chameleon.html |
How to Install Snow Leopard on PC [Hackintosh]
1 | https://geeknizer.com/how-to-install-mac-os-x-snow-leopard-on-pc-dual-boot/ |
Cómo Instalar Mac OS X desde wmware para iniciar en nativo
1 | https://www.osx86spain.com/107/4229/c-mo-instalar-mac-os-x-desde-wmware-para-iniciar-en-nativo.html |
How to Install Snow Leopard on VirtualBox
1 | https://geeknizer.com/install-snow-leopard-virtualbox/ |
How to Install Snow Leopard [VMWare]
1 | https://geeknizer.com/how-to-install-snow-leopard-vmware-workstation-windows/ |
Install Mac OS X in VirtualBox [Snow Leopard]
1 | https://geeknizer.com/install-mac-os-in-virtualbox/ |
[教程] 通过加载AppleLPC.kext来使用MAC原生的CPU电源管理
1 | http://bbs.pcbeta.com/viewthread.php?tid=594984 |
3rdPartyDrivers
1 | https://wiki.osx86project.org/wiki/index.php/3rdPartyDrivers |
First generation Intel HD Graphics on macOS
1 | https://github.com/Goldfish64/ArrandaleGraphicsHackintosh |
Завод Intel® Quick Sync Video
1 | https://www.applelife.ru/threads/zavod-intel-quick-sync-video.817923/ |
Установка macOS High Sierra 10.13 на intel PC
1 | https://www.applelife.ru/threads/ustanovka-macos-high-sierra-10-13-na-intel-pc.2210706/page-742#post-730496 |
Intel® HD Graphics FAQs
1 | https://github.com/acidanthera/WhateverGreen/blob/master/Manual/FAQ.IntelHD.en.md |
Intel® HD Graphics
1 | https://www.applelife.ru/threads/intel-hd-graphics.1289648/page-170#post-750369 |
WhateverGreen/Manual/AzulPatcher4600_equivalent.plist
1 | https://github.com/acidanthera/WhateverGreen/blob/master/Manual/AzulPatcher4600_equivalent.plist |
GUIDE: Using a EFI Graphics string
1 | http://forum.netkas.org/index.php/topic,66.0.html |
GFX Strings Walkthrough
1 | https://aquamac.proboards.com/thread/509 |
Intel Gma950 32bit only
1 | https://www.applelife.ru/threads/intel-gma950-32bit-only.22726/ |
Install Snow Leopard on a PC / Laptop (OSX86) Tutorial/guide
1 | https://www.youtube.com/watch?v=RVan49_Vm_I |
Anti-Hackintosh Buyers Guide
1 | https://dortania.github.io/Anti-Hackintosh-Buyers-Guide/ |
Выбор комплектующих для Mac OS X (Hackintosh)
1 | https://4pda.to/forum/index.php?showtopic=72333 |
CPU Compatibility
1 | https://hackintoshenglish.fandom.com/wiki/CPU_Compatibility |
Установка macOS Catalina 10.15 на intel PC
1 | https://applelife.ru/threads/ustanovka-macos-catalina-10-15-na-intel-pc.2944136/page-43#post-810430 |
Установка macOS Big Sur 11.0 beta на intel PC (old)
1 | https://applelife.ru/threads/ustanovka-macos-big-sur-11-0-beta-na-intel-pc-old.2944999/page-81#post-884400 |
One box, every x86 install! HP DC 7900
1 | https://www.reddit.com/r/hackintosh/comments/j0d6t0/one_box_every_x86_install_hp_dc_7900/ |
Getting started with ACPI
1 | https://dortania.github.io/Getting-Started-With-ACPI/ |
HP Compaq DC7900 SFF
1 | https://github.com/khronokernel/trashOS |
Multiboot with OpenCore
1 | https://dortania.github.io/OpenCore-Multiboot/ |
OpenCore-Install-Guide/clover-conversion
1 | https://github.com/dortania/OpenCore-Install-Guide/tree/master/clover-conversion |
faq - hackintosh
1 | https://www.reddit.com/r/hackintosh/wiki/faq#wiki_hackintoshing_reddit_faq |
使用 OpenCL 和 OpenGL 图形处理程序的 Mac 电脑
1 | https://support.apple.com/zh-cn/HT202823 |
Introduction - USB Map
1 | https://usb-map.gitbook.io/project/ |
[Guide] Intel Framebuffer patching using WhateverGreen
1 | https://www.tonymacx86.com/threads/guide-intel-framebuffer-patching-using-whatevergreen.256490/ |
Установка macOS Big Sur 11.0 beta на intel PC (old)
1 | https://applelife.ru/threads/ustanovka-macos-big-sur-11-0-beta-na-intel-pc-old.2944999/page-81#post-884400 |
APFS Snapshots: Rolling Back to a Previous Known State
1 | https://www.lifewire.com/roll-back-apfs-snapshots-4154969 |
Making a bootable High Sierra USB Installer Entirely From Scratch in Windows or Linux Mint (without access to Mac or App Store Installer.app)
1 | https://www.insanelymac.com/forum/topic/329828-making-a-bootable-high-sierra-usb-installer-entirely-from-scratch-in-windows-or-linux-mint-without-access-to-mac-or-app-store-installerapp/ |
Clover v.2 Instructions
1 | https://www.insanelymac.com/forum/topic/282787-clover-v2-instructions/ |
Big Sur on unsupported Macs TL;DR
1 | https://lynx.pink/big-sur-unsupported-macs-tldr/#/ |
BasiliskII for Linux
1 | https://emaculation.com/doku.php/basiliskii_linux_setup |
Extracting a ROM for use in SheepShaver using Basilisk II
1 | https://emaculation.com/doku.php/sheepshaver_roms |
SheepShaver Brings the Classic Mac OS to Intel Macs and Leopard
1 | https://lowendmac.com/2008/sheepshaver-brings-the-classic-mac-os-to-intel-macs-and-leopard/ |
Mac OS 11.3 has broken support for older Mac Pros
1 | https://forums.macrumors.com/threads/mac-os-11-3-has-broken-support-for-older-mac-pros.2289056/ |
QEMU/Mac OS 9
1 | https://en.wikibooks.org/wiki/QEMU/Mac_OS_9 |
Qemu [E-Maculation wiki]
1 | https://www.emaculation.com/doku.php/qemu |
Mini vMac for iOS
1 | https://namedfork.net/minivmac/ |
SheepShaver for Linux
1 | https://www.emaculation.com/doku.php/ubuntu |
Pattern of MLB (Main Logic Board) serial
1 | https://www.insanelymac.com/forum/topic/303073-pattern-of-mlb-main-logic-board/s |
Olarila
1 | https://www.olarila.com/topic/9679-olarila-big-sur-beta-5-vanilla-image-restore-mode-easy-way-opencore/ |