Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Warning "failed to decompile DSDT.aml" #18

Open
hedefalk opened this issue Mar 19, 2020 · 16 comments
Open

Warning "failed to decompile DSDT.aml" #18

hedefalk opened this issue Mar 19, 2020 · 16 comments

Comments

@hedefalk
Copy link

On my target machine:

   git clone [email protected]:corpnewt/SSDTTime.git
   sudo SSDTTime/SSDTTime.py

Select dump

    #######################################################
    #                    Dumping DSDT                     #
    #######################################################

    Checking if DSDT exists
    Copying DSDT to safe location.
    You have to enter your password to copy the file:
    Changing file ownership
    Success!
    Failed to decompile DSDT.aml
    Loading file failed!
    Press [enter] to return to main menu...

Is this warning something I should care about? Or can I use the aml anyways?

@ferbeb
Copy link

ferbeb commented May 2, 2020

Had the same problem, this happened because I forgot to run chmod +x on iasl which I manually added to the Scripts folder.

@undefinedplayer
Copy link

Mostly something wrong with iasl. For me I executed the command in macOS than copied the entire folder to Linux and executed again then got this problem. It turns out the iasl file it automatically downloaded when executing the script is different between macOS and Linux. Fixed it by cloning the SSDTTime again and re-execute.

@zayn008
Copy link

zayn008 commented Aug 12, 2020

I'm having this issue on Windows, followed all instructions, tried multiple times?
Just tried it on my laptop and it works, but not on my PC? (which is what I want the data for)

@DrAndrology
Copy link

Have the same problem, I run DSDTTime on my Tiny ThinkCenter M900 and got the same result.
With Clover this model can hackintosh but did anyone success to install OpenCore on this midel yet?

@BurneyFM
Copy link

BurneyFM commented Dec 16, 2020

I get the same errors on my Windows Machine (fresh install, fully updated). I also tried to decompile by hand using iasl.exe, but it throws the following:

Intel ACPI Component Architecture
ASL+ Optimizing Compiler/Disassembler version 20200528
Copyright (c) 2000 - 2020 Intel Corporation

File appears to be binary: found 8589 non-ASCII characters, disassembling
Binary file appears to be a valid ACPI table, disassembling
Input file dsdt.dat, Length 0x6292 (25234) bytes
ACPI: DSDT 0x0000000000000000 006292 (v02 ALASKA A M I    01072009 INTL 20120913)
Pass 1 parse of [DSDT]
Firmware Error (ACPI): Failure creating named object [\_GPE._L08], AE_ALREADY_EXISTS (20200528/dswload-495)
ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200528/psobject-372)
Could not parse ACPI tables, AE_ALREADY_EXISTS

Is it normal that it says Intel in the first line although it is an AMD machine?

Hardware: Ryzen 3 3100, Asrock B550 Phantom Gaming ITX/ax

@DickyT
Copy link

DickyT commented Dec 26, 2020

have the same issue, not able to solve by changing or replacing iasl

@DickyT
Copy link

DickyT commented Dec 27, 2020

@BurneyFM I have the same MB as you, downgrading BIOS to 1.20 works, any version > 1.20 will fail, not sure what happened

@zayn008
Copy link

zayn008 commented Dec 27, 2020

I fixed this issue by doing a fresh install of Windows so it was non-OEM. I think there was an Alienware software that conflicted with it (because it also conflicted with my Magic Trackpad)

@ArielDennis
Copy link

RESOLVED FINALLY(On Linux)
the very first thing is to make sure you are connect to internet
then delete the iasl file witch is located in the script direcyory witch itself is located in the directory SSDTTime-master
then return SSDTTime.py and run it
SSDTTime-master will download a fresh iasl and now you all set
thats how it's works for me

@mfgonzalez
Copy link

I tried to delete aisl file from the scripts folder, a new one is downloaded but i still having the same error when I try to dump the DSDT

Checking if DSDT exists
Copying DSDT to safe location.
You have to enter your password to copy the file:
Changing file ownership
Success!
Failed to decompile DSDT.aml
Loading file failed!
Press [enter] to return to main menu...

@huydhoang
Copy link

huydhoang commented Oct 17, 2021

I tried to delete aisl file from the scripts folder, a new one is downloaded but i still having the same error when I try to dump the DSDT

Checking if DSDT exists
Copying DSDT to safe location.
You have to enter your password to copy the file:
Changing file ownership
Success!
Failed to decompile DSDT.aml
Loading file failed!
Press [enter] to return to main menu...

Not sure if you still need this. But I've faced with the same problem and found this version of iasl worked for me.
Replace both acpidump.exe and iasl.exe in SSDTTime/Scripts with the downloaded ones.

@keiqsa
Copy link

keiqsa commented Jan 28, 2022

windows fix
download iasl-win-*.zip and extract content to folder SSDTTime-master\Scripts
https://acpica.org/downloads

@iWOLFSTEIN
Copy link

Linux Mint Fix!

https://dortania.github.io/Getting-Started-With-ACPI/Manual/compile.html#windows

download the iasl file from linux section here, then place it in your SSDTTime-master\Scripts folder

then open the terminal in SSDTTime-master\Scripts folder and type "sudo chmod +x iasl" and hit run

now go back to SSDTTime-master folder and open separate terminal there and type python3 SSDTTime.py

it will run this time for sure.

@aweone
Copy link

aweone commented Mar 19, 2023

on the sapphire nitro+ b550i the ways described above do not work. any idea how to fix it?

upd:
test in win10 and linux

@wcardozo
Copy link

wcardozo commented Oct 26, 2023

I have a B550 motherboard from china manufacturer Soyo, model SY-YL B550M.
It gives the same error as above when trying to decompile the DSDT:
Firmware Error (ACPI): Failure creating named object [\_GPE._L08], AE_ALREADY_EXISTS (20200925/dswload-387)
Even when using the latest apci-tools. compiled from source, we get the same error:
Firmware Error (ACPI): Failure creating named object [\_GPE._L08], AE_ALREADY_EXISTS (20230628/dswload-495)
So it is safe to assume that the issue is in the DSDT itself and not caused by the tools being used.
I was able to circumvent this issue doing the following:

  • I opened the dsdt.dat file with a Hex Editor ( I'm in Linux, so I used GHex ) to find the L08 string and changed it to L88
  • Saved the file as dsdt_hacked.dat
  • Decompiled the new file with command: iasl -e ssdt* -d dsdt_hacked.dat
  • No errors this time: ASL Output: dsdt_hacked.dsl - 252100 bytes
  • Opened the file dsdt_hacked.dsl with a text editor
  • Searched for L88, and found it inside the _GPE scope:
        Method (_L88, 0, NotSerialized)  // _Lxx: Level-Triggered GPE, xx=0x00-0xFF
        {
            Notify (\_SB.PCI0.GPP3, 0x02) // Device Wake
            Notify (\_SB.PWRB, 0x02) // Device Wake   
        }
  • I searched also for L08, which gives the original error, and it popped again, in another _GPE scope:
        Method (_L08, 0, NotSerialized)  // _Lxx: Level-Triggered GPE, xx=0x00-0xFF     
        {   
            Notify (\_SB.PCI0.GPP3.PTXH, 0x02) // Device Wake
            Notify (\_SB.PCI0.GPP1, 0x02) // Device Wake
            Notify (\_SB.PCI0.GPP1.PTXH, 0x02) // Device Wake
            Notify (\_SB.PCI0.GPP3, 0x02) // Device Wake
            Notify (\_SB.PCI0.GPP4, 0x02) // Device Wake
            Notify (\_SB.PWRB, 0x02) // Device Wake
        }   

  • As we can see, the PWRB and PCI0.GPP3 are declared twice, this is probably why the error AE_ALREADY_EXISTS happens.
  • As I really don't know what I'm doing, I simply deleted the entry L88 and save the file as dsdst_hacked2.dsl
  • Then I compiled the dsdst_hacked2.dsl with command: iasl dsdt_hacked2.dsl
  • The compiler gave the following message: Compilation successful. 0 Errors, 22 Warnings, 53 Remarks, 564 Optimizations, and generated a file: dsdt_hacked2.aml

I then used the file dsdt_hacked2.aml in SSDTTime, option D - Select DSDT or origin folder and was able to generate all the SSDTs needed for Opencore.

@EtereosDawn
Copy link

EtereosDawn commented Nov 13, 2023

Eu tenho uma placa-mãe B550 do fabricante chinês Soyo, modelo SY-YL B550M. Dá o mesmo erro acima ao tentar descompilar o DSDT: Firmware Error (ACPI): Failure creating named object [\_GPE._L08], AE_ALREADY_EXISTS (20200925/dswload-387)Mesmo ao usar as ferramentas apci mais recentes. compilado a partir do código-fonte, obtemos o mesmo erro: Firmware Error (ACPI): Failure creating named object [\_GPE._L08], AE_ALREADY_EXISTS (20230628/dswload-495) Portanto, é seguro assumir que o problema está no próprio DSDT e não é causado pelas ferramentas usadas. Consegui contornar esse problema fazendo o seguinte:

* Abri o arquivo dsdt.dat com um editor hexadecimal (estou no Linux, então usei GHex) para encontrar a string L08 e mudei para L88

* Salvei o arquivo como dsdt_hacked.dat

* Descompilei o novo arquivo com o comando: `iasl -e ssdt* -d dsdt_hacked.dat`

* Sem erros desta vez: `ASL Output:    dsdt_hacked.dsl - 252100 bytes`

* Abriu o arquivo dsdt_hacked.dsl com um editor de texto

* Procurei por L88 e encontrei-o dentro do escopo _GPE:
        Method (_L88, 0, NotSerialized)  // _Lxx: Level-Triggered GPE, xx=0x00-0xFF
        {
            Notify (\_SB.PCI0.GPP3, 0x02) // Device Wake
            Notify (\_SB.PWRB, 0x02) // Device Wake   
        }
* Procurei também por L08, que dá o erro original, e ele apareceu novamente, em outro escopo _GPE:
        Method (_L08, 0, NotSerialized)  // _Lxx: Level-Triggered GPE, xx=0x00-0xFF     
        {   
            Notify (\_SB.PCI0.GPP3.PTXH, 0x02) // Device Wake
            Notify (\_SB.PCI0.GPP1, 0x02) // Device Wake
            Notify (\_SB.PCI0.GPP1.PTXH, 0x02) // Device Wake
            Notify (\_SB.PCI0.GPP3, 0x02) // Device Wake
            Notify (\_SB.PCI0.GPP4, 0x02) // Device Wake
            Notify (\_SB.PWRB, 0x02) // Device Wake
        }   
* Como podemos ver, o PWRB e o PCI0.GPP3 são declarados duas vezes, provavelmente é por isso que ocorre o erro AE_ALREADY_EXISTS.

* Como realmente não sei o que estou fazendo, simplesmente apaguei a entrada L88 e salvei o arquivo como dsdst_hacked2.dsl

* Então compilei o dsdst_hacked2.dsl com o comando: `iasl dsdt_hacked2.dsl`

* O compilador deu a seguinte mensagem: `Compilation successful. 0 Errors, 22 Warnings, 53 Remarks, 564 Optimizations`e gerou um arquivo: `dsdt_hacked2.aml`

Eu então usei o arquivo dsdt_hacked2.amlem SSDTTime, opção D - Selecione DSDT ou pasta de origem e consiga gerar todos os SSDTs necessários para Opencore.

hello! I have the same board, did you happen to get the hackintosh successfully? If so, I would be happy if you could provide me with the a sssdt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests