mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-24 15:56:49 +00:00
258f070d1a
The previous rework of x86 image creation done in commitcb007a7bf6
("x86: switch image generation to new code") removed images of separate squashfs and ext4 filesystems which are handy for example in testing under QEMU. So this patch adds back creation of those missing rootfs images for ext4 and squashfs based filesystems. Fixes:cb007a7bf6
("x86: switch image generation to new code") Signed-off-by: Paul Spooren <mail@aparcar.org> [commit subject and description tweaks] Signed-off-by: Petr Štetiar <ynezz@true.cz>
143 lines
3.9 KiB
Makefile
143 lines
3.9 KiB
Makefile
#
|
|
# Copyright (C) 2006-2020 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
include $(TOPDIR)/rules.mk
|
|
include $(INCLUDE_DIR)/image.mk
|
|
|
|
GRUB2_VARIANT =
|
|
GRUB_TERMINALS =
|
|
GRUB_SERIAL_CONFIG =
|
|
GRUB_TERMINAL_CONFIG =
|
|
GRUB_CONSOLE_CMDLINE =
|
|
|
|
ifneq ($(strip $(foreach subtarget,$(USE_ATKBD),$(CONFIG_TARGET_x86_$(subtarget)))),)
|
|
GRUB2_VARIANT := generic
|
|
else
|
|
GRUB2_VARIANT := legacy
|
|
endif
|
|
|
|
ifneq ($(CONFIG_GRUB_CONSOLE),)
|
|
GRUB_CONSOLE_CMDLINE += console=tty0
|
|
GRUB_TERMINALS += console
|
|
endif
|
|
|
|
GRUB_SERIAL:=$(call qstrip,$(CONFIG_GRUB_SERIAL))
|
|
|
|
ifneq ($(GRUB_SERIAL),)
|
|
GRUB_CONSOLE_CMDLINE += console=$(GRUB_SERIAL),$(CONFIG_GRUB_BAUDRATE)n8$(if $(CONFIG_GRUB_FLOWCONTROL),r,)
|
|
GRUB_SERIAL_CONFIG := serial --unit=0 --speed=$(CONFIG_GRUB_BAUDRATE) --word=8 --parity=no --stop=1 --rtscts=$(if $(CONFIG_GRUB_FLOWCONTROL),on,off)
|
|
GRUB_TERMINALS += serial
|
|
endif
|
|
|
|
ifneq ($(GRUB_TERMINALS),)
|
|
GRUB_TERMINAL_CONFIG := terminal_input $(GRUB_TERMINALS); terminal_output $(GRUB_TERMINALS)
|
|
endif
|
|
|
|
ROOTPART:=$(call qstrip,$(CONFIG_TARGET_ROOTFS_PARTNAME))
|
|
ROOTPART:=$(if $(ROOTPART),$(ROOTPART),PARTUUID=$(IMG_PART_SIGNATURE)-02)
|
|
|
|
GRUB_TIMEOUT:=$(call qstrip,$(CONFIG_GRUB_TIMEOUT))
|
|
GRUB_TITLE:=$(call qstrip,$(CONFIG_GRUB_TITLE))
|
|
|
|
BOOTOPTS:=$(call qstrip,$(CONFIG_GRUB_BOOTOPTS))
|
|
|
|
define Build/combined
|
|
$(CP) $(KDIR)/$(KERNEL_NAME) $@.boot/boot/vmlinuz
|
|
-$(CP) $(STAGING_DIR_ROOT)/boot/. $@.boot/boot/
|
|
PADDING="1" SIGNATURE="$(IMG_PART_SIGNATURE)" $(SCRIPT_DIR)/gen_image_generic.sh \
|
|
$@ \
|
|
$(CONFIG_TARGET_KERNEL_PARTSIZE) $@.boot \
|
|
$(CONFIG_TARGET_ROOTFS_PARTSIZE) $(IMAGE_ROOTFS) \
|
|
256
|
|
endef
|
|
|
|
define Build/grub-config
|
|
rm -fR $@.boot
|
|
$(INSTALL_DIR) $@.boot/boot/grub
|
|
sed \
|
|
-e 's#@SERIAL_CONFIG@#$(strip $(GRUB_SERIAL_CONFIG))#g' \
|
|
-e 's#@TERMINAL_CONFIG@#$(strip $(GRUB_TERMINAL_CONFIG))#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-$(1).cfg > $@.boot/boot/grub/grub.cfg
|
|
endef
|
|
|
|
define Build/grub-install
|
|
rm -fR $@.grub2
|
|
$(INSTALL_DIR) $@.grub2
|
|
$(CP) $(STAGING_DIR_HOST)/lib/grub/i386-pc/*.img \
|
|
$(STAGING_DIR_HOST)/lib/grub/grub2-$(GRUB2_VARIANT)/core.img \
|
|
$@.grub2/
|
|
echo '(hd0) $@' > $@.grub2/device.map
|
|
$(STAGING_DIR_HOST)/bin/grub-bios-setup \
|
|
-m "$@.grub2/device.map" \
|
|
-d "$@.grub2" \
|
|
-r "hd0,msdos1" \
|
|
$@
|
|
endef
|
|
|
|
define Build/iso
|
|
$(CP) $(KDIR)/$(KERNEL_NAME) $@.boot/boot/vmlinuz
|
|
cat \
|
|
$(STAGING_DIR_HOST)/lib/grub/i386-pc/cdboot.img \
|
|
$(STAGING_DIR_HOST)/lib/grub/grub2-iso/eltorito.img \
|
|
> $@.boot/boot/grub/eltorito.img
|
|
-$(CP) $(STAGING_DIR_ROOT)/boot/. $@.boot/boot/
|
|
mkisofs -R -b boot/grub/eltorito.img -no-emul-boot -boot-info-table \
|
|
-o $@ $@.boot $(TARGET_DIR)
|
|
endef
|
|
|
|
DEVICE_VARS += GRUB2_VARIANT
|
|
define Device/Default
|
|
ARTIFACT/image.iso := grub-config iso | iso
|
|
IMAGE/combined.img := grub-config pc | combined | grub-install
|
|
IMAGE/combined.img.gz := grub-config pc | combined | grub-install | gzip
|
|
IMAGE/combined.vdi := grub-config pc | combined | grub-install | qemu-image vdi
|
|
IMAGE/combined.vmdk := grub-config pc | combined | grub-install | qemu-image vmdk
|
|
IMAGE/rootfs.img := append-rootfs
|
|
IMAGE/rootfs.img.gz := append-rootfs | gzip
|
|
ifeq ($(CONFIG_TARGET_IMAGES_GZIP),y)
|
|
IMAGES := combined.img.gz rootfs.img.gz
|
|
else
|
|
IMAGES := combined.img rootfs.img
|
|
endif
|
|
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))
|
|
|
|
ifeq ($(SUBTARGET),64)
|
|
include 64.mk
|
|
endif
|
|
|
|
ifeq ($(SUBTARGET),generic)
|
|
include generic.mk
|
|
endif
|
|
|
|
ifeq ($(SUBTARGET),geode)
|
|
include geode.mk
|
|
endif
|
|
|
|
ifeq ($(SUBTARGET),legacy)
|
|
include legacy.mk
|
|
endif
|
|
|
|
$(eval $(call BuildImage))
|
|
|