commit-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[2657] 2009-10-26 Robert Millan <address@hidden>


From: Robert Millan
Subject: [2657] 2009-10-26 Robert Millan <address@hidden>
Date: Mon, 26 Oct 2009 00:41:59 +0000

Revision: 2657
          http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=2657
Author:   robertmh
Date:     2009-10-26 00:41:58 +0000 (Mon, 26 Oct 2009)
Log Message:
-----------
2009-10-26  Robert Millan  <address@hidden>

        * util/grub.d/10_freebsd.in: Remove.
        * util/grub.d/10_kfreebsd.in: New file (based on 10_linux.in).
        * configure.ac: Set host_kernel=kfreebsd for FreeBSD and GNU/kFreeBSD.

Modified Paths:
--------------
    trunk/grub2/util/grub.d/10_kfreebsd.in

Property Changed:
----------------
    trunk/grub2/


Property changes on: trunk/grub2
___________________________________________________________________
Modified: bzr:revision-info
   - timestamp: 2009-10-26 01:40:53.117000103 +0100
committer: Robert Millan <address@hidden>
properties: 
        branch-nick: trunk

   + timestamp: 2009-10-26 01:41:35.253999949 +0100
committer: Robert Millan <address@hidden>
properties: 
        branch-nick: trunk

Modified: bzr:revision-id:v3-single1-dHJ1bmsvZ3J1YjI.
   - 1769 address@hidden
1770 address@hidden
1771 address@hidden
1772 address@hidden
1773 address@hidden
1774 address@hidden
1775 address@hidden
1776 address@hidden
1777 address@hidden
1778 address@hidden
1779 address@hidden
1780 address@hidden

   + 1769 address@hidden
1770 address@hidden
1771 address@hidden
1772 address@hidden
1773 address@hidden
1774 address@hidden
1775 address@hidden
1776 address@hidden
1777 address@hidden
1778 address@hidden
1779 address@hidden
1780 address@hidden
1781 address@hidden

Modified: bzr:file-ids
   - util/grub.d/10_kfreebsd.in 10_kfreebsd.in-20091026003604-6qpubno6gnmu5ooy-1

   + 

Modified: trunk/grub2/util/grub.d/10_kfreebsd.in
===================================================================
--- trunk/grub2/util/grub.d/10_kfreebsd.in      2009-10-26 00:41:54 UTC (rev 
2656)
+++ trunk/grub2/util/grub.d/10_kfreebsd.in      2009-10-26 00:41:58 UTC (rev 
2657)
@@ -21,82 +21,82 @@
 address@hidden@
 . ${libdir}/grub/grub-mkconfig_lib
 
-if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
-  OS=GNU/Linux
-else
-  OS="${GRUB_DISTRIBUTOR} GNU/Linux"
-fi
-
-# loop-AES arranges things so that /dev/loop/X can be our root device, but
-# the initrds that Linux uses don't like that.
-case ${GRUB_DEVICE} in
-  /dev/loop/*|/dev/loop[0-9])
-    GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"`
-  ;;
+case "${GRUB_DISTRIBUTOR}" in
+  Debian)      OS="${GRUB_DISTRIBUTOR} GNU/kFreeBSD" ;;
+  *)           OS="FreeBSD" ;;
 esac
 
-if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" = 
"xtrue" ] \
-    || ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" ; then
-  LINUX_ROOT_DEVICE=${GRUB_DEVICE}
-else
-  LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID}
-fi
-
-linux_entry ()
+kfreebsd_entry ()
 {
   cat << EOF
 menuentry "$1" {
 EOF
   prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/"
   cat << EOF
-       linux   ${rel_dirname}/${basename} 
root=${linux_root_device_thisversion} ro $2
+       kfreebsd                        ${rel_dirname}/${basename}
 EOF
-  if test -n "${initrd}" ; then
+
+  if test -n "${devices}" ; then
     cat << EOF
-       initrd  ${rel_dirname}/${initrd}
+       kfreebsd_loadenv                
${devices_rel_dirname}/${devices_basename}
 EOF
   fi
+
+  if test -n "${acpi_ko}" ; then
+    cat << EOF
+       kfreebsd_module_elf     ${acpi_ko_rel_dirname}/${acpi_ko_basename}
+EOF
+  fi
+
   cat << EOF
+       set kFreeBSD.vfs.root.mountfrom=${kfreebsd_fs}:${GRUB_DEVICE}
+       set kFreeBSD.vfs.root.mountfrom.options=rw
 }
 EOF
 }
 
-list=`for i in /boot/vmlinu[xz]-* /vmlinu[xz]-* ; do
+list=`for i in /boot/kfreebsd-* /boot/kernel/kernel ; do
         if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi
       done`
 
 while [ "x$list" != "x" ] ; do
-  linux=`version_find_latest $list`
-  echo "Found linux image: $linux" >&2
-  basename=`basename $linux`
-  dirname=`dirname $linux`
+  kfreebsd=`version_find_latest $list`
+  echo "Found kernel of FreeBSD: $kfreebsd" >&2
+  basename=`basename $kfreebsd`
+  dirname=`dirname $kfreebsd`
   rel_dirname=`make_system_path_relative_to_its_root $dirname`
-  version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
+
+  if [ -f /boot/device.hints ] ; then
+    devices=/boot/device.hints
+    devices_basename=`basename $devices`
+    devices_dirname=`dirname $devices`
+    devices_rel_dirname=`make_system_path_relative_to_its_root 
$devices_dirname`
+  fi
+
+  case ${GRUB_FS} in
+    ufs1 | ufs2)        kfreebsd_fs=ufs ;;
+    *)                  kfreebsd_fs=${GRUB_FS} ;;
+  esac
+
+  version=`echo $basename | sed -e "s,^[^0-9]*-,,g;s/\.gz$//g"`
   alt_version=`echo $version | sed -e "s,\.old$,,g"`
-  linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
 
-  initrd=
-  for i in "initrd.img-${version}" "initrd-${version}.img" \
-          "initrd-${version}" "initrd.img-${alt_version}" \
-          "initrd-${alt_version}.img" "initrd-${alt_version}"; do
-    if test -e "${dirname}/${i}" ; then
-      initrd="$i"
+  acpi_ko=
+  for i in "/lib/modules/${version}/acpi.ko" 
"/lib/modules/${alt_version}/acpi.ko" \
+      "/boot/kernel/acpi.ko"; do
+    if test -e "$i" ; then
+      acpi_ko="$i"
       break
     fi
   done
-  if test -n "${initrd}" ; then
-    echo "Found initrd image: ${dirname}/${initrd}" >&2
-  else
-    # "UUID=" magic is parsed by initrds.  Since there's no initrd, it can't 
work here.
-    linux_root_device_thisversion=${GRUB_DEVICE}
+  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`
   fi
 
-  linux_entry "${OS}, with Linux ${version}" \
-      "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
-  if [ "x${GRUB_DISABLE_LINUX_RECOVERY}" != "xtrue" ]; then
-    linux_entry "${OS}, with Linux ${version} (recovery mode)" \
-       "single ${GRUB_CMDLINE_LINUX}"
-  fi
+  kfreebsd_entry "${OS}, kFreeBSD ${version}"
 
-  list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '`
+  list=`echo $list | tr ' ' '\n' | grep -vx $kfreebsd | tr '\n' ' '`
 done





reply via email to

[Prev in Thread] Current Thread [Next in Thread]