![0456d8b79b1779f1d44359e9e1c64c8b.png](https://i-blog.csdnimg.cn/blog_migrate/c420668940aa409f66f885366b35daef.jpeg)
本期视频
https://www.bilibili.com/video/BV1U5411Y7Bs/www.bilibili.com学会定制OC引导文件,从此安装黑苹果不再是难题。
制作DSDT补丁,是OC定制的第一步,也是最为关键的一步,考虑到网上的相关教程几乎没有,所以这期视频我尽量从黑果小白的角度出发,给大家重点讲一下这最关键的一环。
hello,大家好,这里是小明和他的女朋友,我是小明,打算不定期的给大家分享一些黑苹果相关的小技巧或者电脑性能优化的小技巧,也希望大家多多鼓励,多多关注、点赞和多多支持我们!
今天这期视频是认真整理了很久的【黑苹果系列】小白教程之如何更便捷地定制OC引导文件-----DSDT补丁篇
首先要明白DSDT文件概述了PC硬件信息,而普通PC下的硬件信息与Mac有很多冲突的地方,我们需要通过修改打补丁的方式,使Mac os能 正常识别其硬件。
- 相关概念介绍
DSDT (Differentiated System Description Table Fields)
SSDT (Secondary System Description Table Fields)
其实它们都属于 ACPI 其中的一个表格,
ACPI 是 Advanced Configuration & Power Interface 缩写,高级配置和电源接口,
ACPI与DSDT之间的关系:ACPI 是操作系统的一系列接口,这个接口包含了很多表格, DSDT 和 SSDT 既是其中的表格同时也是一些接口。
- 相关指导网站
1.ACPI官方指导网址
https://dortania.github.io/Getting-Started-With-ACPI/dortania.github.io2.黑苹果六位大神合作制作的OC补丁模板
https://github.com/daliansky/OC-littlegithub.com- 官方推荐的补丁
![086485bb4693779b0eb2a3952149c78a.png](https://i-blog.csdnimg.cn/blog_migrate/76a83a66ad78564f07d8f9f163e3fd53.jpeg)
1.SSDT-plug.aml 加载CPU原生电源管理(开启节能四项),必须
2.SSDT-EC-USBX(同SSDT-EC):禁用EC(Embedded Controller)和修复USB充电问题,可选
3.SSDT-AWAC.aml 修复RTC禁止AWAC(或者使用RTC0.aml补丁,二者选其一),必须
4.SSDT-PMC.aml 开启NVRAM (Z370、Z490和B460原生支持,可以不需要此补丁,其他主板基本都需要)可选
5.SSDT-RHUB:修复USB,华硕400系列主板需要 ,可选
- 黑苹果真正做到稳定运行还需要一些非常重要不可或缺的补丁,我推荐几个
6.SSDT-GPRW.aml 解决大部分PC睡眠即醒问题,
需搭配重命名使用(rename 47505257 02 to 58505257 02)
7.SSDT-PM.aml 加载节能第五项(断电后自动重启生效,PC基本通用的补丁)
8.SSDT-OC-XOSI.aml 操作系统补丁,配合重命名rename 5F4F5349 to 584F5349,技嘉主板需要
- 补丁制作篇
在这里推荐使用宪武大神和黑果小兵github上制作的一系列OC-DSDT补丁模板
模板内还有详细的制作和使用说明,很实用,强烈推荐。
如何确定补丁与自己的主板匹配呢?
那么我们就需要从主板的DSDT文件信息中去分析
那么问题来了,如何提取主板的DSDT原始文件。
windows、Mac、Linux不管哪种系统下都有很多软件支持提取DSDT信息
很多人是使用SSDTTime来自动生成的补丁,但鉴于SSDTTime仅支持有限的三个补丁
SSDT-EC :
SSDT-PLUG:
SSDT-HPET:
我就不推荐了
比如在Mac 下,用MaciASL就可以直接获取DSDT信息。
![0e2af264da6a0dbb3b3cd064b7bc3a3c.png](https://i-blog.csdnimg.cn/blog_migrate/78e08363b09aeab53c2b0b7c654ec8b9.jpeg)
制作U盘启动提取DSDT信息(支持PC没有安装任何系统情况下)
在这里推荐一种PC没有安装任何系统的前提下,利用制作的clover启动U盘来提取DSDT信息
三步走
1.格式化一个U盘为FAT32格式, 解压 (会提供)DSDT EFI.zip ,EFI文件夹放到U盘根目录下
2.设置BIOS,从U盘启动,
3.启动到clover界面,按键盘F4(部分笔记本可能是F4+Fn)会自动提取DSDT文件到U盘EFI/ClOVER/ACPI/origin文件夹下
4.获取完毕,找到U盘EFI/ClOVER/ACPI/origin文件夹下DSDT.aml
克隆OC-little 、https://github.com/dortania/Getting-Started-With-ACPI
集合OC官方指导和补丁模板说明文档,以及OC官方补丁
下面演示如何使用关键字来确定我们的主板使用什么样的补丁?
- SSDT-plug.aml 加载CPU原生电源管理(开启节能四项),必须
1.
05-1 注入X86 (OC-little 补丁库 )
用MaciASL打开DSDT.aml
搜索cpu的代码名称,可能是下面几个之一:
Processor 找到对应路径SB.PR
使用SB.PR00 找到相同名称的补丁,另存为SSDT-plug.aml,
格式选为ACPI Machine Language Binary
加载后重启没有生效的话请清理一次nvram,查看偏好设置–节能
- SSDT-EC-USBX:禁用EC(Embedded Controller)和修复USB充电问题
也可以通过hackintool定制USB端口映射时生成,可选
搜索 PNP0C09
ec名字也有可能是H_EC或EC0
若有
return (Zero)语句,则不需要禁用EC
不推荐这个补丁,建议使用DSDT-EC.aml补丁
- SSDT-AWAC.aml 修复RTC禁止AWAC
从原文可以看出,只要 `STAS`=`1`,就可以启用 RTC 并同时禁用 `AWAC`
03-二进制更名与预置变量----补丁库 (OC-little 补丁库 )
搜索 Device (RTC) 、Device (AWAC)、ACPI000E、PNP0B00
原文:
```Swift
Device (RTC)
{
...
Method (_STA, 0, NotSerialized)
{
If ((STAS == One))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
...
}
Device (AWAC)
{
...
Method (_STA, 0, NotSerialized)
{
If ((STAS == Zero))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
...
}
```
从原文可以看出,只要 `STAS`=`1`,就可以启用 RTC 并同时禁用 `AWAC`。采用 **预置变量法** 如下:
- 官方补丁 ***SSDT-AWAC***
```Swift
External (STAS, IntObj)
Scope (_SB)
{
Method (_INI, 0, NotSerialized) /* _INI: Initialize */
{
If (_OSI ("Darwin"))
{
STAS = One
}
}
}
```
注:官方补丁引入了路径 `_SB._INI`,使用时应确认 DSDT 以及其他补丁不存在 `_SB._INI`。
- 改进后补丁 ***SSDT-RTC_Y-AWAC_N***
```Swift
External (STAS, IntObj)
Scope ()
{
If (_OSI ("Darwin"))
{
STAS = One
}
}
``
也可用DSDT-RTC0.aml补丁实现。
- SSDT-PMC.aml 开启NVRAM (Z370、Z490和B460原生支持,可以不需要此补丁,其他主板基本都需要)可选
在OC0.5.5正式版开始支持300系列的原生nvram。
extra-files---compiled (官方补丁库)
搜索001F0000 或 PNP0A08 确定路径 (出现多个,取第一个)
确定lpc部件名称并记录lpc的路径,比如我的LPC路径在_SB_.PC00.LPC0
打开SSDT-PMC.dsl,根据自己的dsdt编辑相关
- SSDT-RHUB:修复USB,华硕400系列主板可能需要 ,可选
搜索 Device (RHUB) 确定路径
extra-files---compiled (官方补丁库)
- SSDT-GPRW.aml 解决大部分PC睡眠即醒问题, 需搭配重命名使用 (rename 47505257 02 to 58505257 02)
SSDT-GPRW.aml 解决大部分睡眠即醒问题
12-060D补丁-12-1普通的060D补丁 (OC-little 位置 )
`_PRW` 定义了一个部件的唤醒方法
这些部件 `_PRW` 数据包的第 1 个字节是 `0D` 或者 `6D
`_PRW` 数据包的第 2 个字节多为 `03` 或者 `04`,将这个字节修正为 `0` 即完成了 `0D/6D补丁`
搜索ADR地址,_PRW
- `ADR` 地址:`0x001D0000`, 部件名称:`EHC1`。
- `ADR` 地址:`0x001A0000`, 部件名称:`EHC2`。
- `ADR` 地址:`0x00140000`, 部件名称:`XHC`, `XHCI`, `XHC1` 等。
- `ADR` 地址:`0x00140001`, 部件名称:`XDCI`。
- `ADR` 地址:`0x00140003`, 部件名称:`CNVW`。
```Swift
Name (_PRW, Package (0x02)
{
0x0D, /* 可能是0x6D */
0x03,/* 可能是0x04 */
...
})
使用此补丁还要配合重命名使用
(rename 47505257 02 to 58505257 02)
- SSDT-PM.aml 加载节能第五项(断电后自动重启生效,PC基本通用的补丁,实际没什么作用)
- SSDT-OC-XOSI.aml 操作系统补丁,配合重命名rename 5F4F5349 to 584F5349,技嘉主板需要
04 操作系统补丁 (OC-little 位置 )
操作系统补丁 用于解除系统对某些部件的限制。通常情况下,「不建议」使用 对于受系统限制而无法正常工作的部件,应根据 ACPI 的具体情况定制补丁
好了,DSDT补丁制作视频结束了,如何有帮到你,别忘了点赞投币收藏,也可以给我充电哦,如果还有不清楚的地方,也可以私信我,或者关注QQ群里的新动态。
https://www.bilibili.com/video/BV1U5411Y7Bs/www.bilibili.com下一期视频我会具体的教大家如何设置OC config配置文件,敬请期待哦