LINUX.ORG.RU

История изменений

Исправление init_6, (текущая версия) :

Продолжаем... продолжать... Как это делается по уму. Сперва делаем небольшой файлик:

> cat refs.txt 
External(MDBG, MethodObj, 1)
External(_GPE.MMTB, MethodObj, 0)
External(_SB_.PCI0.LPCB.H_EC.ECWT, MethodObj, 2)
External(_SB_.PCI0.LPCB.H_EC.ECRD, MethodObj, 1)
External(_SB_.PCI0.PEG0.PEGP.SGPO, MethodObj, 2)
External(_SB.PCI0.GFX0.DD02._BCM, MethodObj, 1)
External(_SB.PCI0.SAT0.SDSM, MethodObj, 4)
External(_SB.PCI0.SAT1.SDSM, MethodObj, 4)
External(_GPE.VHOV, MethodObj, 3)

Затем повторяем декомпиляцию но уже из *.dat:

> iasl -da -dl -fe refs.txt dsdt.dat 

Intel ACPI Component Architecture
ASL+ Optimizing Compiler version 20150717-64
Copyright (c) 2000 - 2015 Intel Corporation

Reading ACPI table from file   dsdt.dat - Length 00090557 (0x0161BD)
ACPI: DSDT 0x0000000000000000 0161BD (v02 _ASUS_ Notebook 00000012 INTL 20120711)
Acpi table [DSDT] successfully installed and loaded
refs.txt: Importing method external (1 arguments) MDBG
refs.txt: Importing method external (0 arguments) _GPE.MMTB
refs.txt: Importing method external (2 arguments) _SB_.PCI0.LPCB.H_EC.ECWT
refs.txt: Importing method external (1 arguments) _SB_.PCI0.LPCB.H_EC.ECRD
refs.txt: Importing method external (2 arguments) _SB_.PCI0.PEG0.PEGP.SGPO
refs.txt: Importing method external (1 arguments) _SB.PCI0.GFX0.DD02._BCM
refs.txt: Importing method external (4 arguments) _SB.PCI0.SAT0.SDSM
refs.txt: Importing method external (4 arguments) _SB.PCI0.SAT1.SDSM
refs.txt: Imported 9 external method definitions
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)

Parsing completed

Found 27 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 - 843905 bytes

iASL Warning: There were 27 external control methods found during
disassembly, but only 9 were resolved (18 unresolved). Additional
ACPI tables may be 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. Note: SSDTs can be dynamically loaded at
runtime and may or may not be available via the host OS.

If necessary, the -fe option can be used to specify a file containing
control method external declarations with the associated method
argument counts. Each line of the file must be of the form:
    External (<method pathname>, MethodObj, <argument count>)
Invocation:
    iasl -fe refs.txt -d dsdt.aml

Переводить не буду. Но в паре слов - радостный iasl сообщил нам что он смог решить 9 из 27 внешних контрольных методов.

Штука в том что вон ^ там выше где было Compilation complete. 201 Errors, 0 Warnings, 0 Remarks, 0 Optimizations так вот эта строчка намекает на то DSDT неполный.

Теперь об этом предупреждает и сам iasl собственно вон там Additional ACPI tables may be 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.

Скорее всего нужн{а/ы} ssdt. Живут они там же /sys/firmware/acpi/tables/SSDT и их количество тоже может быть разное от одной до нескольких. И и они могут быть либо статическими, как и dsdt, либо динамическими, и в этом случае все еще хуже.

В любом случае чтоб что-то сказать нужны все ssdt потому-что они могут отличатся.

Исходная версия init_6, :

Продолжаем... продолжать... Как это делается по уму. Сперва делаем небольшой файлик:

> cat refs.txt 
External(MDBG, MethodObj, 1)
External(_GPE.MMTB, MethodObj, 0)
External(_SB_.PCI0.LPCB.H_EC.ECWT, MethodObj, 2)
External(_SB_.PCI0.LPCB.H_EC.ECRD, MethodObj, 1)
External(_SB_.PCI0.PEG0.PEGP.SGPO, MethodObj, 2)
External(_SB.PCI0.GFX0.DD02._BCM, MethodObj, 1)
External(_SB.PCI0.SAT0.SDSM, MethodObj, 4)
External(_SB.PCI0.SAT1.SDSM, MethodObj, 4)
External(_GPE.VHOV, MethodObj, 3)

Затем повторяем декомпиляцию но уже из *.dat:

> iasl -da -dl -fe refs.txt dsdt.dat 

Intel ACPI Component Architecture
ASL+ Optimizing Compiler version 20150717-64
Copyright (c) 2000 - 2015 Intel Corporation

Reading ACPI table from file   dsdt.dat - Length 00090557 (0x0161BD)
ACPI: DSDT 0x0000000000000000 0161BD (v02 _ASUS_ Notebook 00000012 INTL 20120711)
Acpi table [DSDT] successfully installed and loaded
refs.txt: Importing method external (1 arguments) MDBG
refs.txt: Importing method external (0 arguments) _GPE.MMTB
refs.txt: Importing method external (2 arguments) _SB_.PCI0.LPCB.H_EC.ECWT
refs.txt: Importing method external (1 arguments) _SB_.PCI0.LPCB.H_EC.ECRD
refs.txt: Importing method external (2 arguments) _SB_.PCI0.PEG0.PEGP.SGPO
refs.txt: Importing method external (1 arguments) _SB.PCI0.GFX0.DD02._BCM
refs.txt: Importing method external (4 arguments) _SB.PCI0.SAT0.SDSM
refs.txt: Importing method external (4 arguments) _SB.PCI0.SAT1.SDSM
refs.txt: Imported 9 external method definitions
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)

Parsing completed

Found 27 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 - 843905 bytes

iASL Warning: There were 27 external control methods found during
disassembly, but only 9 were resolved (18 unresolved). Additional
ACPI tables may be 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. Note: SSDTs can be dynamically loaded at
runtime and may or may not be available via the host OS.

If necessary, the -fe option can be used to specify a file containing
control method external declarations with the associated method
argument counts. Each line of the file must be of the form:
    External (<method pathname>, MethodObj, <argument count>)
Invocation:
    iasl -fe refs.txt -d dsdt.aml

Переводить не буду. Но в паре слов - радостный [url=]iasl сообщил нам что он смог решить 9 из 27 внешних контрольных методов.

Штука в том что вон ^ там выше где было Compilation complete. 201 Errors, 0 Warnings, 0 Remarks, 0 Optimizations так вот эта строчка намекает на то DSDT неполный.

Теперь об этом предупреждает и сам iasl собственно вон там Additional ACPI tables may be 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.

Скорее всего нужн{а/ы} ssdt. Живут они там же /sys/firmware/acpi/tables/SSDT и их количество тоже может быть разное от одной до нескольких. И и они могут быть либо статическими, как и dsdt, либо динамическими, и в этом случае все еще хуже.

В любом случае чтоб что-то сказать нужны все ssdt потому-что они могут отличатся.