corpnewt / SSDTTime

SSDT/DSDT hotpatch attempts.
MIT License
1.06k stars 181 forks source link

Warning "failed to decompile DSDT.aml" #18

Open hedefalk opened 4 years ago

hedefalk commented 4 years ago

On my target machine:

   git clone git@github.com: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 commented 4 years ago

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

undefinedplayer commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 3 years ago

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 commented 3 years ago

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

DickyT commented 3 years ago

@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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 2 years ago

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 commented 2 years ago

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

iWOLFSTEIN commented 1 year ago

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 commented 1 year ago

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 commented 10 months ago

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:



- 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 commented 10 months ago

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