DSDT提取与编译教程-面向小白

2020-02-10 14,397 0

扩展阅读:
http://bbs.pcbeta.com/viewthread-1571455-1-1.html


概述

为了能让OS X的特性能够在普通PC上正常工作,就需要修改(可以利用补丁)DSDT和SSDT。本 教程的目的,就是介绍如何利用现有补丁,修改你电脑的原始OEM DSDT/SSDT。

虽然你可以用其它型号的电脑的DSDT,但这样的后果是会造成更多问题。你不能保证用别的型号电脑 的DSDT是没问题的。如果你用了别的电脑的ACPI文件,即便是硬件配置非常相似,也可能会造成 系统 不稳定 和 一些奇葩的问题。

使用补丁修改DSDT/SSDT包含了以下步骤: -提取原始ACPI文件 -反编译原始文件 -分析并筛选这 些原始文件 -使用补丁修改 -编译并保存,再放到引导特定的目录


在Clover启动界面按F4提取

在Clover启动界面,你可以按 “F4”键,Clover会把原始ACPI文件提取到 EFI/Clover/ACPI/origin 目录。再进入系统,就可以在那个目录看到提取到的原始文件了。之后,就可以 开始反编译、修改了。注意,有的BIOS可能按F4键没用,而需要Fn+F4,所以,如果不确定的话,F4 和 Fn+F4 都按一次。提取的时候,你不会看到任何是否完成的提示,只是会因为正在写文件而出现一 点延迟现象。如果是用Clover的USB设备(U盘、硬盘)启动的,文件会被提取到USB设备,这样会感 到比较明显的延迟。

有时候,Clover提取的SSDT可能会重复。重复的文件,会影响到反编译。如果你反编译的时候看到了 这样的提示信息(duplicate definitions),就需要仔细检查重复的是哪个了(例如,看大小)。由于存 在这样的问题,所以在Linux提取比较好。因为我还没有⻅过在Linux提取的出现重复的情况。

当然CLOVER提取是普遍的简单方法,如果有条件可以使用Linux系统提取

【在Linux提取(推荐,还可以顺便提取声卡codec) 在Linux系统里,可以直接在系统分区里找到原始 ACPI文件。你可以在 /sys/firmware/acpi/tables 和 /sys/firmware/acpi/tables/dynamic 看到。可以简单 地用命令进行拷⻉。

Linux系统不需要安装,做一个启动U盘就可以了:

http://www.ubuntu.com/download/desktop/create- a-usb-stick-on-windows

打开Linux的终端输入: sudo cp -R /sys/firmware/acpi/tables DEST 注意: 用FAT32格式的USB设备 (U盘、硬盘)的挂载点的路径,替换命令里的 DEST


反编译ACPI文件

这里是Rehabman的修改版编译器:
https://bitbucket.org/RehabMan/acpica/downloads

。把iasl编译器拷⻉到/usr/bin目录,会让调用iasl更方便。

终端的反编译命令: cd “你存放DSDT和SSDT的文件夹名” iasl -da -dl *.aml

反编译介绍:
http://bbs.pcbeta.com/viewthread-1475332-1-1.html

当然这边我用图片,提供我自己习惯的编译方法。

1.我先把origin文件夹,拷⻉到了桌面

2.确保此文件夹里只有DSDT.aml和其它SSDT开头的aml文件,像这样

注意:不要管那个dsl文件夹,你们没有的,我自己加的

3.打开终端,先输入cd,空一格,将桌面上的oringin文件夹拖到终端,就会像这样

4.回⻋,输入如图所示命令

注意:确保已把iasl编译器拷⻉到/usr/bin目录

回⻋编译就行了

我们会得到,这么一堆dsl文件,这里我们只需要DSDT.aml文件,其它SSDT就删掉好了。

修复错误

即使同时反编译所有文件(使用iasl的-da参数),还是难免存在错误。反编译后的文件之所以 还会有错误,是因为一直以来iasl编译器的版本都在更新、iasl的实现细节变化了、不同的电脑与系统环 境。存在这些错误的原因可能是(Rehabman认为),里面调用到的一些方法,实际上是Windows内部 实现的(例如 MMTB方法和MDBG方法)。实际也有这样的情况,ACPI文件的代码原本就存在缺陷或 者某些代码本来就是无效的(很难说得清楚)。

打开编译出来的DSDT.dsl文件(用MaciASL软件:
https://github.com/RehabMan/OS-X-MaciASL-patc hmatic
,这是Rehabman的修改版)

打开就是这个样子

点击上方的
Compile(编译)

这边我这里是有错误的

我这个错误只要打syn补丁就行了,首先,点击上方Patch 在众多补丁里找到syn的那一堆,然后找到,PARSEOP_ZERO的补丁,点击,等它加载一下,然后Apply就行了

现在没有错误,就大功告成了,警告 是没有关系的。

接着,在左上⻆,导出你的DSDT文件

格式为ACPI Machine Language Binary,名称为DSDT.aml

最后步骤

将你的DSDT.aml文件拷⻉到,EFI/CLOVER/ACPI/Patch下,重启,看看能不能正常进系统,如果可 以,那就代表这个DSDT以后你可以直接用了。

相关文章

HP 800G1 USDT 黑苹果(持续更新)
macOS Big Sur 11.4 20F71 Installer for OpenCore 0.6.9 and CLOVER 5134 and PE三EFI分区原版镜像
黑苹果Big Sur11.1(20C69)解锁SLE
Win10装MacOS黑苹果系统双系统
黑果S410 AR9565 Bluetooth蓝牙驱动
macOS Catalina 10.15.6 19G73 正式版 with Clover 5119原版镜像[双EFI版][UEFI and MBR]

发布评论