--- 10_linux 2011-10-01 14:40:35.000000000 +0200
+++ 09_linux_dsdt 2012-02-08 19:42:17.800478439 +0100
@@ -23,6 +23,14 @@
libdir=${exec_prefix}/lib
. ${libdir}/grub/grub-mkconfig_lib
+GRUB_CUSTOM_ACPI="/boot/dsdt.aml"
+if [ x${GRUB_CUSTOM_ACPI} != x ] && [ -f ${GRUB_CUSTOM_ACPI} ] \
+ && is_path_readable_by_grub ${GRUB_CUSTOM_ACPI}; then
+ echo "Found custom ACPI table: ${GRUB_CUSTOM_ACPI}" >&2
+else
+ exit 0
+fi
+
export TEXTDOMAIN=grub
export TEXTDOMAINDIR=${prefix}/share/locale
@@ -87,7 +95,7 @@
else
title="$(gettext_quoted "%s, with Linux %s")"
fi
- printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${version}"
+ printf "menuentry '${title}, fixed DSDT' ${CLASS} {\n" "${os}" "${version}"
cat << EOF
recordfail
EOF
@@ -121,6 +129,9 @@
EOF
fi
cat << EOF
+ acpi (\$root)`make_system_path_relative_to_its_root ${GRUB_CUSTOM_ACPI}`
+EOF
+ cat << EOF
linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args}
EOF
if test -n "${initrd}" ; then
@@ -186,7 +197,7 @@
in_submenu=false
while [ "x$list" != "x" ] ; do
linux=`version_find_latest $list`
- echo "Found linux image: $linux" >&2
+ echo "Found linux image: $linux (with fixed DSDT)" >&2
basename=`basename $linux`
dirname=`dirname $linux`
rel_dirname=`make_system_path_relative_to_its_root $dirname`
@@ -244,7 +255,7 @@
list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '`
if [ "$list" ] && ! $in_submenu; then
- echo "submenu \"Previous Linux versions\" {"
+ echo "submenu \"Previous Linux versions, with fixed DSDT\" {"
in_submenu=:
fi
done