iasl
Compile ACPI Source Language
SYNOPSIS
iasl [options] [input_file]
PARAMETERS
-@ filename
Include commands from specified file
-b
Dump binary data in binary ACPI table
-d
Decompile ACPI table to ASL file
-ds
Decompile with original syntax
-dt
Decompile with type information
-e filename
Add external symbol list
-f
Force single-threaded compilation
-g
Get all ACPI tables from firmware
-h, -?
Display help message
-l
Create hex listing file (.lst)
-li
Include internal control codes in listing
-ln
Do not include internal control codes
-r
Legacy resource-only disassembly
-s
Create symbol table file (.sym)
-so
Save original opcode disassembly
-tc
Create C source file for ASL
-vd
Verbose disassembly
-vi
Verbose information
-v
Display version information
-z
Verbose exception dump
DESCRIPTION
iasl is the Intel ACPI Source Language compiler/decompiler, a key tool from the ACPICA (now ASACICA) project for working with ACPI tables. It compiles human-readable ASL (ACPI Source Language) source code into binary AML (ACPI Machine Language) bytecode, which is loaded by operating systems like Linux. Conversely, it decompiles AML bytecode back to ASL for analysis or modification.
Primarily used by kernel developers, firmware engineers, and system administrators to inspect, debug, or customize ACPI tables extracted from BIOS/UEFI firmware. On Linux, tables are often dumped via acpidump, extracted with acpixtract, then processed with iasl. It supports table validation, disassembly with annotations, listing files for debugging, and C source generation for integration into kernels.
iasl performs syntax checking, semantic analysis, and generates optimized bytecode compliant with ACPI specifications (up to ACPI 6.5+). Errors are reported with line numbers and detailed messages, aiding in firmware bug fixes or custom DSDT/SSDT development.
CAVEATS
iasl requires acpica-tools package; decompilation may not be perfect due to AML optimizations. Use with root for -g. Output files have extensions like .aml, .dsl, .lst.
COMMON WORKFLOW
1. Dump: /usr/sbin/acpidump > dsdt.dat
2. Extract: acpixtract -a dsdt.dat
3. Decompile: iasl -d dsdt.aml
4. Edit dsdt.dsl, recompile: iasl -sa dsdt.dsl
EXIT CODES
0: Success
1: Minor errors (warnings)
2+: Major errors (no output)
HISTORY
Developed by Intel in 1990s for ACPI 1.0; evolved with ACPICA project (2000s), transitioned to ASACICA under Linux Foundation (2021+). Widely used in Linux kernel development for DSDT/SSDT fixes.
SEE ALSO
acpidump(8), acpixtract(8), acpihelp(8)


