Сначала делаю как обычно:
$ sudo acpidump | tee acpidump.out
$ acpixtract acpidump.out
Intel ACPI Component Architecture
ACPI Binary Table Extraction Utility version 20130823-64 [Aug 28 2013]
Copyright (c) 2000 - 2013 Intel Corporation
Acpi table [DSDT] - 81933 bytes written to dsdt.dat
Acpi table [SSDT] - 2545 bytes written to ssdt1.dat
Acpi table [SSDT] - 1067 bytes written to ssdt2.dat
Acpi table [SSDT] - 1509 bytes written to ssdt3.dat
Acpi table [SSDT] - 771 bytes written to ssdt4.dat
Acpi table [SSDT] - 281 bytes written to ssdt5.dat
$ iasl -d dsdt.dat
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20130823-64 [Aug 28 2013]
Copyright (c) 2000 - 2013 Intel Corporation
Loading Acpi table from file dsdt.dat
Acpi table [DSDT] successfully installed and loaded
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)
Parsing completed
Found 2 external control methods, reparsing with new information
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)
Parsing completed
Disassembly completed
ASL Output: dsdt.dsl - 644481 bytes
iASL Warning: There were 2 external control methods found during
disassembly, but additional ACPI tables to resolve these externals
were not specified. The resulting disassembler output file may not
compile because the disassembler did not know how many arguments
to assign to these methods. To specify the tables needed to resolve
external control method references, use the one of the following
example iASL invocations:
iasl -e <ssdt1.aml,ssdt2.aml...> -d <dsdt.aml>
iasl -e <dsdt.aml,ssdt2.aml...> -d <ssdt1.aml>
Послушаем совета умного дизассмеблера:
$ iasl -e 'ssdt1.dat,ssdt2.dat,ssdt3.dat,ssdt4.dat,ssdt5.dat' -d dsdt.dat
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20130823-64 [Aug 28 2013]
Copyright (c) 2000 - 2013 Intel Corporation
Loading Acpi table from file dsdt.dat
Acpi table [DSDT] successfully installed and loaded
Loading Acpi table from file ssdt5.dat
Acpi table [SSDT] successfully installed and loaded
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
Loading Acpi table from file ssdt4.dat
Acpi table [SSDT] successfully installed and loaded
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
Loading Acpi table from file ssdt3.dat
Acpi table [SSDT] successfully installed and loaded
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
Loading Acpi table from file ssdt2.dat
Acpi table [SSDT] successfully installed and loaded
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
Loading Acpi table from file ssdt1.dat
Acpi table [SSDT] successfully installed and loaded
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)
Parsing completed
Found 2 external control methods, reparsing with new information
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)
Parsing completed
Disassembly completed
ASL Output: dsdt.dsl - 644336 bytes
iASL Warning: There were 2 external control methods found during
disassembly, but only 0 was resolved (2 unresolved). Additional
ACPI tables are required to properly disassemble the code. The
resulting disassembler output file may not compile because the
disassembler did not know how many arguments to assign to the
unresolved methods.
И как результат — невозможность скомпилировать dsl:
$ iasl -tc dsdt.dsl
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20130823-64 [Aug 28 2013]
Copyright (c) 2000 - 2013 Intel Corporation
Compiler aborting due to parser-detected syntax error(s)
dsdt.dsl 8445: If (CondRefOf (FPED))
Error 6126 - ^ syntax error, unexpected PARSEOP_IF
dsdt.dsl 11713:
Error 6126 - syntax error, unexpected PARSEOP_SCOPE, expecting $end and premature End-Of-File
ASL Input: dsdt.dsl - 11713 lines, 347859 bytes, 4064 keywords
Hex Dump: dsdt.hex - 216 bytes
Compilation complete. 2 Errors, 0 Warnings, 0 Remarks, 0 Optimizations
Коллеги, что делать-то?