ACPI Debugger v1.2.0 开源发布
作为一名 BIOS 工程师,工作中难免会遇到调试 ACPI 代码的情况。
ACPI 代码通常和 UEFI 固件工程集成在一起。按照传统流程,每次修改 ASL 代码后,都需要重新编译 UEFI 工程、生成固件、烧录并重启测试。
如果问题需要反复修改 ASL 代码进行验证,这套流程就会消耗大量时间。
那么,能不能不重新编译和烧录固件,直接在 Windows 中修改并测试 ACPI 代码呢?
答案是:可以。
Windows 提供了 ACPI Table Override 测试机制。配合 ACPICA 和 Microsoft WDK 中的相关工具,可以完成下面这套流程:
导出 ACPI Table
↓
将 AML 反编译为 ASL
↓
修改 ASL 代码
↓
重新编译为 AML
↓
加载 Windows ACPI Override
↓
重启系统进行验证
其中:
-
• acpidump.exe用于导出系统当前的 ACPI Table; -
• iasl.exe用于将 AML 反编译为 ASL,以及把 ASL 重新编译为 AML; -
• Microsoft WDK 中的 asl.exe用于将编译后的 AML 暂存为 Windows ACPI Override。
为了简化整个操作过程,我借助 AI 将这套工作流整合成了一个 Windows 应用——ACPI Debugger。
ACPI Debugger 可以做什么?
ACPI Debugger 内置了 ASL 代码编辑器,可以直接编辑反编译得到的 ASL 文件,并提供以下功能:
-
• 导出并浏览 DSDT、SSDT 等 ACPI Table; -
• 将 AML 反编译为 ASL; -
• ASL 语法高亮与代码编辑; -
• 将修改后的 ASL 重新编译为 AML; -
• 解析 iASL 编译错误并定位代码行; -
• 批量编译和反编译; -
• 查看 ACPI Table Header 和 Checksum; -
• 加载及移除 Windows ACPI Override。
整个流程基本都可以通过界面按钮完成,不再需要反复输入命令,大大缩短了修改、编译和验证 ACPI 代码的时间。

使用前的准备
使用前,需要将以下工具放入 APP 的 tools 目录:
tools/
├─ acpidump.exe
├─ iasl.exe
└─ asl.exe
需要注意:
-
• acpidump.exe和iasl.exe来自 ACPICA; -
• asl.exe来自 Microsoft Windows Driver Kit(WDK); -
• 导出 ACPI Table、加载或移除 Override 时,需要以管理员身份运行 APP; -
• 执行 Load Override 前,Windows 需要开启 Test Signing; -
• 在启用了 UEFI Secure Boot 的系统上,通常还需要关闭 Secure Boot; -
• Override 写入注册表后,需要重启 Windows 才会生效。
测试完成后,建议先执行 Remove Override,确认 Override 已被移除,再关闭 Test Mode。
Remove Override 可以在非 Test Mode 下执行,但仍然需要管理员权限。关闭 Test Mode 并不等于删除已经暂存的 Override 配置,因此不建议仅依赖关闭测试模式进行清理。
ACPI Override 操作存在导致系统无法正常启动的风险,请仅在测试机器上使用,并提前准备系统恢复方案。
项目地址
ACPI Debugger 已开源:
https://github.com/uefibin/AcpiDebugger
ACPICA 工具:
https://github.com/acpica/acpica/releases/tag/20260408
版权声明:
作者:bin
链接:https://ay123.net/share/hacksoft/1966/
来源:爱影博客
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论