Contribute
Register

[Guide] Patching LAPTOP DSDT/SSDTs

Thank you .....for another time !!!
:clap::clap::clap::clap::clap::clap::clap::clap:
 
Hi,

I extracted the files using Clover (pressing f4 in the bootloader).

When I tried to disassemble them using iasl I realized they are already .aml. ( you said "To prepare, place all DSDT and SSDT files in a single directory, and change the names such that they have an .aml extension. " So i assume they should have another extension by default ).

Also, when you say "
It is a good idea to copy the iasl binary to your path (eg. /usr/bin), so it is easily accessed from Terminal." I understood that I must place iasl in the /usr/bin path, is that correct ?


Also, there are some errors when I use iasl.

1. What should I do (how to fix the iasl error) ?
2. Are there some default DSDT/SSDT in the Clover EFI so its possible I didnt even extract them in the bootloader ?

LOG:
Seths-MacBook-Pro:fisiere sethvanity$ iasl -da -dl *.aml


Intel ACPI Component Architecture
ASL+ Optimizing Compiler version 20141107-64 [Jan 2 2015]
Copyright (c) 2000 - 2014 Intel Corporation


Loading Acpi table from file DSDT.aml - Length 00043947 (00ABAB)
ACPI: DSDT 0x0000000000000000 00ABAB (v01 LENOVO CB-01 00000001 ACPI 00040000)
Acpi table [DSDT] successfully installed and loaded
Loading Acpi table from file SSDT-7.aml - Length 00013452 (00348C)
ACPI: SSDT 0x0000000000000000 00348C (v01 LENOVO CB-01 00000001 ACPI 00040000)
Acpi table [SSDT] successfully installed and loaded
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
Loading Acpi table from file SSDT-6x.aml - Length 00000281 (000119)
ACPI: SSDT 0x0000000000000000 000119 (v01 PmRef ApCst 00003000 INTL 20121220)
Acpi table [SSDT] successfully installed and loaded
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
Loading Acpi table from file SSDT-5x.aml - Length 00000979 (0003D3)
ACPI: SSDT 0x0000000000000000 0003D3 (v01 PmRef Cpu0Cst 00003001 INTL 20121220)
Acpi table [SSDT] successfully installed and loaded
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
Loading Acpi table from file SSDT-4x.aml - Length 00001450 (0005AA)
ACPI: SSDT 0x0000000000000000 0005AA (v01 PmRef ApIst 00003000 INTL 20121220)
Acpi table [SSDT] successfully installed and loaded
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
Loading Acpi table from file SSDT-3x.aml - Length 00001337 (000539)
ACPI: SSDT 0x0000000000000000 000539 (v01 LENOVO CB-01 00000001 INTL 20121220)
Acpi table [SSDT] successfully installed and loaded
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
Loading Acpi table from file SSDT-2.aml - Length 00002776 (000AD8)
ACPI: SSDT 0x0000000000000000 000AD8 (v01 LENOVO CB-01 00000001 ACPI 00040000)
Acpi table [SSDT] successfully installed and loaded
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
Loading Acpi table from file SSDT-1.aml - Length 00001337 (000539)
ACPI: SSDT 0x0000000000000000 000539 (v01 LENOVO CB-01 00000001 ACPI 00040000)
Acpi table [SSDT] successfully installed and loaded
Pass 1 parse of [SSDT]
ACPI Error: [_PPC] Namespace lookup failure, AE_ALREADY_EXISTS (20141107/dswload-451)
ACPI Exception: AE_ALREADY_EXISTS, During name lookup/catalog (20141107/psobject-305)
Could not parse external ACPI tables, AE_ALREADY_EXISTS

 
Hi,

I extracted the files using Clover (pressing f4 in the bootloader).

When I tried to disassemble them using iasl I realized they are already .aml. ( you said "To prepare, place all DSDT and SSDT files in a single directory, and change the names such that they have an .aml extension. " So i assume they should have another extension by default ).

When you extract from Linux, they do not have an AML extension.

Also, when you say "It is a good idea to copy the iasl binary to your path (eg. /usr/bin), so it is easily accessed from Terminal." I understood that I must place iasl in the /usr/bin path, is that correct ?

Yes.

Also, there are some errors when I use iasl.

1. What should I do (how to fix the iasl error) ?
2. Are there some default DSDT/SSDT in the Clover EFI so its possible I didnt even extract them in the bootloader ?

LOG:
Seths-MacBook-Pro:fisiere sethvanity$ iasl -da -dl *.aml


Intel ACPI Component Architecture
ASL+ Optimizing Compiler version 20141107-64 [Jan 2 2015]
Copyright (c) 2000 - 2014 Intel Corporation


Loading Acpi table from file DSDT.aml - Length 00043947 (00ABAB)
ACPI: DSDT 0x0000000000000000 00ABAB (v01 LENOVO CB-01 00000001 ACPI 00040000)
Acpi table [DSDT] successfully installed and loaded
Loading Acpi table from file SSDT-7.aml - Length 00013452 (00348C)
ACPI: SSDT 0x0000000000000000 00348C (v01 LENOVO CB-01 00000001 ACPI 00040000)
Acpi table [SSDT] successfully installed and loaded
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
Loading Acpi table from file SSDT-6x.aml - Length 00000281 (000119)
ACPI: SSDT 0x0000000000000000 000119 (v01 PmRef ApCst 00003000 INTL 20121220)
Acpi table [SSDT] successfully installed and loaded
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
Loading Acpi table from file SSDT-5x.aml - Length 00000979 (0003D3)
ACPI: SSDT 0x0000000000000000 0003D3 (v01 PmRef Cpu0Cst 00003001 INTL 20121220)
Acpi table [SSDT] successfully installed and loaded
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
Loading Acpi table from file SSDT-4x.aml - Length 00001450 (0005AA)
ACPI: SSDT 0x0000000000000000 0005AA (v01 PmRef ApIst 00003000 INTL 20121220)
Acpi table [SSDT] successfully installed and loaded
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
Loading Acpi table from file SSDT-3x.aml - Length 00001337 (000539)
ACPI: SSDT 0x0000000000000000 000539 (v01 LENOVO CB-01 00000001 INTL 20121220)
Acpi table [SSDT] successfully installed and loaded
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
Loading Acpi table from file SSDT-2.aml - Length 00002776 (000AD8)
ACPI: SSDT 0x0000000000000000 000AD8 (v01 LENOVO CB-01 00000001 ACPI 00040000)
Acpi table [SSDT] successfully installed and loaded
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
Loading Acpi table from file SSDT-1.aml - Length 00001337 (000539)
ACPI: SSDT 0x0000000000000000 000539 (v01 LENOVO CB-01 00000001 ACPI 00040000)
Acpi table [SSDT] successfully installed and loaded
Pass 1 parse of [SSDT]
ACPI Error: [_PPC] Namespace lookup failure, AE_ALREADY_EXISTS (20141107/dswload-451)
ACPI Exception: AE_ALREADY_EXISTS, During name lookup/catalog (20141107/psobject-305)
Could not parse external ACPI tables, AE_ALREADY_EXISTS


The error you have is covered in the guide (read it carefully). As noted in the guide, SSDTs extracted from Clover F4 can have duplicates. As you can tell from the error:
Code:
ACPI Error: [_PPC] Namespace lookup failure, AE_ALREADY_EXISTS (20141107/dswload-451)
ACPI Exception: AE_ALREADY_EXISTS, During name lookup/catalog (20141107/psobject-305)
Could not parse external ACPI tables, AE_ALREADY_EXISTS

_PPC is evidently defined twice in your set of SSDTs. Determine which SSDT(s) are duplicate, and eliminate the duplicate.

As noted in the guide, a Linux extract generally does not have such duplicates.
 
Hello, Mr. Rehabman.

I have two questions about extracting DSDT/SSDT and FakePCIID.

1. Should we copy both tables and dynamic folder when we try to extract DSDT/SSDT in Ubuntu?

2. About FakePCIID(what a great work!). Is HD4400(0a16) also attached to 0412 ?

Looking forward to your reply.
 
...
1. Should we copy both tables and dynamic folder when we try to extract DSDT/SSDT in Ubuntu?

I copy the whole directory structure. Most always, the SSDTs in dynamic are CPU related and you would not inject them even if you planned to use the native CPU PM SSDTs anyway because they are loaded by DSDT or other SSDTs with Load (see ACPI spec). But they can be helpful to get a cleaner disassembly.

2. About FakePCIID(what a great work!). Is HD4400(0a16) also attached to 0412 ?

Even though 0xa168086 is supported by the Info.plist files in the kexts, we map 0a16 to 0412 because of the lack of support in the OpenCL dylib binary (and perhaps other places). That way, the dylib doesn't have to be patched.
 
I copy the whole directory structure. Most always, the SSDTs in dynamic are CPU related and you would not inject them even if you planned to use the native CPU PM SSDTs anyway because they are loaded by DSDT or other SSDTs with Load (see ACPI spec). But they can be helpful to get a cleaner disassembly.



Even though 0xa168086 is supported by the Info.plist files in the kexts, we map 0a16 to 0412 because of the lack of support in the OpenCL dylib binary (and perhaps other places). That way, the dylib doesn't have to be patched.

Thanks, Mr. Rehabman. I have learned more.
 
error patchmatic -extract
copy/usr/bin
 

Attachments

  • Screen Shot 2014-10-26 at 4.31.06 PM.png
    Screen Shot 2014-10-26 at 4.31.06 PM.png
    19.2 KB · Views: 376
Error patch disable Nvidia card
 

Attachments

  • Screen Shot 2015-01-15 at 8.33.26 PM.png
    Screen Shot 2015-01-15 at 8.33.26 PM.png
    192.6 KB · Views: 442
Back
Top