Contribute
Register

Compiling errors with iasl

Joined
Jan 31, 2014
Messages
14
Motherboard
HP Envy 15 j-101el -Clover
CPU
i7-4700MQ
Graphics
HD 4600 + GT 740M, 1366x768
Mobile Phone
  1. Android
Hello!

I'm trying to get the dsl files from my laptop.

What I did:

1) Boot from Ubuntu Live USB
2) Open Terminal
3) sudo acpidump > acpidata.out
4) acpixtract -sSSDT acpidata.out
5) acpixtract -sDSDT acpidata.out
6) iasl -da dsdt.dat ssdt*.dat

I don't know why in dsdt.dsl, ssdt1.dsl, ssdt4.dsl i get errors like this:

iASL Warning: There were 18 external control methods found during

disassembly, but only 11 were resolved (7 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.




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


My laptop is a HP Envy 15-j101el.

I tried to update the BIOS and redo the process. But the errors remained. At the moment i have the BIOS version F.63

I tried some different version of iasl, but with no success.

Can anybody explain me what I'm doing wrong?

I attached the original ACPI tables (dsdt and ssdt* only) taken from ubuntu.

Thank you in advance!
 

Attachments

  • Original ACPI tables.zip
    49.4 KB · Views: 82

RehabMan

Moderator
Joined
May 3, 2012
Messages
188,093
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Hello!

I'm trying to get the dsl files from my laptop.

What I did:

1) Boot from Ubuntu Live USB
2) Open Terminal
3) sudo acpidump > acpidata.out
4) acpixtract -sSSDT acpidata.out
5) acpixtract -sDSDT acpidata.out
6) iasl -da dsdt.dat ssdt*.dat

I don't know why in dsdt.dsl, ssdt1.dsl, ssdt4.dsl i get errors like this:

You will get a better disassembly if you disassemble all at once...

You will need to extract all DSDT/SSDT from Linux. They are available in /sys/firmware/acpi/tables and /sys/firmware/acpi/tables/dynamic. Place them on USB or otherwise transfer to OS X.

It is not necessary to install Linux. Simply run it from USB: http://www.ubuntu.com/download/desktop/create-a-usb-stick-on-windows

In Linux Terminal:
Code:
# substitute DEST with the mountpoint of a FAT32 formatted USB stick
sudo cp -R /sys/firmware/acpi/tables DEST

Place all SSDT/DSDT in a single directory (rename them to *.aml as you move them) and use a recent build of iasl to disassemble:
https://bitbucket.org/RehabMan/acpica/downloads
Code:
cd "to directory where you placed all SSDT/DSDT"
iasl -da -dl *.aml

Then work with the resulting *.dsl. You'll find you have less errors to deal with.
 
Joined
Jan 31, 2014
Messages
14
Motherboard
HP Envy 15 j-101el -Clover
CPU
i7-4700MQ
Graphics
HD 4600 + GT 740M, 1366x768
Mobile Phone
  1. Android
Thank you for the response!

I also have tried this method before and your latest iasl from 2014-11-13. The result is exactly the same. To be sure I retried the same procedure for another time, but the result is always the same.

DDST.aml, SSDT1.aml and SSDT4.aml are having compiling problems:

DSDT.aml
iASL Warning: There were 18 external control methods found during
disassembly, but only 11 were resolved (7 unresolved).

SSDT1.aml
iASL Warning: There were 4 external control methods found during
disassembly, but only 2 were resolved (2 unresolved).

SSDT4.aml
iASL Warning: There were 7 external control methods found during
disassembly, but only 4 were resolved (3 unresolved).



The other tables don't have errors.

Also the .dsl files in MaciASL show me the same number of errors, warnings, remarks and optimizations.

I attached the complete tables folder and the AML folder I used to disassemble

Laptop model:
HP envy 15-j101el

View attachment 117786View attachment ACPI tables with cp command.zip

Any clue what I can try to do?
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
188,093
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Thank you for the response!

I also have tried this method before and your latest iasl from 2014-11-13. The result is exactly the same. To be sure I retried the same procedure for another time, but the result is always the same.

DDST.aml, SSDT1.aml and SSDT4.aml are having compiling problems:

DSDT.aml
iASL Warning: There were 18 external control methods found during
disassembly, but only 11 were resolved (7 unresolved).

SSDT1.aml
iASL Warning: There were 4 external control methods found during
disassembly, but only 2 were resolved (2 unresolved).

SSDT4.aml
iASL Warning: There were 7 external control methods found during
disassembly, but only 4 were resolved (3 unresolved).

It is normal. Some methods are defined in Windows or are not defined at all and thus not available to the disassembler.
 
Joined
Jan 31, 2014
Messages
14
Motherboard
HP Envy 15 j-101el -Clover
CPU
i7-4700MQ
Graphics
HD 4600 + GT 740M, 1366x768
Mobile Phone
  1. Android
Thank you very much for the information! :thumbup:
 
Joined
Feb 10, 2018
Messages
1
Hello,
I will try to make suspend/resume working (I know that is a long way)
and now I try to make DSDT.asl syntax free.
What is wrong with these lines? To remove any noise, this is only the relevant part from DSDT.asl.

Code:
DefinitionBlock ("test.aml", "DSDT", 1, "OEMID ", "TABLEID  ", 0x00000000)
{
    Scope (_SB)
    {
        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A03"))
            //Zero
            //Zero
            Method (_OFF, 0, Serialized)  // _OFF: Power Off
            {
                RefOf (\_SB.PCI0.LPCB.H_EC.PLMX) = \_SB.PCI0.LPCB.H_EC.ECRD /* External reference */
                Local0
                Local0 = (0x0AAC + (Local0 * 0x0A))
                PTMP = Local0
                Return (Local0)
            }
        }
    }
}

$ iasl -n test2.asl
Compiler aborting due to parser-detected syntax error(s)
test2.asl 14: Local0 = (0x0AAC + (Local0 * 0x0A))
Error 6126 - syntax error ^

Thanks, Attila
 
Last edited:

RehabMan

Moderator
Joined
May 3, 2012
Messages
188,093
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Hello,
I will try to make suspend/resume working (I know that is a long way)
and now I try to make DSDT.asl syntax free.
What is wrong with these lines? To remove any noise, this is only the relevant part from DSDT.asl.

Code:
DefinitionBlock ("test.aml", "DSDT", 1, "OEMID ", "TABLEID  ", 0x00000000)
{
    Scope (_SB)
    {
        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A03"))
            //Zero
            //Zero
            Method (_OFF, 0, Serialized)  // _OFF: Power Off
            {
                RefOf (\_SB.PCI0.LPCB.H_EC.PLMX) = \_SB.PCI0.LPCB.H_EC.ECRD /* External reference */
                Local0
                Local0 = (0x0AAC + (Local0 * 0x0A))
                PTMP = Local0
                Return (Local0)
            }
        }
    }
}

$ iasl -n test2.asl
Compiler aborting due to parser-detected syntax error(s)
test2.asl 14: Local0 = (0x0AAC + (Local0 * 0x0A))
Error 6126 - syntax error ^

Thanks, Attila

See guide for correct tools and disassembly procedures:
https://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573/
 
Top