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/
来源:爱影博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
ACPI Debugger v1.2.0 开源发布
  作为一名 BIOS 工程师,工作中难免会遇到调试 ACPI 代码的情况。 ACPI 代码通常和 UEFI 固件工程集成在一起。按照传统流程,每次修改 ASL 代码后,都需要重……
<<上一篇
下一篇>>
文章目录
关闭
目 录