PHP Power

Custom DSDT

Some of the CL10 has a broken DSDT. This means that the ACPI won't function completely. In my case that ment I could not access the ac-adapter state (online/offline) in linux.
Files:
aml - dsdt - dsdt.dsl - dsdt.dsl.orig - dsdt.hex

Unpack and place the new DSDT file in your kernel
$ bunzip2 compal.acl10.hex.bz2
$ cp compal.acl10.hex /usr/src/linux/drivers/acpi/dsdt_table.h
To get the kernel to use our hex file instead of the bios DSDT we need to make the following changes to the kernel. The osl.c changes are valid for 2.4 2.5 and 2.6 kernels.
 
--- linux/drivers/acpi/osl.c        2003/01/14 16:22:32     1.1
+++ linux/drivers/acpi/osl.c        2003/01/14 16:25:43
@@ -25,6 +25,7 @@
  *
  */
    
+#include "dsdt_table.h"
 #include 
 #include 
 #include 
@@ -208,7 +209,8 @@
        if (!existing_table || !new_table)
                return AE_BAD_PARAMETER;
                         
-       *new_table = NULL;
+       *new_table = (strncmp(existing_table->signature, DSDT_SIG, 4)) ? NULL \
+                       : (struct acpi_table_header *) AmlCode;
        return AE_OK;
 }

Thanks to Ducrot Bruno for fixing the dsdt table
and http://home.fhtw-berlin.de/~s0502837/r31/ is a pretty good page on using a custom dsdt

Back