For debug_layer and debug_level, include/acpi/acutput. h contains many values, which determine the details and content range of Linux/ACPI output information. Acpi. debug_level and acpi. debug_layer are kernel parameters. You can also change these values when the system is running. They are/sys/module/acpi/parameters/debug _ {level, layer }.
Note that the output information may soon run out of the ring buffer of the kernel. You may need to use log_buf_len = XY to increase the ring buffer size. Using the serial console (Documentation/serial-console.txt) is a good way to get the kernel output. If your laptop does not have a serial port, try netconsole (Documentation/networking/netconsole.txt ).
Linux acpi off using custom DSDT
Linux acpi offDSDT (Differentiated System Description Table) is a major ACPI Table that contains a lot of AML code. These codes may be wrong due to BIOS bugs. A method provided by Linux allows you to use a customized DSDT table, which is helpful for debugging. Perform the following steps to use a custom DSDT for kernel:
First, you must obtain the tools such as acpidump in the following sections of the original DSDT table ):
$ Acpidump> acpidump. out
$ Acpixtract DSDT acpidump> DSDT. dat
In this way, we get the binary file of the DSDT table and decompile it.
$ Iasl-d DSDT. dat
We will get an AML code file, you can modify it
$ Vi DSDT. dsl
Then re-compile
$ Iasl-tc DSDT. dsl
Copy it to the kernel source
$ Cp DSDT. hex $ SRC/include/
Linux acpi off Add the following lines to your kernel configuration file. config ):
CONFIG_STANDALONE = n
CONFIG_ACPI_CUSTOM_DSDT = y
CONFIG_ACPI_CUSTOM_DSDT_FILE = "DSDT. hex"
Linux acpi off: Compile and run the kernel. Your dmesg should have the following output:
Table [DSDT] replaced by host OS
With this method, you can fix the DSDT bug. This method brings about a useful debug Method: Open the debug option of ACPI, and add statements similar to the following in your DSDT:
Store ("hello world !", Debug)
Store (Local0, Debug)
Store a variable in a special target Debug. The following output is displayed when the function added with such a statement is interpreted and executed by the kernel:
[ACPI Debug] String: [0x0C] "hello world !"
[ACPI Debug] Integer: 0 × 00000042
Therefore, we can perform debugging at the AML code level.