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

grub2 on powerpc



Hi,

As you might know, experimental grub2 support has been added to d-i when using
the expert mode, but it is only yet available on i386/amd64.

I made this patch to enable grub2 for powerpc as well, but unfortunately I can't
test it (no ppc hardware here).  Would anyone like to try it?

-- 
Robert Millan

My spam trap is honeypot@aybabtu.com.  Note: this address is only intended for
spam harvesters.  Writing to it will get you added to my black list.
Remember to force local grub-installer in netboot:

	echo grub-installer > installer/build/pkg-lists/local

Index: packages/arch/i386/grub-installer/debian/control
===================================================================
--- packages/arch/i386/grub-installer/debian/control	(revision 40466)
+++ packages/arch/i386/grub-installer/debian/control	(working copy)
@@ -7,7 +7,7 @@
 Standards-Version: 3.6.1
 
 Package: grub-installer
-Architecture: i386 hurd-i386 amd64 kfreebsd-i386 kfreebsd-amd64
+Architecture: any-i386 any-amd64 any-powerpc
 Provides: bootable-system
 Depends: cdebconf-udeb, kernel-installer, created-fstab, di-utils (>= 1.15), di-utils-mapdevfs, os-prober, ${dmidecode}
 XB-Installer-Menu-Item: 73
Index: packages/arch/i386/grub-installer/debian/isinstallable
===================================================================
--- packages/arch/i386/grub-installer/debian/isinstallable	(revision 40466)
+++ packages/arch/i386/grub-installer/debian/isinstallable	(working copy)
@@ -13,10 +13,13 @@
 	mount | grep "on /target${1%/} " | cut -d' ' -f5
 }
 
+bootfstype=$(findfstype /boot)
+[ -n "$bootfstype" ] || bootfstype="$(findfstype /)"
+
 ARCH="$(archdetect)"
 
 case $ARCH in
-    i386/*)
+    i386/*|amd64/*)
 	MANUFACTURER="$(dmidecode -s system-manufacturer)"
 	case $MANUFACTURER in
 	    Apple*)
@@ -27,6 +30,12 @@
 	    ;;
 	esac
     ;;
+    *)
+	if [ "$bootfstype" = "reiserfs" ]; then
+		log "grub legacy doesn't support $ARCH, and grub2 doesn't (yet) support reiserfs"
+		exit 1
+	fi
+    ;;
 esac
 
 bootfs=$(findfs /boot)
@@ -44,9 +53,6 @@
 	exit 1
 fi
 
-bootfstype=$(findfstype /boot)
-[ -n "$bootfstype" ] || bootfstype="$(findfstype /)"
-
 if [ "$bootfstype" = "xfs" ]; then
 	log "/boot on xfs, unsafe to install grub"
 	# Check this first to allow for preseeding forcing grub to xfs.
Index: packages/arch/i386/grub-installer/debian/grub-installer.templates
===================================================================
--- packages/arch/i386/grub-installer/debian/grub-installer.templates	(revision 40466)
+++ packages/arch/i386/grub-installer/debian/grub-installer.templates	(working copy)
@@ -100,6 +100,17 @@
  becomes unbootable. You're advised not to try this in production
  environments.
 
+Template: grub-installer/grub2_only
+Type: boolean
+Default: false
+# This is suitable for testing grub2 only. Do not translate it!
+Description: Install GRUB 2 as your bootloader?
+ GRUB 2 is the next generation of GNU GRUB. It has interesting new features but
+ is still experimental software. If you choose to install it, you should be
+ prepared for breakage, and have an idea on how to recover your system if it
+ becomes unbootable. You're advised not to try this in production
+ environments.
+
 Template: grub-installer/progress/title
 Type: text
 _Description: Installing GRUB boot loader
Index: packages/arch/i386/grub-installer/grub-installer
===================================================================
--- packages/arch/i386/grub-installer/grub-installer	(revision 40466)
+++ packages/arch/i386/grub-installer/grub-installer	(working copy)
@@ -189,21 +189,41 @@
 bootfstype=$(findfstype /boot)
 [ -n "$bootfstype" ] || bootfstype="$(findfstype /)"
 
-# GRUB Legacy defaults
-grub_version="grub"
-menu_file="menu.lst"
+ARCH="$(archdetect)"
 
-# reiserfs is the only filesystem that d-i supports and grub2 doesn't yet
-if [ "$bootfstype" != "reiserfs" ]; then
-  db_input low grub-installer/grub2_instead_of_grub_legacy || [ $? -eq 30 ]
-  db_go || true
-  db_get grub-installer/grub2_instead_of_grub_legacy
-  if [ "$RET" = true ]; then
-    grub_version="grub2"
-    menu_file="grub.cfg"
-  fi
-fi
+case $ARCH in
+    i386/*|amd64/*)
+	# GRUB Legacy defaults
+	grub_version="grub"
+	menu_file="menu.lst"
 
+	# reiserfs is the only filesystem that d-i supports and grub2 doesn't yet
+	if [ "$bootfstype" != "reiserfs" ]; then
+	  db_input low grub-installer/grub2_instead_of_grub_legacy || [ $? -eq 30 ]
+	  db_go || true
+	  db_get grub-installer/grub2_instead_of_grub_legacy
+	  if [ "$RET" = true ]; then
+	    grub_version="grub2"
+	    menu_file="grub.cfg"
+	  fi
+	fi
+    ;;
+    *)
+	# we don't need to check supported filesystems here, because isinstallable had
+	# enough information to do this before
+
+	db_input low grub-installer/grub2_only || [ $? -eq 30 ]
+	db_go || true
+	db_get grub-installer/grub2_only
+	if [ "$RET" = true ]; then
+	  grub_version="grub2"
+	  menu_file="grub.cfg"
+	else
+	  exit 10
+	fi
+    ;;
+esac
+
 if [ "$bootfstype" = "xfs" ]; then
 	# warn user that grub on xfs is not safe and let them back out to
 	# main menu.

Reply to: