mirror of
https://git.proxmox.com/git/grub2
synced 2025-10-20 21:58:44 +00:00

The overflow was in fact impossible in practice because the int parameter is only ever 0, 1, or 2, but GCC couldn't prove that.
85 lines
2.5 KiB
Diff
85 lines
2.5 KiB
Diff
From 78b220997f3f16b5d3bd351e5573fc2779cc2cfd Mon Sep 17 00:00:00 2001
|
|
From: Steve Langasek <steve.langasek@ubuntu.com>
|
|
Date: Mon, 13 Jan 2014 12:13:12 +0000
|
|
Subject: Output a menu entry for firmware setup on UEFI FastBoot systems
|
|
|
|
Forwarded: no
|
|
Last-Update: 2015-09-04
|
|
|
|
Patch-Name: uefi_firmware_setup.patch
|
|
---
|
|
Makefile.util.def | 6 ++++++
|
|
util/grub.d/30_uefi-firmware.in | 46 +++++++++++++++++++++++++++++++++++++++++
|
|
2 files changed, 52 insertions(+)
|
|
create mode 100644 util/grub.d/30_uefi-firmware.in
|
|
|
|
diff --git a/Makefile.util.def b/Makefile.util.def
|
|
index c939deb92..168acbe59 100644
|
|
--- a/Makefile.util.def
|
|
+++ b/Makefile.util.def
|
|
@@ -509,6 +509,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;
|
|
diff --git a/util/grub.d/30_uefi-firmware.in b/util/grub.d/30_uefi-firmware.in
|
|
new file mode 100644
|
|
index 000000000..3c9f533d8
|
|
--- /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 0x%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
|