Hi,Nice :-)
I made up a little How-To for what I find out is nice to debug ACPI
problems.
Any enhancements, corrections, etc. are very much appreciated.See below.
I'd like to have a final version in the Documentation section.When you send in the patch to add that final version, please also
Perhaps start out here by telling people what ACPI is. Something like this:
How to debug ACPI Problems
==========================
Thomas Renninger <trenn@xxxxxxx>, 2007
Copyright (C) 2007 SUSE Linux GmbH
1. Introduction
---------------
1.1. General Info
- - - - - - - -
Please refer to the latest ACPI spec for general ACPI information:
http://www.acpi.info/spec.htm
ACPI is required by most recent x86, x86_64 and IA64 architecture based
machines.
In general ACPI tables provide information from the BIOS to the OS.
There are ACPI tables (DSDT and SSDTs), written in the ACPI Source
Language (ASL) which include byte code (similar to Java byte code) that gets
interpreted by the OS. The kernel makes use of provided BIOS functions
The ACPI tables of your system can be extracted with the acpidump tool:
in the latest pmutils package from here:[snip]
ftp://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/utils
In history people used to override their DSDT to workaround BIOS or even kernel
If you expect the bug in a module in drivers/acpi/*.c code you might have luckI would rewrite that bit as :
and be able to find or narrow down the culprit by simple printks.
On more complicated bugs you should make use of the ACPI_DEBUG=y facility.
Note: In kernel versions before 2.6.22 the boot parameters are:
interface (Documentation/networking/netconsole.txt) to write away
syslog messages over network or firescope
(patches already exist in
2.6.22-rcX-mm?) to send syslog messages over firewire.
The latter might be the only way to debug early hangs on laptops
without serial console anyway.
3.2.2 Using ACPI_DEBUG Boot Parameters via /sysfs and /proc
The same as 3.2.1., you can also pass the parameters at runtime e.g.
via:
echo 0x1F >/proc/acpi/debug_level # before 2.6.22 or
echo ?!? >/sys/?/!/? # Rui?
Wrapping such statements around loading and unloading a bug affected
ACPI module might give you the possibility to increase debug_level,
but still only give you a managable amount of debug output.