LINUX.ORG.RU

Не могу дизассемблировать DSDT-таблицу

 , ,


0

3

Сначала делаю как обычно:

$ 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

Коллеги, что делать-то?

Ответ на: комментарий от xSudo

C /sys/firmware/acpi/tables/*DT такая же ситуация.

Что смотреть по ссылке?

cheerfulboy
() автор топика

Так это ж ты её сканпелировать не можешь? Надо по очереди все 6 тыщь ошибок поправить просто, и будет порядок. Кстати, после того как я её сканпелировал и подсунул опенсузе 12.3 с ядром 3.7, aspm так и не заработал, и я плюнул на это дело.

anonymous
()
Ответ на: комментарий от anonymous

aspm так и не заработал

Результат был известен заранее, когда эти болезные виндузятники тащили интерпретатор байткода в ядро.

anonymous
()
Ответ на: комментарий от anonymous

Меж тем, в шестой шапке aspm работал. Видимо, ональное бизнес-партнёрство и продажа душ сотоне приносят пользу.

anonymous
()
Ответ на: комментарий от anonymous

Я не могу дизассемблировать из-за:

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.

cheerfulboy
() автор топика

Получившийся dsl (полный http://bpaste.net/show/155692/) содержит строки:

    External (FPED, MethodObj)    // Warning: Unresolved Method, guessing 0 arguments (may be incorrect, see warning above)
    External (WMAB, MethodObj)    // Warning: Unresolved Method, guessing 1 arguments (may be incorrect, see warning above)
cheerfulboy
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.