From 5a5df62d95f52892c9a24fe1216796a2a903e544 Mon Sep 17 00:00:00 2001 From: Paul Spooren Date: Fri, 20 Mar 2020 00:10:54 -1000 Subject: [PATCH] x86/grub2: move grub2 image creation to package Let the grub2 package take care of creating installable grub2 images, this will allow creating grub2 images without first calling x86 image generation recipe. Also as side effect, since those images are now shared, it'll reduce the number of calling grub-mkimage. Signed-off-by: Tomasz Maciej Nowak [rebase, adjusted commit title] Signed-off-by: Paul Spooren --- package/boot/grub2/Makefile | 31 +++++++++++++++++++ .../boot/grub2/files}/grub-early.cfg | 0 target/linux/x86/image/Makefile | 30 +++++------------- 3 files changed, 39 insertions(+), 22 deletions(-) rename {target/linux/x86/image => package/boot/grub2/files}/grub-early.cfg (100%) diff --git a/package/boot/grub2/Makefile b/package/boot/grub2/Makefile index b26ef64ca41..980a6e372a3 100644 --- a/package/boot/grub2/Makefile +++ b/package/boot/grub2/Makefile @@ -82,6 +82,37 @@ define Host/Configure $(Host/Configure/Default) endef +define Host/Install + $(call Host/Install/Default) + + $(INSTALL_DIR) $(STAGING_DIR_HOST)/lib/grub/grub2-generic + $(STAGING_DIR_HOST)/bin/grub-mkimage \ + -d $(STAGING_DIR_HOST)/lib/grub/i386-pc \ + -p /boot/grub \ + -O i386-pc \ + -c ./files/grub-early.cfg \ + -o $(STAGING_DIR_HOST)/lib/grub/grub2-generic/core.img \ + at_keyboard biosdisk boot chain configfile ext2 linux ls part_msdos reboot serial vga + + $(INSTALL_DIR) $(STAGING_DIR_HOST)/lib/grub/grub2-iso + $(STAGING_DIR_HOST)/bin/grub-mkimage \ + -d $(STAGING_DIR_HOST)/lib/grub/i386-pc \ + -p /boot/grub \ + -O i386-pc \ + -c ./files/grub-early.cfg \ + -o $(STAGING_DIR_HOST)/lib/grub/grub2-iso/eltorito.img \ + at_keyboard biosdisk boot chain configfile iso9660 linux ls part_msdos reboot serial vga + + $(INSTALL_DIR) $(STAGING_DIR_HOST)/lib/grub/grub2-legacy + $(STAGING_DIR_HOST)/bin/grub-mkimage \ + -d $(STAGING_DIR_HOST)/lib/grub/i386-pc \ + -p /boot/grub \ + -O i386-pc \ + -c ./files/grub-early.cfg \ + -o $(STAGING_DIR_HOST)/lib/grub/grub2-legacy/core.img \ + biosdisk boot chain configfile ext2 linux ls part_msdos reboot serial vga +endef + define Package/grub2/install $(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_BIN) $(PKG_BUILD_DIR)/grub-bios-setup $(1)/usr/sbin/ diff --git a/target/linux/x86/image/grub-early.cfg b/package/boot/grub2/files/grub-early.cfg similarity index 100% rename from target/linux/x86/image/grub-early.cfg rename to package/boot/grub2/files/grub-early.cfg diff --git a/target/linux/x86/image/Makefile b/target/linux/x86/image/Makefile index 373f2396b7a..4e090bcf077 100644 --- a/target/linux/x86/image/Makefile +++ b/target/linux/x86/image/Makefile @@ -9,8 +9,7 @@ include $(INCLUDE_DIR)/image.mk export PATH=$(TARGET_PATH):/sbin -GRUB2_MODULES = biosdisk boot chain configfile ext2 linux ls part_msdos reboot serial test vga -GRUB2_MODULES_ISO = biosdisk boot chain configfile iso9660 linux ls part_msdos reboot serial test vga +GRUB2_VARIANT = GRUB_TERMINALS = GRUB_SERIAL_CONFIG = GRUB_TERMINAL_CONFIG = @@ -19,8 +18,9 @@ GRUB_CONSOLE_CMDLINE = USE_ATKBD = generic 64 ifneq ($(strip $(foreach subtarget,$(USE_ATKBD),$(CONFIG_TARGET_x86_$(subtarget)))),) - GRUB2_MODULES += at_keyboard - GRUB2_MODULES_ISO += at_keyboard + GRUB2_VARIANT := generic +else + GRUB2_VARIANT := legacy endif ifneq ($(CONFIG_GRUB_CONSOLE),) @@ -63,14 +63,9 @@ ifneq ($(CONFIG_GRUB_IMAGES),) rm -fR $(KDIR)/root.grub $(KDIR)/grub2 $(INSTALL_DIR) $(KDIR)/root.grub/boot/grub $(KDIR)/grub2 $(CP) $(KDIR)/bzImage $(KDIR)/root.grub/boot/vmlinuz - grub-mkimage \ - -p /boot/grub \ - -d $(STAGING_DIR_HOST)/lib/grub/i386-pc \ - -o $(KDIR)/root.grub/boot/grub/core.img \ - -O i386-pc \ - -c ./grub-early.cfg \ - $(GRUB2_MODULES) - $(CP) $(STAGING_DIR_HOST)/lib/grub/i386-pc/*.img $(KDIR)/root.grub/boot/grub/ + $(CP) $(STAGING_DIR_HOST)/lib/grub/i386-pc/*.img \ + $(STAGING_DIR_HOST)/lib/grub/grub2-$(strip $(GRUB2_VARIANT))/core.img \ + $(KDIR)/grub2/ echo '(hd0) $(BIN_DIR)/$(IMG_COMBINED)-$(1).img' > $(KDIR)/grub2/device.map sed \ -e 's#@SERIAL_CONFIG@#$(strip $(GRUB_SERIAL_CONFIG))#g' \ @@ -98,16 +93,7 @@ define Image/Build/iso rm -fR $(KDIR)/root.grub $(KDIR)/grub2 $(INSTALL_DIR) $(KDIR)/root.grub/boot/grub $(KDIR)/grub2 $(CP) $(KDIR)/bzImage $(KDIR)/root.grub/boot/vmlinuz - grub-mkimage \ - -p /boot/grub \ - -d $(STAGING_DIR_HOST)/lib/grub/i386-pc \ - -o $(KDIR)/grub2/eltorito.img \ - -O i386-pc \ - -c ./grub-early.cfg \ - $(GRUB2_MODULES_ISO) - cat \ - $(STAGING_DIR_HOST)/lib/grub/i386-pc/cdboot.img \ - $(KDIR)/grub2/eltorito.img \ + $(STAGING_DIR_HOST)/lib/grub/grub2-iso/eltorito.img \ > $(KDIR)/root.grub/boot/grub/eltorito.img sed \ -e 's#@SERIAL_CONFIG@#$(strip $(GRUB_SERIAL_CONFIG))#g' \