mvebu: add ClearFog .tar.gz bundle
authorJo-Philipp Wich <jo@mein.io>
Thu, 11 Aug 2016 15:20:54 +0000 (17:20 +0200)
committerJo-Philipp Wich <jo@mein.io>
Sat, 13 Aug 2016 14:24:04 +0000 (16:24 +0200)
The previous image building code rework removed the rootfs.tar.gz with embedded
kernel and dtb build artifact which is required to build suitable SD images.

Reintroduce a .tar.gz artifact locally which embeds kernel and dtb, similar to
how the old code handled it.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
target/linux/mvebu/image/Makefile

index 0e863478d8d0a2f3ca6166aad9f9536c6e3fb51d..7d87e5cc8fd39c5904b953ca8628b924da3614ca 100644 (file)
@@ -14,12 +14,33 @@ KERNEL_LOADADDR := 0x00008000
 
 DEVICE_VARS += KERNEL_SIZE
 
+define Image/mkfs/bundle
+       $(TAR) -cp --numeric-owner --owner=0 --group=0 --sort=name \
+               $(if $(SOURCE_DATE_EPOCH),--mtime="@$(SOURCE_DATE_EPOCH)") \
+               -C $(call mkfs_target_dir,$(1))/ . > $@
+endef
+TARGET_FILESYSTEMS += bundle
+
+define Build/dtb
+        $(call Image/BuildDTB,$(DTS_DIR)/$(DEVICE_DTS).dts,$@.dtb)
+endef
+
+define Build/clearfog-bundle
+       cp $(IMAGE_ROOTFS) $@.new
+       $(TAR) -rp --numeric-owner --owner=0 --group=0 --sort=name \
+               $(if $(SOURCE_DATE_EPOCH),--mtime="@$(SOURCE_DATE_EPOCH)") \
+               --file=$@.new -C $(dir $(IMAGE_KERNEL))/ $(notdir $(IMAGE_KERNEL)) $(notdir $(IMAGE_KERNEL).dtb)
+       gzip -9n -c $@.new > $@
+endef
+
+
 define Device/Default
   PROFILES := Default
   DEVICE_DTS := $(1)
   BOARD_NAME = $$(DEVICE_DTS)
   KERNEL_NAME := zImage
   KERNEL := kernel-bin | append-dtb | uImage none
+  FILESYSTEMS = $(filter-out bundle,$(TARGET_FILESYSTEMS))
 endef
 
 define Device/UBI
@@ -132,7 +153,12 @@ TARGET_DEVICES += armada-388-rd
 
 define Device/armada-388-clearfog
   KERNEL_INSTALL := 1
+  KERNEL := dtb | kernel-bin
   DEVICE_TITLE := SolidRun ClearFog
+  FILESYSTEMS := bundle
+  IMAGES := bundle.tar.gz
+  IMAGE/bundle.tar.gz := append-rootfs | clearfog-bundle
+  IMAGE_NAME = $$(IMAGE_PREFIX)-$$(2)
 endef
 TARGET_DEVICES += armada-388-clearfog