Lekensteyn/acpi-stuff

Learning ACPI Source Language

GoelBiju opened this issue · 3 comments

Hi @Lekensteyn ,

I was quite interested in learning how to edit DSDT and ACPI tables. Are there any particular resources online that you would recommend in order to learn ASL?

Thanks

Hi Goel,

I'd recommend you to grab the ACPI spec from https://uefi.org/specifications
Learn on the go, extract the DSDT/SSDT from an acpidump, disassemble it and study the result. If you are not sure what a method does, look it up in the spec.

Although possibly outdated, these earlier notes might be of help: https://github.com/Bumblebee-Project/Bumblebee/wiki/ACPI-for-Developers

As for tools, acpidump, acpixtract and iasl are mandatory. See also the get_methods and bios-extract.sh scripts in this repo for convenience.

Replacing a whole DSDT/SSDT is doable although you might run into issues while trying to recompile a disassembled result. For modifying single ACPI methods, have a look at the custom_method Linux kernel module.

For ACPI-related stuff on Linux, see also https://www.kernel.org/doc/Documentation/acpi/. In particular:

Hope it helps.

@Lekensteyn, Thank you very much for the help and resources provided!

https://acpica.org/ also offers great resources. Would it make sense to add the links and hints to the README here @Lekensteyn?