51 lines
1.8 KiB
Diff
51 lines
1.8 KiB
Diff
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: Fritz Elfert <fritz@fritz-elfert.de>
|
||
|
Date: Mon, 13 Jan 2020 19:29:58 +0100
|
||
|
Subject: [PATCH] Fix savedefault with blscfg
|
||
|
|
||
|
The GRUB_SAVEDEFAULT option was ignored on a BLS configuration. Fix it by
|
||
|
making the menu entries populated from the BLS files to call savedefault
|
||
|
if a save_default environment variable has been set to "true".
|
||
|
|
||
|
This variable is set by grub2-mkconfig to the value in GRUB_SAVEDEFAULT.
|
||
|
---
|
||
|
grub-core/commands/blscfg.c | 5 ++++-
|
||
|
util/grub.d/10_linux.in | 4 ++++
|
||
|
2 files changed, 8 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c
|
||
|
index 83b33c1cd93..069db721bec 100644
|
||
|
--- a/grub-core/commands/blscfg.c
|
||
|
+++ b/grub-core/commands/blscfg.c
|
||
|
@@ -889,11 +889,14 @@ static void create_entry (struct bls_entry *entry)
|
||
|
|
||
|
grub_dprintf ("blscfg2", "devicetree %s for id:\"%s\"\n", dt, id);
|
||
|
|
||
|
- src = grub_xasprintf ("load_video\n"
|
||
|
+ const char *sdval = grub_env_get("save_default");
|
||
|
+ bool savedefault = ((NULL != sdval) && (grub_strcmp(sdval, "true") == 0));
|
||
|
+ src = grub_xasprintf ("%sload_video\n"
|
||
|
"set gfxpayload=keep\n"
|
||
|
"insmod gzio\n"
|
||
|
"linux %s%s%s%s\n"
|
||
|
"%s%s",
|
||
|
+ savedefault ? "savedefault\n" : "",
|
||
|
GRUB_BOOT_DEVICE, clinux, options ? " " : "", options ? options : "",
|
||
|
initrd ? initrd : "", dt ? dt : "");
|
||
|
|
||
|
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
|
||
|
index 21a6915dca3..b70dca27567 100644
|
||
|
--- a/util/grub.d/10_linux.in
|
||
|
+++ b/util/grub.d/10_linux.in
|
||
|
@@ -152,6 +152,10 @@ EOF
|
||
|
if [ -n "${GRUB_DEFAULT_DTB}" ]; then
|
||
|
${grub_editenv} - set devicetree="${GRUB_DEFAULT_DTB}"
|
||
|
fi
|
||
|
+
|
||
|
+ if [ -n "${GRUB_SAVEDEFAULT}" ]; then
|
||
|
+ ${grub_editenv} - set save_default="${GRUB_SAVEDEFAULT}"
|
||
|
+ fi
|
||
|
fi
|
||
|
|
||
|
exit 0
|