installer: Create a flag that marks if EFI support is available

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
This commit is contained in:
Michael Tremer
2018-06-17 18:15:08 +01:00
parent f096a2ea98
commit 8fbadfc7a3
2 changed files with 11 additions and 2 deletions

View File

@@ -81,7 +81,10 @@ struct hw* hw_init() {
// Detect if we are running in EFI mode
ret = access("/sys/firmware/efi", R_OK);
if (ret == 0)
hw->efi = 1;
hw->efi_supported = 1;
// Should we install in EFI mode?
hw->efi = 1;
return hw;
}
@@ -1063,7 +1066,8 @@ int hw_install_bootloader(struct hw* hw, struct hw_destination* dest, const char
// Install GRUB in EFI mode
if (hw->efi) {
snprintf(cmd, sizeof(cmd), "/usr/sbin/grub-install"
" --target=%s-efi --efi-directory=%s", hw->arch, HW_PATH_BOOT_EFI);
" --target=%s-efi --efi-directory=%s %s", hw->arch, HW_PATH_BOOT_EFI,
(hw->efi_supported) ? "" : "--no-nvram");
r = system_chroot(output, DESTINATION_MOUNT_PATH, cmd);
if (r)

View File

@@ -60,7 +60,12 @@
struct hw {
struct udev *udev;
char arch[STRING_SIZE];
// Enabled if we should install in EFI mode
int efi;
// Enabled if this system supports EFI
int efi_supported;
};
struct hw_disk {