1) Download acpi_patch.tar.gz:
This kind of Laptops has another problem over the bugged DSDT, there is a
missing ECDT. The ECDT is used to provide some minimal information about the
Embedded Controller to the ACPI drivers before the Embedded Controller region
has actually been parsed from the DSDT. This is frequently necessary before
initializing the battery and ac adapter, so if you have errors in dmesg from
the battery, adapter or EmbeddedControl, the ECDT is the likely culprit. The
problem was that after booting, my /proc/acpi/ac_adapter and /proc/acpi/battery
directories were empty.
To resolve this problem there is a patch at this address
http://bugzilla.kernel.org/attachment.cgi?id=1690&action=view . This
patch restore the missing ECDT-related functionality. It may be applied to
both the 2.4 and 2.6 kerenl source. If you are using Suse 9.3 it doesn't work,
because the sources file name change, but the code is the same. In the file
acpi_patch.tar.gz you can find all the corrected files you need, you have only
to copy them into the appropriate directory of your system (after a back-up of
existing files!! - Naturally! ;P ).
Files to modify:
#################################
1) PATH_TO_KERNEL/drivers/acpi/ec.c
2) PATH_TO_KERNEL/drivers/acpi/events/evregion.c
3) PATH_TO_KERNEL/drivers/acpi/executer/exregion.c
4) PATH_TO_KERNEL/drivers/acpi/utilities/utglobal.c
5) PATH_TO_KERNEL/include/acpi/acglobal.h
6) PATH_TO_KERNEL/include/acpi/acinterp.h
Probably you have to change the "PATH_TO_KERNEL" with "/usr/src/linux", but is
better that you follow your system documentation.
2) Download dsdtAspire1680.tar.gz:
This file contain the correct DSDT file for the Acer laptops of series 1680 (as
1681, 1681Wlmi, 1681Wlci, 1682.. etc..). The other two files are the patch you
need to use the Smart Battery that this kind of laptops use. At this address
https://sourceforge.net/projects/sbs-linux/ you can find the
SourceForge project dedicate to this. Here you can find the official patch, but
it doesn't work on 1680 if you don't modify before the dsdt. In the file you
find the work done, you have only to untar the archive and follow next steps.
3) Download iasl:
You have to install somewhere in your path the compiler iasl of Intel, you can
find last version at this address
http://developer.intel.com/technology/iapc/acpi/downloads.htm it is
necessary to compile the correct DSDT for your system.
4) Recompile dsdt:
Go into the directory where you have extract the dsdtAspire1680.tar.gz file.
iasl -td dsdt.dsl
this will create two files dsdt.hex and DSDT.aml, they ae usefull for next
steps
5) Fixing the dsdt:
If there are some errors during step 4 you need to correct them. But I think
there aren't. Looks at Google for fixing the problem, as soon as possible I
will put on-line a guide to correct some errors.
6) Incorporating fixed DSDT into the Kernel
If you are using SuSe there are non problems
6a) copy the compiled DSDT.aml
file e.g. to /etc
6b) add the path pointing to
e.g. /etc/DSDT.aml to /etc/sysconfig/kernel
ACPI_DSDT="/etc/DSDT.aml"
If you are not using Suse visit
http://forums.gentoo.org/viewtopic.php?t=122145 on thi forum you can
find at chapter 9 some useful ways to do this.
7) Make sure you have done the step 1, 2, 3, 4, 5, 6
8) Recompile your kernel
8a) cd /usr/src/linux
8b) make
8c) make modules_install
8d) make install
9) Reboot
Links:
http://forums.gentoo.org/viewtopic.php?t=122145
http://lists.suse.com/archive/suse-laptop/2005-Mar/0108.html
https://sourceforge.net/projects/sbs-linux/
http://acpi.sourceforge.net/
http://www.acpi.info/