Commit 94c17f66 authored by Colin Watson's avatar Colin Watson Committed by Colin Watson

Add configure option to use vt.handoff=7

This is used for non-recovery Linux entries only; it enables
flicker-free booting if gfxpayload=keep is in use and a suitable kernel
is present.

Author: Andy Whitcroft <apw@canonical.com>
Forwarded: not-needed
Last-Update: 2013-12-25

Patch-Name: vt_handoff.patch
parent 9cccd716
......@@ -1863,6 +1863,17 @@ else
fi
AC_SUBST([GFXPAYLOAD_DYNAMIC])
AC_ARG_ENABLE([vt-handoff],
[AS_HELP_STRING([--enable-vt-handoff],
[use Linux vt.handoff option for flicker-free booting (default=no)])],
[], [enable_vt_handoff=no])
if test x"$enable_vt_handoff" = xyes ; then
VT_HANDOFF=1
else
VT_HANDOFF=0
fi
AC_SUBST([VT_HANDOFF])
LIBS=""
AC_SUBST([FONT_SOURCE])
......
......@@ -24,6 +24,7 @@ ubuntu_recovery="@UBUNTU_RECOVERY@"
quiet_boot="@QUIET_BOOT@"
quick_boot="@QUICK_BOOT@"
gfxpayload_dynamic="@GFXPAYLOAD_DYNAMIC@"
vt_handoff="@VT_HANDOFF@"
. "$pkgdatadir/grub-mkconfig_lib"
......@@ -94,6 +95,14 @@ if [ "$ubuntu_recovery" = 1 ]; then
GRUB_CMDLINE_LINUX_RECOVERY="$GRUB_CMDLINE_LINUX_RECOVERY nomodeset"
fi
if [ "$vt_handoff" = 1 ]; then
for word in $GRUB_CMDLINE_LINUX_DEFAULT; do
if [ "$word" = splash ]; then
GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT \$vt_handoff"
fi
done
fi
linux_entry ()
{
os="$1"
......@@ -139,7 +148,7 @@ linux_entry ()
fi
if ([ "$ubuntu_recovery" = 0 ] || [ x$type != xrecovery ]) && \
([ "x$GRUB_GFXPAYLOAD_LINUX" != x ] || [ "$gfxpayload_dynamic" = 1 ]); then
echo " set gfxpayload=\$linux_gfx_mode" | sed "s/^/$submenu_indentation/"
echo " gfxmode \$linux_gfx_mode" | sed "s/^/$submenu_indentation/"
fi
echo " insmod gzio" | sed "s/^/$submenu_indentation/"
......@@ -214,6 +223,23 @@ prepare_root_cache=
boot_device_id=
title_correction_code=
cat << 'EOF'
function gfxmode {
set gfxpayload="${1}"
EOF
if [ "$vt_handoff" = 1 ]; then
cat << 'EOF'
if [ "${1}" = "keep" ]; then
set vt_handoff=vt.handoff=7
else
set vt_handoff=
fi
EOF
fi
cat << EOF
}
EOF
# Use ELILO's generic "efifb" when it's known to be available.
# FIXME: We need an interface to select vesafb in case efifb can't be used.
if [ "x$GRUB_GFXPAYLOAD_LINUX" != x ] || [ "$gfxpayload_dynamic" = 0 ]; then
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment