1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
@section Compile your Kernel with ACPI Debug set and track down ACPI problems
If you have ACPI problems on your machine, you should first have a look
at @ref{DSDT}. Try to disassemble your DSDT and recompile it. If you
have sever compiler errors, first try to fix them, override your system's
DSDT with your modified one and possibly your problems are gone.
If this does not help go on reading this section.
This section describes how you enable ACPI debug in SUSE
kernels which was disabled due to performance problems.
Other distributions may already have ACPI debug set or you need
to do things slightly different.
ACPI debug is not set anymore in SUSE kernels since version 9.3.
Therefore you need to compile your own kernel with slightly other configs set:
@enumerate
@item
Install the kernel-source package.
@item
Move to the kernel's directory and copy the default configs:
@code{
cd /usr/src/linux @*
cp arch/i386/defconfig.default .config @*
}@*
(Replace i386 with your architecture e.g. x86_64 on 64 bits systems.
Replace default (after defconfig.) with smp if you have a multi processor
system or a dual core or hyperthreaded CPU).
@item
Edit the .config file and enable CONFIG_ACPI_DEBUG:
You need to replace:
"CONFIG_ACPI_DEBUG_LITE=y" with "# CONFIG_ACPI_DEBUG_LITE is not set"@*
and@*
"# CONFIG_ACPI_DEBUG is not set" with "CONFIG_ACPI_DEBUG=y"@*
Be careful, that the strings are identical to the ones above as
the .config file is parsed by scripts. You could use @code{make menuconfig}
and disable ACPI_DEBUG_LITE and enable ACPI_DEBUG with a little
config front-end if you are unsure.
@item
compile and install the kernel (this might take a while):
@code{
make @*
make install
}
@item
You might want to add new boot entry to your boot loader to be able
to boot the new compiled and your old kernel. When using grub, modify
your @code{/boot/grub/menu.lst} file. Simply copy the first boot entry lines
and make sure to replace the @code{/boot/vmlinuz} and @code{/boot/initrd} entries to
point to the right files (/boot/vmlinuz-2.6.Kernel_Version, ls /boot
and doing a copy paste helps).
@item
mkinitrd should not be necessary in newer SUSE versions.
Shutdown the machine and boot the newly compiled kernel.
(if you have ACPI problems during boot time you can now
increase the ACPI debug output by the boot options:
acpi_dbg_level=XXX (see next step for XXX values).
@item
You can increase the debug output during runtime by:
@* @code{
echo XXX >/proc/acpi/debug_level
}@*
Be careful, too high values result in MB of debug output in syslog.
Do:
@* @code{
cat /proc/acpi/debug_level
}@*
to see what levels you can choose. E.g.:
@* @code{
echo 0x1F >/proc/acpi/debug_level
}@*
adds ERROR, WARN, INIT, DEBUG_OBJECT (DSDT debug statements) and INFO.
@item
Now load the ACPI module you have problems with and have a look in
@code{/var/log/messages} whether you find useful information.
@item
If you think you find a kernel bug or an ugly BIOS problem that could
be workarounded in the kernel, please file a bugzilla bug at kernel.org
and assign it to the ACPI component or ask on the acpi-devel mailing list
(see @ref{Lists} for URLs).
@end enumerate
|