Contribute
Register

[Guide] Patching LAPTOP DSDT/SSDTs

Joined
Nov 8, 2012
Messages
76
Motherboard
Lenovo G50-70, El Capitan (clover)
CPU
i5-4210U, 1.70GHz (Haswell ULT, 15W)
Graphics
Intel HD Graphics 4400, 1366x768
Mac
MacBook Pro
Classic Mac
Mobile Phone
iOS
Thank you .....for another time !!!
:clap::clap::clap::clap::clap::clap::clap::clap:
 
Joined
Jan 9, 2015
Messages
339
Motherboard
Lenovo Y50-70
CPU
i7-4710HQ 2.5GHz Haswell
Graphics
Intel HD 4600 / nVidia GeForce 860m 4GB
Mac
MacBook Pro
Classic Mac
Mobile Phone
iOS
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

 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,123
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
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.
 
Joined
Nov 13, 2013
Messages
62
Motherboard
OS X 10.9.5
CPU
intel core 2 duo T6570
Graphics
Nvidia Geforce G 105m
Mac
Classic Mac
Mobile Phone
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.
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,123
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
...
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.
 
Joined
Nov 13, 2013
Messages
62
Motherboard
OS X 10.9.5
CPU
intel core 2 duo T6570
Graphics
Nvidia Geforce G 105m
Mac
Classic Mac
Mobile Phone
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.
 
Top