diff options
Diffstat (limited to '')
-rw-r--r-- | debian/patches/vt-handoff.patch | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/debian/patches/vt-handoff.patch b/debian/patches/vt-handoff.patch new file mode 100644 index 0000000..153c58d --- /dev/null +++ b/debian/patches/vt-handoff.patch @@ -0,0 +1,101 @@ +From 4336395ce7d82827b466a0088e1b08d42ef24ae8 Mon Sep 17 00:00:00 2001 +From: Colin Watson <cjwatson@ubuntu.com> +Date: Mon, 13 Jan 2014 12:13:30 +0000 +Subject: 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 +--- + configure.ac | 11 +++++++++++ + util/grub.d/10_linux.in | 28 +++++++++++++++++++++++++++- + 2 files changed, 38 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 947fd529f..e11df6bc5 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1948,6 +1948,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]) +diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +index d46d7852b..64204c216 100644 +--- a/util/grub.d/10_linux.in ++++ b/util/grub.d/10_linux.in +@@ -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" + +@@ -104,6 +105,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" +@@ -149,7 +158,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/" +@@ -228,6 +237,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 |