如何提取系统的DSDT/SSDT文件?

前言 最后更新:2021/8/31 OpenCore 引导黑苹果在修正复杂的系统功能或问题时,需要参考或直接修改使用系统的 DSDT 和 SSDT 文件,它们都是 ACPI 的...

前言

最后更新:2021/8/31

OpenCore 引导黑苹果在修正复杂的系统功能或问题时,需要参考或直接修改使用系统的 DSDT 和 SSDT 文件,它们都是 ACPI 的一部分,笔者在新手名词解释的文章里简单讲解过,至于具体内容太过复杂这里不表。本文主要讲如何提取这些文件,从简单到复杂一共三种方式方法。

macOS 软件 QtiASL「推荐」

QtiASL 是一款黑苹果 ACPI 编译和反编译工具,功能比较丰富和强大,单窗口多标签操作,并且是跨平台的,拥有 Windows、Linux、macOS 版本,界面设计上比较符合国人操作思维,其它方面暂时没有发现什么问题。

运行软件后,点击左上角菜单中的“编辑”→“获取 ACPI 表”,或者直接按下 Command ⌘ + G(或 Windows 键 + G),软件会把提取到的所有 ACPI 表放到桌面,十分快速方便。

macOS 软件 DPCIManager

DPCIManager 是一款黑苹果工具,它可以提供基本 PCI 设备信息,提取系统 DSDT 等。

如上图所示,可直接提取系统 DSDT.aml 文件到你指定的位置。然后可以直接使用 MaciASL.app 进行编辑或分析。此方法比较快捷,但只能提取到 DSDT 一个文件。

引导工具 Clover

第二种方法是通过 Clover 引导工具,在下面这个界面进行:

上图是 Clover 的系统选择界面,因 Clover 有丰富的主题配置,这个界面不尽相同。在这个界面按下 F4 即可自动提取(笔记本注意也可能是 Fn + F4)。提取成功与否这个界面不会出现任何提示,确认你按下了 F4 即可。提取到的文件会自动存放到 /EFI/Clover/ACPI/Origin/ 目录。此方法可以提取到系统所有的 ACPI 表,包括 DSDT 和 SSDT。

但,既然咱们目前普遍使用 OpenCore 进行引导,再转回去用 Clover 确实也不方便。

Windows 下使用 AIDA64

第三种方法是在 Windows 中使用 AIDA64 软件进行提取。这个软件分为 Extreme 和 Engineer 两个版本,最常见的 Extreme 版笔者没找到 ACPI 提取功能(问号脸),经过一番搜索才弄明白原来有两种版本,孤陋寡闻了。

当前内容被隐藏,登陆后查看已有21374次阅读

登录后查看

直接安装运行 AIDA64,在如图所示位置依次单击工具 → ACPI 浏览器:

然后在弹出的窗口中点击“Save Table”,然后弹出的列表即是找到的 ACPI 表。

通常情况下,黑苹果只需要参考其中的 DSDT 表和十个 SSDT 表,在保存 SSDT 表的时候,注意改一下文件名,建议是 SSDT-0 到 SSDT-9,这样一共十个。

这样提取到的文件是 .bin 文件后缀,进入 macOS 后将文件后缀修改为 .aml 即可使用 MaciASL.app 直接打开查看和编辑。如果不放心也可以到 ACPI 网站下载 iasl 工具把 .bin 文件反编译为 .dsl 再进行查看和编辑。

如果你不知道怎么在 macOS 打开文件后缀编辑功能,打开访达,然后左上角偏好设置 → 高级,然后勾选“显示所有文件扩展名” 即可。