Previously, grub-mkimage embeds full-featured grub.cfg inside core.img during efi image generation phase (target/linux/install).
This causes grub to not passing kernel command line to the kernel, which causes kernel panic when the generated gpt image is booted on bios mode because the kernel doesn't find the root partition. Fixing the problem involves using minimal grub-early.cfg to embed inside grub's core.img to load the full-featured grub.cfg later. grub-early.cfg contains one configuration line: configfile (hd0,gpt1)/boot/grub/grub.cfg With this change, the generated gpt image should be bootable on both bios and UEFI based systems. Signed-off-by: Alif M. Ahmad <alive4e...@live.com> --- Notes: This patch is based on Jow's staging repository instead of OpenWrt master branch. Hopefully, this would allow UEFI image generation for x86 targets, i.e. to get changes on Jow's staging repository merged into OpenWrt master branch target/linux/x86/image/Makefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/target/linux/x86/image/Makefile b/target/linux/x86/image/Makefile index d5786fb2ad..c8dd94dc78 100644 --- a/target/linux/x86/image/Makefile +++ b/target/linux/x86/image/Makefile @@ -86,13 +86,17 @@ ifneq ($(CONFIG_GRUB_IMAGES)$(CONFIG_EFI_IMAGES),) -e 's#@TIMEOUT@#$(GRUB_TIMEOUT)#g' \ -e 's#set root.*#search --file /boot/grub/$(SIGNATURE).cfg --set=root#g' \ ./grub.cfg > $(KDIR)/root.grub/boot/grub/grub.cfg + sed \ + -e 's/(hd0,msdos1)/(hd0,gpt1)/' ./grub-early.cfg > \ + $(KDIR)/root.grub/boot/grub/grub-early.cfg + $(CP) $(KDIR)/root.grub/boot/grub/grub.cfg $(KDIR)/root.grub/boot/grub/$(SIGNATURE).cfg grub-mkimage \ -d $(STAGING_DIR_HOST)/lib/grub/i386-pc \ -o $(KDIR)/grub2/core.img \ -O i386-pc \ -p '(hd0,gpt1)/boot/grub' \ - -c $(KDIR)/root.grub/boot/grub/grub.cfg \ + -c $(KDIR)/root.grub/boot/grub/grub-early.cfg \ $(GRUB2_MODULES_LEGACY) $(CP) $(STAGING_DIR_HOST)/lib/grub/i386-pc/*.img $(KDIR)/grub2/ -- 2.16.2 _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel