From b5c6e84fbdda8722a200bdcab59b82cd748b62ca Mon Sep 17 00:00:00 2001 From: Felix Zielcke Date: Tue, 25 Aug 2009 19:42:56 +0000 Subject: [PATCH] 2009-08-25 Felix Zielcke * 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. git-svn-id: svn://svn.savannah.gnu.org/grub/trunk/grub2@2532 d0de0278-0dc1-4c01-8a07-af38b3205e46 --- ChangeLog | 7 +++++++ util/grub-mkconfig.in | 22 ++++++++++++++++++++-- util/grub.d/00_header.in | 14 +------------- 3 files changed, 28 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index d30cfd13..2236b61a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2009-08-25 Felix Zielcke + + * 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. + 2009-08-25 Vladimir Serbinenko Fix breakage in grub-setup. diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in index 8e3c3372..d9640e91 100644 --- a/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in @@ -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 \ diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in index 98c7c004..9f421dc1 100644 --- a/util/grub.d/00_header.in +++ b/util/grub.d/00_header.in @@ -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 -- 2.11.4.GIT