[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 1/2] grub-install: Ensure a functional /dev/nvram
From: |
Ismael Luceno |
Subject: |
[PATCH v3 1/2] grub-install: Ensure a functional /dev/nvram |
Date: |
Mon, 5 Sep 2022 14:39:46 +0200 |
This enables an early failure; for i386-ieee1275 and powerpc-ieee1275 on
Linux, without /dev/nvram the system may be left in an unbootable state.
Signed-off-by: Ismael Luceno <iluceno@suse.de>
---
util/grub-install.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/util/grub-install.c b/util/grub-install.c
index 7b04bd3c534b..da50bd58b73b 100644
--- a/util/grub-install.c
+++ b/util/grub-install.c
@@ -827,6 +827,16 @@ fill_core_services (const char *core_services)
free (sysv_plist);
}
+static void
+try_open (const char *path)
+{
+ FILE *f;
+ f = grub_util_fopen (path, "r+");
+ if (!f)
+ grub_util_error (_("Unable to open %s: %s"), path, strerror(errno));
+ fclose (f);
+}
+
int
main (int argc, char *argv[])
{
@@ -1026,6 +1036,20 @@ main (int argc, char *argv[])
break;
}
+ switch (platform)
+ {
+ case GRUB_INSTALL_PLATFORM_I386_IEEE1275:
+ case GRUB_INSTALL_PLATFORM_POWERPC_IEEE1275:
+#ifdef __linux__
+ /* On Linux, ensure /dev/nvram is _functional_. */
+ if (update_nvram)
+ try_open ("/dev/nvram");
+#endif
+ break;
+ default:
+ break;
+ }
+
/* Find the EFI System Partition. */
if (is_efi)
--
2.37.3