之前krishna 在“UEFI Shell 下的 ACPI Dump工具”评论中提到过,EDK2 提供了内置的 ACPI COMMAND:ACPIVIEW,可以直接在 Shell 下查看 ACPI。最近在研究 ACPI 方面的内容,于是研究了一下这个 command 的使用。
Hi Z.t,现在的EDK2已经有现成的ACPI command可用哦,需要手动添加一下,方法如下:
1,编辑ShellPkg\ShellPkg.dsc,在这个地方添加一行:
ShellPkg/Application/Shell/Shell.inf {
# follow line is added by krishna
NULL|ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf
}
2,Save and "build -p ShellPkg\ShellPkg.dsc -m ShellPkg\Application\Shell\Shell.inf -a X64"
3,Boot this shell and run command "acpiview"
在 EDK2 202108 的版本中, Shell 提供了2种访问这个工具的方法:
1.独立的 EFI 程序 ,源代码在 \ShellPkg\Application\AcpiViewApp
2.内置于 Shell 中的 acpiview 命令。现在无需手工添加,使用下面的命令编译 ShellPkg
build -a X64 -p ShellPkg\ShellPkg.dsc
之后可以看到2个Shell 的 EFI 文件,其中较大的就包含了acpiview 命令:
运行Shell后,可以使用 help acpiview 查看,支持的命令行参数如下:
ACPIVIEW [[-?] | [[[[-l] | [-s AcpiTable [-d]]] [-q] [-h]] [-r Spec]]]
-l - Display list of installed ACPI Tables.
-s - Display only the specified AcpiTable type and only support single invocation option.
AcpiTable : The required ACPI Table type.
-d - Generate a binary file dump of the specified AcpiTable.
-q - Quiet. Suppress errors and warnings. Disables consistency checks.
-h - Enable colour highlighting.
-r - Validate that all required ACPI tables are installed
Spec : Specification to validate against.
For Arm, the possible values are:
0 - Server Base Boot Requirements v1.0
1 - Server Base Boot Requirements v1.1
2 - Server Base Boot Requirements v1.2
-? - Show help.
-l 参数显示当前系统中 ACPI Table 的名称
-s 显示指定的 ACPI Table
-d 将指定的 ACPI Table 保存到文件中
特别注意:不要直接运行 acpiview,它会在屏幕输出所有的 ACPI Table 内容非常慢。