mirror of
https://github.com/PartialVolume/shredos.x86_64.git
synced 2026-02-20 05:32:11 +00:00
Merge pull request #448 from PartialVolume/boot-i686-using-64bit-EFI
Allow shredos i686 builds to boot on 64bit EFI only system that don't have legacy boot options.
This commit is contained in:
BIN
board/shredos/bootx64.efi
Normal file
BIN
board/shredos/bootx64.efi
Normal file
Binary file not shown.
@@ -1 +1 @@
|
||||
2025.11_28_i686_26ece7a-commit-dev
|
||||
2025.11_28_x86-64_26ece7a-commit-dev
|
||||
|
||||
@@ -6,6 +6,7 @@ image boot.vfat {
|
||||
file boot/version.txt { image = 'version.txt' }
|
||||
file boot/shredos.id { image = '/dev/null' }
|
||||
file EFI/BOOT/bootia32.efi { image = 'bootia32.efi' }
|
||||
file EFI/BOOT/bootx64.efi { image = 'board/shredos/bootx64.efi'}
|
||||
file EFI/BOOT/grub.cfg { image = 'grub.cfg' }
|
||||
file shredos.ico { image = 'shredos.ico' }
|
||||
file README.txt { image = 'README.txt' }
|
||||
|
||||
@@ -141,12 +141,25 @@ ROOTFS_ISO9660_GRUB2_CONFIG_PATH = $(ROOTFS_ISO9660_TMP_TARGET_DIR)/boot/grub/gr
|
||||
ROOTFS_ISO9660_GRUB2_EFI_CONFIG_PATH = $(ROOTFS_ISO9660_TMP_TARGET_DIR)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/grub.cfg
|
||||
|
||||
define ROOTFS_ISO9660_INSTALL_GRUB2_EFI
|
||||
# If 32bit build also copy the bootx64.efi from board/shredos/ so 32bit shredos will boot on a 64 EFI system
|
||||
if [ "$(BR2_i386)" = "y" ]; then \
|
||||
$(INSTALL) -D -m 0644 $(TOPDIR)/board/shredos/bootx64.efi $(BINARIES_DIR)/efi-part/EFI/BOOT/bootx64.efi; \
|
||||
fi
|
||||
# Create file to better find ISO9660 filesystem
|
||||
$(INSTALL) -D -m 0644 /dev/null \
|
||||
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/$(ROOTFS_ISO9660_GRUB2_EFI_IDENT_FILE)
|
||||
# Copy EFI bootloader also to ISO9660 filesystem
|
||||
$(INSTALL) -D -m 0644 $(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/$(ROOTFS_ISO9660_EFI_NAME) \
|
||||
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/$(ROOTFS_ISO9660_EFI_NAME)
|
||||
# If 32 bit build we also want the 64 bit EFI installed
|
||||
if [ "$(BR2_i386)" = "y" ]; then \
|
||||
$(INSTALL) -D -m 0644 $(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/$(ROOTFS_ISO9660_EFI_NOTNAME) \
|
||||
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/$(ROOTFS_ISO9660_EFI_NOTNAME)
|
||||
fi
|
||||
# If 64bit build copy the bootx64.efi to board/shredos/ as this will be used when building 32bit build
|
||||
if [ "$(BR2_x86_64)" = "y" ]; then \
|
||||
$(INSTALL) -D -m 0644 $(BINARIES_DIR)/efi-part/EFI/BOOT/bootx64.efi $(TOPDIR)/board/shredos/bootx64.efi; \
|
||||
fi
|
||||
# Create EFI FAT partition
|
||||
$(RM) -rf $(ROOTFS_ISO9660_EFI_PARTITION_PATH)
|
||||
mkdir -p $(dir $(ROOTFS_ISO9660_EFI_PARTITION_PATH))
|
||||
@@ -156,9 +169,6 @@ define ROOTFS_ISO9660_INSTALL_GRUB2_EFI
|
||||
$(ROOTFS_ISO9660_FIX_TIME) $(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/*
|
||||
$(HOST_DIR)/bin/mcopy -p -m -i $(ROOTFS_ISO9660_EFI_PARTITION_PATH) -s \
|
||||
$(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/* ::/
|
||||
# Delete the EFI bootloader that is NOT for the platform we're building for
|
||||
$(HOST_DIR)/bin/mdel -i $(ROOTFS_ISO9660_EFI_PARTITION_PATH) \
|
||||
::$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/$(ROOTFS_ISO9660_EFI_NOTNAME) || true
|
||||
# Overwrite generic EFI configuration with our EFI configuration
|
||||
$(HOST_DIR)/bin/mcopy -n -o -p -m -i $(ROOTFS_ISO9660_EFI_PARTITION_PATH) \
|
||||
$(ROOTFS_ISO9660_GRUB2_EFI_CONFIG_PATH) ::$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/grub.cfg
|
||||
@@ -248,12 +258,25 @@ define ROOTFS_ISO9660_INSTALL_ISOLINUX_CONFIG
|
||||
endef
|
||||
|
||||
define ROOTFS_ISO9660_INSTALL_GRUB2_EFI
|
||||
# If 32bit build also copy the bootx64.efi from board/shredos/ so 32bit shredos will boot on a 64 EFI system
|
||||
if [ "$(BR2_i386)" = "y" ]; then \
|
||||
$(INSTALL) -D -m 0644 $(TOPDIR)/board/shredos/bootx64.efi $(BINARIES_DIR)/efi-part/EFI/BOOT/bootx64.efi; \
|
||||
fi
|
||||
# Create file to better find ISO9660 filesystem
|
||||
$(INSTALL) -D -m 0644 /dev/null \
|
||||
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/$(ROOTFS_ISO9660_GRUB2_EFI_IDENT_FILE)
|
||||
# Copy EFI bootloader also to ISO9660 filesystem
|
||||
$(INSTALL) -D -m 0644 $(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/$(ROOTFS_ISO9660_EFI_NAME) \
|
||||
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/$(ROOTFS_ISO9660_EFI_NAME)
|
||||
# If 32 bit build we also want the 64 bit EFI installed
|
||||
if [ "$(BR2_i386)" = "y" ]; then \
|
||||
$(INSTALL) -D -m 0644 $(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/$(ROOTFS_ISO9660_EFI_NOTNAME) \
|
||||
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/$(ROOTFS_ISO9660_EFI_NOTNAME)
|
||||
fi
|
||||
# If 64bit build copy the bootx64.efi to board/shredos/ as this will be used when building 32bit build
|
||||
if [ "$(BR2_x86_64)" = "y" ]; then \
|
||||
$(INSTALL) -D -m 0644 $(BINARIES_DIR)/efi-part/EFI/BOOT/bootx64.efi $(TOPDIR)/board/shredos/bootx64.efi; \
|
||||
fi
|
||||
# Create EFI FAT partition
|
||||
$(RM) -rf $(ROOTFS_ISO9660_EFI_PARTITION_PATH)
|
||||
mkdir -p $(dir $(ROOTFS_ISO9660_EFI_PARTITION_PATH))
|
||||
@@ -263,9 +286,6 @@ define ROOTFS_ISO9660_INSTALL_GRUB2_EFI
|
||||
$(ROOTFS_ISO9660_FIX_TIME) $(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/*
|
||||
$(HOST_DIR)/bin/mcopy -p -m -i $(ROOTFS_ISO9660_EFI_PARTITION_PATH) -s \
|
||||
$(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/* ::/
|
||||
# Delete the EFI bootloader that is NOT for the platform we're building for
|
||||
$(HOST_DIR)/bin/mdel -i $(ROOTFS_ISO9660_EFI_PARTITION_PATH) \
|
||||
::$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/$(ROOTFS_ISO9660_EFI_NOTNAME) || true
|
||||
# Overwrite generic EFI configuration with our EFI configuration
|
||||
$(HOST_DIR)/bin/mcopy -n -o -p -m -i $(ROOTFS_ISO9660_EFI_PARTITION_PATH) \
|
||||
$(ROOTFS_ISO9660_GRUB2_EFI_CONFIG_PATH) ::$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/grub.cfg
|
||||
|
||||
Reference in New Issue
Block a user