Am Donnerstag, den 20.08.2009, 18:18 -0400 schrieb Pavel Roskin:
> On Wed, 2009-08-19 at 17:18 +0200, Robert Millan wrote:
> 
> > The eye candy is nice but not so important.  For me, gfxterm should be
> > default on platforms where it's available, because it implements UTF-8,
> > which is necessary to support l10n.
> 
> Fine with me.   Just please don't rely on existence of modules.
> 

Here's now a patch which moves the check for vbe.mod from 00_header to
grub-mkconfig and enables gfxterm if it's found.

-- 
Felix Zielcke
Proud Debian Maintainer
2009-08-23  Felix Zielcke  <fziel...@z-51.de>

	* util/grub.d/00_header.in: Move check for the video backend of
	gfxterm from here ...
	* util/grub-mkconfig.in: ... to here.  Enable gfxterm if there's
	a suitable video backend.

Index: util/grub.d/00_header.in
===================================================================
--- util/grub.d/00_header.in	(revision 2508)
+++ util/grub.d/00_header.in	(working copy)
@@ -73,23 +73,11 @@ case x${GRUB_TERMINAL_OUTPUT} in
     # Make the font accessible
     prepare_grub_to_access_device `${grub_probe} --target=device ${GRUB_FONT_PATH}`
 
-    # Pick a video backend
-    video_backend=
-    for i in vbe ; do
-      if test -e ${grub_prefix}/$i.mod ; then
-        video_backend=$i
-        break
-      fi
-    done
-    if ! [ "${video_backend}" ] ; then
-      echo "No suitable backend could be found for gfxterm." >&2 ; exit 1
-    fi
-
     cat << EOF
 if loadfont `make_system_path_relative_to_its_root ${GRUB_FONT_PATH}` ; then
   set gfxmode=${GRUB_GFXMODE}
   insmod gfxterm
-  insmod ${video_backend}
+  insmod ${GRUB_VIDEO_BACKEND}
   if terminal_output gfxterm ; then true ; else
     # For backward compatibility with versions of terminal.mod that don't
     # understand terminal_output
Index: util/grub-mkconfig.in
===================================================================
--- util/grub-mkconfig.in	(revision 2508)
+++ util/grub-mkconfig.in	(working copy)
@@ -141,7 +141,24 @@ if [ "x${GRUB_TERMINAL}" != "x" ] ; then
 fi
 
 case x${GRUB_TERMINAL_OUTPUT} in
-  x | xconsole | xserial | xofconsole | xgfxterm) ;;
+  x | xgfxterm)
+    # If this platform supports gfxterm, try to use it.
+    if test -e ${grub_prefix}/gfxterm.mod ; then
+      GRUB_VIDEO_BACKEND=
+      for i in vbe ; do
+        if test -e ${grub_prefix}/$i.mod ; then
+          GRUB_VIDEO_BACKEND=$i
+          break
+        fi
+      done
+      if [ -n "${GRUB_VIDEO_BACKEND}" ] ; then
+        GRUB_TERMINAL_OUTPUT=gfxterm
+      elif [ "${GRUB_TERMINAL_OUTPUT}" = "gfxterm" ] ; then
+        echo "No suitable backend could be found for gfxterm." >&2 ; exit 1
+      fi
+    fi
+  ;;
+  xconsole | xserial | xofconsole) ;;
   *) echo "Invalid output terminal \"${GRUB_TERMINAL_OUTPUT}\"" >&2 ; exit 1 ;;
 esac
 
@@ -190,7 +207,8 @@ export GRUB_DEVICE \
   GRUB_DEVICE_BOOT_UUID \
   GRUB_FS \
   GRUB_FONT_PATH \
-  GRUB_PRELOAD_MODULES
+  GRUB_PRELOAD_MODULES \
+  GRUB_VIDEO_BACKEND
 
 # These are optional, user-defined variables.
 export GRUB_DEFAULT \
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to