read DSDT from initramfs then try initrd
PATCH 2/2 read DSDT from initramfs then try initrd
Markus, could you add this one to your collection of "override DSDT via initrd" patches on http://gaugusch.at/kernel.shtml, please?
An mkinitrd working for the patch can be found here:
ftp.suse.com/pub/people/trenn/mkinitrd
use:
mkinitrd -k vmlinuz-version -i initrd-version -a /etc/DSDT.aml for initramfs or
add the -R option to build up an initrd.
One time tested.
Comments appreciated.
Thomas
-> linux-2.6.11-rc5
Subject: Read DSDT from initrd or initramfs
From: Thomas Renninger <[email protected]>
Searches and reads in the root of initramfs a DSDT.aml file. If not found the initrd is scanned for a DSDT signature ("INITRDDSDT123DSDT123"). Once a DSDT in the initramfs or initrd is found the DSDT provided by BIOS is replaced.
drivers/acpi/Kconfig renamed from drivers/acpi/Kconfig.orig +13 -0
@@ -343,4 +343,17 @@ This is the ACPI generic container driver which supports ACPI0004, PNP0A05 and PNP0A06 devices +config ACPI_INITRD + bool "Read DSDT from initrd or initramfs" + depends on ACPI && BLK_DEV_INITRD && !ACPI_CUSTOM_DSDT + default n + help + The DSDT (Differentiated System Description Table) often needs to be + overridden because of broken BIOS implementations. If you want to use + a customized DSDT, please use the mkinitrd tool (mkinitrd package) to + attach the DSDT to the initrd or initramfs + (see http://gaugusch.at/kernel.shtml for details) + If there is no DSDT found in the initrd, the DSDT from the BIOS is + used. It is save to say yes here. + endmenu
drivers/acpi/tables/tbget.c renamed from drivers/acpi/tables/tbget.c.orig +6 -2
@@ -45,7 +45,6 @@#include <acpi/acpi.h> #include <acpi/actables.h> -#define _COMPONENT ACPI_TABLESACPI_MODULE_NAME ("tbget" )
@@ -287,12 +286,17 @@ acpi_format_exception (status)));return_ACPI_STATUS (status); } - +/* Copy the table info */ ACPI_REPORT_INFO (("Table [%4.4s] replaced by host OS\n" , table_info->pointer->signature)); +#ifdef CONFIG_ACPI_INITRD +if (new_table) +ACPI_MEM_FREE (new_table); +#endif +return_ACPI_STATUS (AE_OK ); }
drivers/acpi/osl.c renamed from drivers/acpi/osl.c.orig +99 -16
131 lines not on this page · raw message