Output a menu entry for firmware setup on UEFI FastBoot systems.

This commit is contained in:
Colin Watson 2013-01-29 05:41:07 +00:00
parent d48c35a473
commit a399e8f4dd
6 changed files with 139 additions and 0 deletions

View File

@ -455,6 +455,12 @@ script = {
installdir = grubconf;
};
script = {
name = '30_uefi-firmware';
common = util/grub.d/30_uefi-firmware.in;
installdir = grubconf;
};
script = {
name = '40_custom';
common = util/grub.d/40_custom.in;

1
debian/changelog vendored
View File

@ -6,6 +6,7 @@ grub2 (2.00-13) UNRELEASED; urgency=low
alternative as the fallback background if GRUB_DISTRIBUTOR is "Ubuntu".
* Merge from Ubuntu:
- source_grub2.py: Use attach_default_grub from apport's hookutils.
- Output a menu entry for firmware setup on UEFI FastBoot systems.
-- Colin Watson <cjwatson@debian.org> Mon, 28 Jan 2013 11:08:07 +0000

View File

@ -34,3 +34,4 @@ no_insmod_on_sb.patch
default_grub_d.patch
blacklist_1440x900x32.patch
kfreebsd_9.1.patch
uefi_firmware_setup.patch

View File

@ -0,0 +1,84 @@
Description: Output a menu entry for firmware setup on UEFI FastBoot systems
Author: Steve Langasek <steve.langasek@ubuntu.com>
Forwarded: no
Index: b/Makefile.util.def
===================================================================
--- a/Makefile.util.def
+++ b/Makefile.util.def
@@ -456,6 +456,12 @@
};
script = {
+ name = '30_uefi-firmware';
+ common = util/grub.d/30_uefi-firmware.in;
+ installdir = grubconf;
+};
+
+script = {
name = '40_custom';
common = util/grub.d/40_custom.in;
installdir = grubconf;
Index: b/po/POTFILES-shell.in
===================================================================
--- a/po/POTFILES-shell.in
+++ b/po/POTFILES-shell.in
@@ -7,6 +7,7 @@
util/grub.d/10_windows.in
util/grub.d/20_linux_xen.in
util/grub.d/30_os-prober.in
+util/grub.d/30_uefi-firmware.in
util/grub.d/40_custom.in
util/grub.d/41_custom.in
util/grub-install.in
Index: b/util/grub.d/30_uefi-firmware.in
===================================================================
--- /dev/null
+++ b/util/grub.d/30_uefi-firmware.in
@@ -0,0 +1,46 @@
+#! /bin/sh
+set -e
+
+# grub-mkconfig helper script.
+# Copyright (C) 2012 Free Software Foundation, Inc.
+#
+# GRUB is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GRUB is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GRUB. If not, see <http://www.gnu.org/licenses/>.
+
+prefix="@prefix@"
+exec_prefix="@exec_prefix@"
+datarootdir="@datarootdir@"
+
+export TEXTDOMAIN=@PACKAGE@
+export TEXTDOMAINDIR="@localedir@"
+
+. "@datadir@/@PACKAGE@/grub-mkconfig_lib"
+
+efi_vars_dir=/sys/firmware/efi/vars
+EFI_GLOBAL_VARIABLE=8be4df61-93ca-11d2-aa0d-00e098032b8c
+OsIndications="$efi_vars_dir/OsIndicationsSupported-$EFI_GLOBAL_VARIABLE/data"
+
+if [ -e "$OsIndications" ] && \
+ [ "$(( $(printf %x \'"$(cat $OsIndications | cut -b1)") & 1 ))" = 1 ]; then
+ LABEL="System setup"
+
+ gettext_printf "Adding boot menu entry for EFI firmware configuration\n" >&2
+
+ onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
+
+ cat << EOF
+menuentry '$LABEL' \$menuentry_id_option 'uefi-firmware' {
+ fwsetup
+}
+EOF
+fi

View File

@ -7,6 +7,7 @@ util/grub.d/10_netbsd.in
util/grub.d/10_windows.in
util/grub.d/20_linux_xen.in
util/grub.d/30_os-prober.in
util/grub.d/30_uefi-firmware.in
util/grub.d/40_custom.in
util/grub.d/41_custom.in
util/grub-install.in

View File

@ -0,0 +1,46 @@
#! /bin/sh
set -e
# grub-mkconfig helper script.
# Copyright (C) 2012 Free Software Foundation, Inc.
#
# GRUB is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# GRUB is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GRUB. If not, see <http://www.gnu.org/licenses/>.
prefix="@prefix@"
exec_prefix="@exec_prefix@"
datarootdir="@datarootdir@"
export TEXTDOMAIN=@PACKAGE@
export TEXTDOMAINDIR="@localedir@"
. "@datadir@/@PACKAGE@/grub-mkconfig_lib"
efi_vars_dir=/sys/firmware/efi/vars
EFI_GLOBAL_VARIABLE=8be4df61-93ca-11d2-aa0d-00e098032b8c
OsIndications="$efi_vars_dir/OsIndicationsSupported-$EFI_GLOBAL_VARIABLE/data"
if [ -e "$OsIndications" ] && \
[ "$(( $(printf %x \'"$(cat $OsIndications | cut -b1)") & 1 ))" = 1 ]; then
LABEL="System setup"
gettext_printf "Adding boot menu entry for EFI firmware configuration\n" >&2
onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
cat << EOF
menuentry '$LABEL' \$menuentry_id_option 'uefi-firmware' {
fwsetup
}
EOF
fi