]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2010-07-31 Robert Millan <rmh@gnu.org>
authorRobert Millan <rmh@aybabtu.com>
Sun, 1 Aug 2010 00:14:07 +0000 (02:14 +0200)
committerRobert Millan <rmh@aybabtu.com>
Sun, 1 Aug 2010 00:14:07 +0000 (02:14 +0200)
* util/grub.d/10_kfreebsd.in: Make module handling more generic.

ChangeLog
util/grub.d/10_kfreebsd.in

index 24303ff17ebda13a312e448427bd56a3751823c2..249256083f1e608c5bbe6134aaa4e6fa74a3ba80 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-07-31  Robert Millan  <rmh@gnu.org>
+
+       * util/grub.d/10_kfreebsd.in: Make module handling more generic.
+
 2010-07-31  Robert Millan  <rmh@gnu.org>
 
        * kern/emu/misc.c: Add missing license header.
index 9915abdf12e0f674dac952c2f885b1a27536d7d4..f32da30134d39f37230a11522823380ba81c4bec 100644 (file)
@@ -51,6 +51,10 @@ kfreebsd_entry ()
   if [ -z "${prepare_boot_cache}" ]; then
     prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/")"
   fi
+  if [ -z "${prepare_module_dir_cache}" ]; then
+    prepare_module_dir_cache="$(prepare_grub_to_access_device $(grub-probe -t device "${module_dir}") | sed -e "s/^/\t/")"
+  fi
+
   printf '%s\n' "${prepare_boot_cache}"
   cat << EOF
        echo                    '$(printf "$(gettext_quoted "Loading kernel of FreeBSD %s ...")" ${version})'
@@ -63,9 +67,10 @@ EOF
 EOF
   fi
 
-  if test -n "${acpi_ko}" ; then
+  if test -e "${module_dir}/acpi.ko" ; then
+    printf '%s\n' "${prepare_module_dir_cache}"
     cat << EOF
-       kfreebsd_module_elf     ${acpi_ko_rel_dirname}/${acpi_ko_basename}
+       kfreebsd_module_elf     ${module_dir_rel}/acpi.ko
 EOF
   fi
 
@@ -103,19 +108,17 @@ while [ "x$list" != "x" ] ; do
   version=`echo $basename | sed -e "s,^[^0-9]*-,,g;s/\.gz$//g"`
   alt_version=`echo $version | sed -e "s,\.old$,,g"`
 
-  acpi_ko=
-  for i in "/lib/modules/${version}/acpi.ko" "/lib/modules/${alt_version}/acpi.ko" \
-      "/boot/kernel/acpi.ko"; do
+  module_dir=
+  for i in "/lib/modules/${version}" "/lib/modules/${alt_version}" \
+      "/boot/kernel"; do
     if test -e "$i" ; then
-      acpi_ko="$i"
+      module_dir="$i"
       break
     fi
   done
-  if test -n "${acpi_ko}" ; then
-    echo "Found ACPI module: ${acpi_ko}" >&2
-    acpi_ko_basename=`basename ${acpi_ko}`
-    acpi_ko_dirname=`dirname ${acpi_ko}`
-    acpi_ko_rel_dirname=`make_system_path_relative_to_its_root $acpi_ko_dirname`
+  if test -n "${module_dir}" ; then
+    echo "Found kernel module directory: ${module_dir}" >&2
+    module_dir_rel=$(make_system_path_relative_to_its_root $module_dir)
   fi
 
   kfreebsd_entry "${OS}" "${version}"