|
@@ -1,5 +1,5 @@
|
|
|
-#
|
|
|
-# Copyright (C) 2006-2012 OpenWrt.org
|
|
|
+#
|
|
|
+# Copyright (C) 2006-2020 OpenWrt.org
|
|
|
#
|
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
|
# See /LICENSE for more information.
|
|
@@ -7,16 +7,12 @@
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
include $(INCLUDE_DIR)/image.mk
|
|
|
|
|
|
-export PATH=$(TARGET_PATH):/sbin
|
|
|
-
|
|
|
GRUB2_VARIANT =
|
|
|
GRUB_TERMINALS =
|
|
|
GRUB_SERIAL_CONFIG =
|
|
|
GRUB_TERMINAL_CONFIG =
|
|
|
GRUB_CONSOLE_CMDLINE =
|
|
|
|
|
|
-USE_ATKBD = generic 64
|
|
|
-
|
|
|
ifneq ($(strip $(foreach subtarget,$(USE_ATKBD),$(CONFIG_TARGET_x86_$(subtarget)))),)
|
|
|
GRUB2_VARIANT := generic
|
|
|
else
|
|
@@ -46,125 +42,100 @@ ROOTPART:=$(if $(ROOTPART),$(ROOTPART),PARTUUID=$(IMG_PART_SIGNATURE)-02)
|
|
|
GRUB_TIMEOUT:=$(call qstrip,$(CONFIG_GRUB_TIMEOUT))
|
|
|
GRUB_TITLE:=$(call qstrip,$(CONFIG_GRUB_TITLE))
|
|
|
|
|
|
-ifneq ($(CONFIG_GRUB_IMAGES),)
|
|
|
-
|
|
|
- BOOTOPTS:=$(call qstrip,$(CONFIG_GRUB_BOOTOPTS))
|
|
|
-
|
|
|
- define Image/cmdline/ext4
|
|
|
- root=$(ROOTPART) rootfstype=ext4 rootwait
|
|
|
- endef
|
|
|
+BOOTOPTS:=$(call qstrip,$(CONFIG_GRUB_BOOTOPTS))
|
|
|
|
|
|
- define Image/cmdline/squashfs
|
|
|
- root=$(ROOTPART) rootfstype=squashfs rootwait
|
|
|
- endef
|
|
|
+define Build/combined
|
|
|
+ $(CP) $(KDIR)/$(KERNEL_NAME) [email protected]/boot/vmlinuz
|
|
|
+ -$(CP) $(STAGING_DIR_ROOT)/boot/. [email protected]/boot/
|
|
|
+ PADDING="$(CONFIG_TARGET_IMAGES_PAD)" SIGNATURE="$(IMG_PART_SIGNATURE)" $(SCRIPT_DIR)/gen_image_generic.sh \
|
|
|
+ $@ \
|
|
|
+ $(CONFIG_TARGET_KERNEL_PARTSIZE) [email protected] \
|
|
|
+ $(CONFIG_TARGET_ROOTFS_PARTSIZE) $(IMAGE_ROOTFS) \
|
|
|
+ 256
|
|
|
+endef
|
|
|
|
|
|
- define Image/Build/grub2
|
|
|
- # left here because the image builder doesnt need these
|
|
|
- rm -fR $(KDIR)/root.grub $(KDIR)/grub2
|
|
|
- $(INSTALL_DIR) $(KDIR)/root.grub/boot/grub $(KDIR)/grub2
|
|
|
- $(CP) $(KDIR)/bzImage $(KDIR)/root.grub/boot/vmlinuz
|
|
|
- $(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
|
|
|
+define Build/grub-config
|
|
|
+ rm -fR [email protected]
|
|
|
+ $(INSTALL_DIR) [email protected]/boot/grub
|
|
|
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#@ROOTPART@#root=$(ROOTPART) rootwait#g' \
|
|
|
+ -e 's#@CMDLINE@#$(BOOTOPTS) $(GRUB_CONSOLE_CMDLINE)#g' \
|
|
|
-e 's#@TIMEOUT@#$(GRUB_TIMEOUT)#g' \
|
|
|
-e 's#@TITLE@#$(GRUB_TITLE)#g' \
|
|
|
- ./grub.cfg > $(KDIR)/root.grub/boot/grub/grub.cfg
|
|
|
- -$(CP) $(STAGING_DIR_ROOT)/boot/. $(KDIR)/root.grub/boot/
|
|
|
- grub-bios-setup -V | cut -d' ' -f3 > $(KDIR)/root.grub/boot/grub/version
|
|
|
- PADDING="1" SIGNATURE="$(IMG_PART_SIGNATURE)" PATH="$(TARGET_PATH)" $(SCRIPT_DIR)/gen_image_generic.sh \
|
|
|
- $(BIN_DIR)/$(IMG_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)/root.grub/boot/grub" \
|
|
|
+ ./grub-$(1).cfg > [email protected]/boot/grub/grub.cfg
|
|
|
+endef
|
|
|
+
|
|
|
+define Build/grub-install
|
|
|
+ rm -fR [email protected]
|
|
|
+ $(INSTALL_DIR) [email protected]
|
|
|
+ $(CP) $(STAGING_DIR_HOST)/lib/grub/i386-pc/*.img \
|
|
|
+ $(STAGING_DIR_HOST)/lib/grub/grub2-$(GRUB2_VARIANT)/core.img \
|
|
|
+ [email protected]/
|
|
|
+ echo '(hd0) $@' > [email protected]/device.map
|
|
|
+ $(STAGING_DIR_HOST)/bin/grub-bios-setup \
|
|
|
+ -m "[email protected]/device.map" \
|
|
|
+ -d "[email protected]" \
|
|
|
-r "hd0,msdos1" \
|
|
|
- "$(BIN_DIR)/$(IMG_COMBINED)-$(1).img"
|
|
|
- endef
|
|
|
-endif
|
|
|
+ $@
|
|
|
+endef
|
|
|
|
|
|
-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
|
|
|
+define Build/iso
|
|
|
+ $(CP) $(KDIR)/$(KERNEL_NAME) [email protected]/boot/vmlinuz
|
|
|
+ cat \
|
|
|
+ $(STAGING_DIR_HOST)/lib/grub/i386-pc/cdboot.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' \
|
|
|
- -e 's#@TERMINAL_CONFIG@#$(strip $(GRUB_TERMINAL_CONFIG))#g' \
|
|
|
- -e 's#@CMDLINE@#root=/dev/sr0 rootfstype=iso9660 rootwait $(strip $(call Image/cmdline/$(1)) $(BOOTOPTS) $(GRUB_CONSOLE_CMDLINE))#g' \
|
|
|
- -e 's#@TIMEOUT@#$(GRUB_TIMEOUT)#g' \
|
|
|
- -e 's#@TITLE@#$(GRUB_TITLE)#g' \
|
|
|
- ./grub-iso.cfg > $(KDIR)/root.grub/boot/grub/grub.cfg
|
|
|
- -$(CP) $(STAGING_DIR_ROOT)/boot/. $(KDIR)/root.grub/boot/
|
|
|
+ > [email protected]/boot/grub/eltorito.img
|
|
|
+ -$(CP) $(STAGING_DIR_ROOT)/boot/. [email protected]/boot/
|
|
|
mkisofs -R -b boot/grub/eltorito.img -no-emul-boot -boot-info-table \
|
|
|
- -o $(KDIR)/root.iso $(KDIR)/root.grub $(TARGET_DIR)
|
|
|
+ -o $@ [email protected] $(TARGET_DIR)
|
|
|
endef
|
|
|
|
|
|
-ifneq ($(CONFIG_VDI_IMAGES),)
|
|
|
- define Image/Build/vdi
|
|
|
- rm $(BIN_DIR)/$(IMG_COMBINED)-$(1).vdi || true
|
|
|
- $(STAGING_DIR_HOST)/bin/qemu-img convert -f raw -O vdi \
|
|
|
- $(BIN_DIR)/$(IMG_COMBINED)-$(1).img \
|
|
|
- $(BIN_DIR)/$(IMG_COMBINED)-$(1).vdi
|
|
|
- endef
|
|
|
-endif
|
|
|
+define Build/vdi
|
|
|
+ qemu-img convert -f raw -O vdi $@ [email protected]
|
|
|
+ @mv [email protected] $@
|
|
|
+endef
|
|
|
|
|
|
-ifneq ($(CONFIG_VMDK_IMAGES),)
|
|
|
- define Image/Build/vmdk
|
|
|
- rm $(BIN_DIR)/$(IMG_COMBINED)-$(1).vmdk || true
|
|
|
- $(STAGING_DIR_HOST)/bin/qemu-img convert -f raw -O vmdk \
|
|
|
- $(BIN_DIR)/$(IMG_COMBINED)-$(1).img \
|
|
|
- $(BIN_DIR)/$(IMG_COMBINED)-$(1).vmdk
|
|
|
- #build the ESXI VMDK with
|
|
|
- rm $(BIN_DIR)/$(IMG_COMBINED)-$(1)-esxi.vmdk || true
|
|
|
- rm $(BIN_DIR)/$(IMG_COMBINED)-$(1)-esxi-flat.vmdk || true
|
|
|
- $(STAGING_DIR_HOST)/bin/qemu-img convert -f raw -O vmdk -o adapter_type=lsilogic,subformat=monolithicFlat \
|
|
|
- $(BIN_DIR)/$(IMG_COMBINED)-$(1).img \
|
|
|
- $(BIN_DIR)/$(IMG_COMBINED)-$(1)-esxi.vmdk
|
|
|
- endef
|
|
|
-endif
|
|
|
+define Build/vmdk
|
|
|
+ qemu-img convert -f raw -O vmdk $@ [email protected]
|
|
|
+ @mv [email protected] $@
|
|
|
+endef
|
|
|
|
|
|
-define Image/Build/gzip
|
|
|
- gzip -f9n $(BIN_DIR)/$(IMG_COMBINED)-$(1).img
|
|
|
- gzip -f9n $(BIN_DIR)/$(IMG_ROOTFS)-$(1).img
|
|
|
+DEVICE_VARS += GRUB2_VARIANT
|
|
|
+define Device/Default
|
|
|
+ ARTIFACT/image.iso := grub-config iso | iso
|
|
|
+ IMAGES := combined.img.gz
|
|
|
+ IMAGE/combined.img.gz := append-rootfs | pad-extra 128k | grub-config pc | combined | grub-install | gzip
|
|
|
+ IMAGE/combined.vdi := append-rootfs | pad-extra 128k | grub-config pc | combined | grub-install | vdi
|
|
|
+ IMAGE/combined.vmdk := append-rootfs | pad-extra 128k | grub-config pc | combined | grub-install | vmdk
|
|
|
+ KERNEL := kernel-bin
|
|
|
+ KERNEL_INSTALL := 1
|
|
|
+ KERNEL_NAME := bzImage
|
|
|
+ ifeq ($(CONFIG_ISO_IMAGES),y)
|
|
|
+ ARTIFACTS := image.iso
|
|
|
+ endif
|
|
|
+ ifeq ($(CONFIG_VDI_IMAGES),y)
|
|
|
+ IMAGES += combined.vdi
|
|
|
+ endif
|
|
|
+ ifeq ($(CONFIG_VMDK_IMAGES),y)
|
|
|
+ IMAGES += combined.vmdk
|
|
|
+ endif
|
|
|
endef
|
|
|
|
|
|
$(eval $(call Image/gzip-ext4-padded-squashfs))
|
|
|
|
|
|
-define Image/BuildKernel
|
|
|
- $(CP) $(KDIR)/bzImage $(BIN_DIR)/$(IMG_PREFIX)-vmlinuz
|
|
|
-endef
|
|
|
-
|
|
|
-define Image/Prepare
|
|
|
- $(call Image/Prepare/grub2)
|
|
|
-endef
|
|
|
+ifeq ($(SUBTARGET),64)
|
|
|
+ include 64.mk
|
|
|
+endif
|
|
|
|
|
|
-define Image/Build/Initramfs
|
|
|
- $(CP) $(KDIR)/bzImage-initramfs $(BIN_DIR)/$(IMG_PREFIX)-ramfs.bzImage
|
|
|
-endef
|
|
|
+ifeq ($(SUBTARGET),generic)
|
|
|
+ include generic.mk
|
|
|
+endif
|
|
|
|
|
|
-define Image/Build
|
|
|
- $(call Image/Build/$(1))
|
|
|
- ifneq ($(1),iso)
|
|
|
- $(call Image/Build/grub2,$(1))
|
|
|
- $(call Image/Build/vdi,$(1))
|
|
|
- $(call Image/Build/vmdk,$(1))
|
|
|
- $(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_ROOTFS)-$(1).img
|
|
|
- else
|
|
|
- $(CP) $(KDIR)/root.iso $(BIN_DIR)/$(IMG_PREFIX).iso
|
|
|
- endif
|
|
|
- $(CP) $(KDIR)/bzImage $(BIN_DIR)/$(IMG_PREFIX)-vmlinuz
|
|
|
- $(call Image/Build/gzip/$(1))
|
|
|
-ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y)
|
|
|
- $(call Image/Build/Initramfs)
|
|
|
+ifeq ($(SUBTARGET),legacy)
|
|
|
+ include legacy.mk
|
|
|
endif
|
|
|
-endef
|
|
|
|
|
|
$(eval $(call BuildImage))
|
|
|
+
|