I'm having a hard time fixing the ACPI subsystem of an HP laptop (Pavilion DV6-6008el, Ubuntu Natty 64-bit).
I can boot only if
acpi=off is specified as kernel parameter in grub, otherwise blank screen and system hanging. Both blank screen and ACPI disabled are not acceptable. There is another similar question by me on Ask Ubuntu with other details.
I was able to find good docs about how to debug ACPI; particularly useful is this technique: if decompiling and recompiling a DSDT table the compiler gives an error, well... the table is broken and this could be the reason for the boot failure. Next step is fix the code, compile and override the system DSDT with the fixed one (recompiling the kernel or building the custom DSDT into an initrd). This is the procedure:
# apt-get install acpidump # dump a system's ACPI table with DSTD signature to an ASCII file sudo acpidump -t DSDT > dump # convert ASCII acpidump output to raw binary table. Creates DSDT.dat, binary. acpixtract dump # apt-get install iasl # disassemble AML to ASL, creates DSDT.dsl # (AML: ACPI Machine Language, binary. ASL: ACPI Source Language, source) iasl -d DSDT.dat # recompile AML in assembler (-ta) or C (-tc) hex table. -vr disables remarks. iasl -vr -tc DSDT.dsl
Oops, iasl intel compiler complains:
DSDT.dsl 37: External (\TNOT) Error 4057 - ^ Name already exists in scope (\TNOT) DSDT.dsl 11050: Method (PAPR, 0, NotSerialized) Warning 1088 - ^ Not all control paths return a value (PAPR) DSDT.dsl 12566: Method (_CRS, 0, NotSerialized) Warning 1088 - ^ Not all control paths return a value (_CRS) DSDT.dsl 12566: Method (_CRS, 0, NotSerialized) Warning 1081 - ^ Reserved method must return a value (Buffer required for _CRS) ASL Input: DSDT.dsl - 12748 lines, 424447 bytes, 5910 keywords Compilation complete. 1 Errors, 3 Warnings, 8 Remarks, 20 Optimizations
Here is the full table source (36kb).
Any help to fix the issue, error and warnings, is greatly appreciated. Many thanks.
- Advanced Configuration and Power Interface Specification V4, 2010 (ch 18 ASL ref, ch 19, AML spec)
- Index of /doc/Documentation/acpi (kernel.org)
ACPICA (ACPI Component Architecture)
HOWTO Fix A Buggy DSDT File (ubuntuforums.org)