acpi是什么_acpi的概念
电脑主板的BIOS通过统一的接口提供操作系统到硬件的通讯,ACPI就是BIOS中这种统一接口的一种实现方式。
ACPI,Advanced Configuration and Power Interface,高级配置与电源接口,是BIOS到操作系统的一系列接口,2013年10月,ACPI提交由UEFI论坛管理并制定行业统一规范,ACPI可以实现的功能包括:
1.系统电源管理(System power management)
2.设备电源管理(Device power management)
3. 处理器电源管理(Processor power management)
4.设备和处理器性能管理(Device and processor performance management)
5.配置/即插即用(Configuration/Plug and Play)
6.系统事件(System Event)
7.电池管理(Battery management)
8.温度管理(Thermal management)
9.嵌入式控制器(Embedded Controller)
10.SMBus控制器(SMBus Controller)
ACPI接口中包含了很多预定义的表格,这些表格的定义存储在BIOS芯片中,由BIOS生成到内存中提交给操作系统,各种不同的操作系统都可以提取BIOS提交的原始ACPI表格文件,其中最重要的就是DSDT和SSDT表格。
DSDT,Differentiated System Description Table,差分系统描述表,包含大部分硬件信息的主体表格。
SSDT,Secondary System Description Table,辅助系统描述表,包含少部分硬件补充信息的表格。
macOS对DSDT中的硬件信息有严格的要求,所以需要提取并修改DSDT中的信息,直接修改DSDT需要排错和代码调整,比较复杂,所以一般使用SSDT修正来给DSDT打补丁。
在windows平台提取DSDT和SSDT使用AIDA64business软件,注意软件需要管理员权限打开,否则可能没有权限提取。打开软件菜单栏中的工具-ACPI浏览器。
点击SaveDSDT按钮可导出DSDT文件,在打开的保存对话框中,保存类型选择Allfiles,将文件名默认的.bin修改为.aml(ACPI Machine Language,ACPI机器语言)。
导出SSDT文件点击SaveTable,将所有SSDT开头的表格依次保存为SSDT-0.aml,SSDT-1.aml,SSDT-2.aml......
修改这些.aml机器语言文件需要先进行反编译成.asl(ACPI source language,ACPI源文件语言)文件,用来编译和反编译ACPI表的程序叫做 iASL。