mirror of https://github.com/hak5/openwrt.git
parent
cc13232904
commit
52e8ee0666
|
@ -17,9 +17,14 @@ config X86_GRUB_IMAGES
|
||||||
bool "Build GRUB images (Linux x86 or x86_64 host only)"
|
bool "Build GRUB images (Linux x86 or x86_64 host only)"
|
||||||
depends TARGET_x86 && !TARGET_x86_olpc
|
depends TARGET_x86 && !TARGET_x86_olpc
|
||||||
depends TARGET_ROOTFS_EXT4FS || TARGET_ROOTFS_ISO || TARGET_ROOTFS_JFFS2 || TARGET_ROOTFS_SQUASHFS
|
depends TARGET_ROOTFS_EXT4FS || TARGET_ROOTFS_ISO || TARGET_ROOTFS_JFFS2 || TARGET_ROOTFS_SQUASHFS
|
||||||
select PACKAGE_grub
|
select PACKAGE_grub if !X86_USE_GRUB2
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
config X86_USE_GRUB2
|
||||||
|
bool "Use grub2"
|
||||||
|
depends X86_GRUB_IMAGES
|
||||||
|
select PACKAGE_grub2
|
||||||
|
|
||||||
config X86_GRUB_CONSOLE
|
config X86_GRUB_CONSOLE
|
||||||
bool "Use Console Terminal (in addition to Serial)"
|
bool "Use Console Terminal (in addition to Serial)"
|
||||||
depends X86_GRUB_IMAGES
|
depends X86_GRUB_IMAGES
|
||||||
|
|
|
@ -9,6 +9,7 @@ include $(INCLUDE_DIR)/image.mk
|
||||||
|
|
||||||
export PATH=$(TARGET_PATH):/sbin
|
export PATH=$(TARGET_PATH):/sbin
|
||||||
|
|
||||||
|
GRUB2_MODULES = at_keyboard biosdisk boot chain configfile ext2 linux ls part_msdos reboot serial vga
|
||||||
GRUB_TERMINALS =
|
GRUB_TERMINALS =
|
||||||
GRUB_SERIAL_CONFIG =
|
GRUB_SERIAL_CONFIG =
|
||||||
GRUB_TERMINAL_CONFIG =
|
GRUB_TERMINAL_CONFIG =
|
||||||
|
@ -26,7 +27,11 @@ ifneq ($(CONFIG_X86_GRUB_SERIAL),)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(GRUB_TERMINALS),)
|
ifneq ($(GRUB_TERMINALS),)
|
||||||
GRUB_TERMINAL_CONFIG := terminal --timeout=2 $(GRUB_TERMINALS)
|
ifneq ($(CONFIG_X86_USE_GRUB2),)
|
||||||
|
GRUB_TERMINAL_CONFIG := terminal_input $(GRUB_TERMINALS); terminal_output $(GRUB_TERMINALS)
|
||||||
|
else
|
||||||
|
GRUB_TERMINAL_CONFIG := terminal --timeout=2 $(GRUB_TERMINALS)
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ROOTPART:=$(call qstrip,$(CONFIG_TARGET_ROOTFS_PARTNAME))
|
ROOTPART:=$(call qstrip,$(CONFIG_TARGET_ROOTFS_PARTNAME))
|
||||||
|
@ -85,6 +90,35 @@ ifneq ($(CONFIG_X86_GRUB_IMAGES),)
|
||||||
$(KDIR)/
|
$(KDIR)/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Image/Build/grub2
|
||||||
|
# left here because the image builder doesnt need these
|
||||||
|
$(INSTALL_DIR) $(KDIR)/root.grub/boot/grub $(KDIR)/grub2
|
||||||
|
$(CP) $(KDIR)/bzImage $(KDIR)/root.grub/boot/vmlinuz
|
||||||
|
grub-mkimage \
|
||||||
|
-o $(KDIR)/grub2/core.img \
|
||||||
|
-O i386-pc \
|
||||||
|
-c ./grub-early.cfg \
|
||||||
|
$(GRUB2_MODULES)
|
||||||
|
$(CP) $(STAGING_DIR_HOST)/lib/grub/i386-pc/*.img $(KDIR)/grub2/
|
||||||
|
echo '(hd0) $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).img' > $(KDIR)/grub2/device.map
|
||||||
|
sed \
|
||||||
|
-e 's#@SERIAL_CONFIG@#$(strip $(GRUB_SERIAL_CONFIG))#g' \
|
||||||
|
-e 's#@TERMINAL_CONFIG@#$(strip $(GRUB_TERMINAL_CONFIG))#g' \
|
||||||
|
-e 's#@CMDLINE@#$(strip $(call Image/cmdline/$(1)) $(BOOTOPTS) $(GRUB_CONSOLE_CMDLINE))#g' \
|
||||||
|
-e 's#@TIMEOUT@#$(GRUB_TIMEOUT)#g' \
|
||||||
|
./grub.cfg > $(KDIR)/root.grub/boot/grub/grub.cfg
|
||||||
|
PADDING="$(CONFIG_TARGET_IMAGES_PAD)" PATH="$(TARGET_PATH)" ./gen_image_generic.sh \
|
||||||
|
$(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).img \
|
||||||
|
$(CONFIG_TARGET_KERNEL_PARTSIZE) $(KDIR)/root.grub \
|
||||||
|
$(CONFIG_TARGET_ROOTFS_PARTSIZE) $(KDIR)/root.$(1) \
|
||||||
|
256
|
||||||
|
grub-bios-setup \
|
||||||
|
--device-map="$(KDIR)/grub2/device.map" \
|
||||||
|
-d "$(KDIR)/grub2" \
|
||||||
|
-r "hd0,msdos1" \
|
||||||
|
"$(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).img"
|
||||||
|
$(call Image/Build/grub/$(1))
|
||||||
|
endef
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ROOTDELAY=10
|
ROOTDELAY=10
|
||||||
|
@ -210,7 +244,7 @@ define Image/Build
|
||||||
$(call Image/Build/$(1))
|
$(call Image/Build/$(1))
|
||||||
$(call Image/Build/bootscript,$(1))
|
$(call Image/Build/bootscript,$(1))
|
||||||
ifneq ($(1),iso)
|
ifneq ($(1),iso)
|
||||||
$(call Image/Build/grub,$(1))
|
$(call Image/Build/$(if $(CONFIG_X86_USE_GRUB2),grub2,grub),$(1))
|
||||||
$(call Image/Build/vdi,$(1))
|
$(call Image/Build/vdi,$(1))
|
||||||
$(call Image/Build/vmdk,$(1))
|
$(call Image/Build/vmdk,$(1))
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
configfile (hd0,msdos1)/boot/grub/grub.cfg
|
|
@ -0,0 +1,13 @@
|
||||||
|
@SERIAL_CONFIG@
|
||||||
|
@TERMINAL_CONFIG@
|
||||||
|
|
||||||
|
set default="0"
|
||||||
|
set timeout="@TIMEOUT@"
|
||||||
|
set root='(hd0,msdos1)'
|
||||||
|
|
||||||
|
menuentry "OpenWrt" {
|
||||||
|
linux /boot/vmlinuz @CMDLINE@ noinitrd reboot=bios
|
||||||
|
}
|
||||||
|
menuentry "OpenWrt (failsafe)" {
|
||||||
|
linux /boot/vmlinuz failsafe=true @CMDLINE@ noinitrd reboot=bios
|
||||||
|
}
|
Loading…
Reference in New Issue