From: Christian Lamparter Date: Tue, 22 Jan 2019 21:18:57 +0000 (+0100) Subject: gemini: unify and fix ib-nas4220b and sq201 image creation X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=5bac6238959;p=openwrt%2Fstaging%2Faparcar.git gemini: unify and fix ib-nas4220b and sq201 image creation Both Build/sq201-images and Build/nas4220b-images scripts are very similar. This patch unifies both methods at the cost of renaming the produced sysupgrade file names, but with the benifit of creating better reproducible files. The patch also fixes a race in parallel builds in which case the ImageInfo of one device could end up in both sysupgrade files. Signed-off-by: Christian Lamparter --- diff --git a/target/linux/gemini/image/ImageInfo-ib4220 b/target/linux/gemini/image/ImageInfo-ib4220 deleted file mode 100644 index 68fca5bb93..0000000000 --- a/target/linux/gemini/image/ImageInfo-ib4220 +++ /dev/null @@ -1,19 +0,0 @@ -Distribution="OpenWrt" -Layout="Compact" -UpgradeImages="zImage rd.gz hddapp.tgz" -productName="IB-NAS4220-B" -hardwareName="MP-LNU23SL" -productVendor=" " -VendorID="macpower" -ProductID="pddlan" -UpgradeVersion="300" -ExtraVersion="" -manufacturerURL=" " -Description="IB-NAS4220-B" -hostname="IB-NAS4220-B" -softwareVersion="3.0" -TSS="enabled" -DIRECT_MODE="disabled" -Raid_Support="raid0_raid1_raid5_linear" -RaidTestDiskSize="0" -Raid_Show_Disk="2" diff --git a/target/linux/gemini/image/ImageInfo-nas4220b b/target/linux/gemini/image/ImageInfo-nas4220b new file mode 100644 index 0000000000..68fca5bb93 --- /dev/null +++ b/target/linux/gemini/image/ImageInfo-nas4220b @@ -0,0 +1,19 @@ +Distribution="OpenWrt" +Layout="Compact" +UpgradeImages="zImage rd.gz hddapp.tgz" +productName="IB-NAS4220-B" +hardwareName="MP-LNU23SL" +productVendor=" " +VendorID="macpower" +ProductID="pddlan" +UpgradeVersion="300" +ExtraVersion="" +manufacturerURL=" " +Description="IB-NAS4220-B" +hostname="IB-NAS4220-B" +softwareVersion="3.0" +TSS="enabled" +DIRECT_MODE="disabled" +Raid_Support="raid0_raid1_raid5_linear" +RaidTestDiskSize="0" +Raid_Show_Disk="2" diff --git a/target/linux/gemini/image/Makefile b/target/linux/gemini/image/Makefile index a92b466a64..566ac96122 100644 --- a/target/linux/gemini/image/Makefile +++ b/target/linux/gemini/image/Makefile @@ -39,40 +39,25 @@ define Build/dns313-images if [ -d $(BIN_DIR)/.boot ] ; then rm -rf $(BIN_DIR)/.boot ; fi endef -# Create the special NAS4220B image format with the squashfs -# and overlay inside the "rd.gz" file. We pad it out to 6144K -# which is the size of the initramfs partition. +# Create the special NAS4220B and Itian Square One SQ201 image +# format with the squashfs and overlay inside the "rd.gz" file. +# We pad it out to 6144K which is the size of the initramfs partition. # # The "application" partition is just blank. You can put anything # there when using OpenWRT. We just use that to create the # "sysupgrade" firmware image. -define Build/nas4220b-images - dd if=$(IMAGE_ROOTFS) of=$(BIN_DIR)/rd.gz bs=6144k conv=sync - dd if=/dev/zero of=$(BIN_DIR)/hddapp.tgz bs=6144k count=1 - cp $(IMAGE_KERNEL) $(BIN_DIR)/zImage - cp ./ImageInfo-ib4220 $(BIN_DIR)/ImageInfo - (cd $(BIN_DIR); tar -czf $(IMG_PREFIX)-sysupgrade-ib4220b.tar.gz ImageInfo zImage rd.gz hddapp.tgz) - mv $(BIN_DIR)/rd.gz $(BIN_DIR)/$(IMG_PREFIX)-nas4220b-rd.gz - rm $(BIN_DIR)/hddapp.tgz - mv $(BIN_DIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-nas4220b-zImage - rm -f $(BIN_DIR)/ImageInfo +define Build/nas4220b-sq201-images + rm -rf $@-tmp + mkdir -p $@-tmp + dd if=$(IMAGE_ROOTFS) of=$@-tmp/rd.gz bs=6144k conv=sync + dd if=/dev/zero of=$@-tmp/hddapp.tgz bs=6144k count=1 + cp $(IMAGE_KERNEL) $@-tmp/zImage + cp ./ImageInfo-$(1) $@-tmp/ImageInfo + (cd $@-tmp; tar --owner=0 --group=0 --numeric-owner --mtime=@$(SOURCE_DATE_EPOCH) \ + -czf $@ ImageInfo zImage rd.gz hddapp.tgz) + rm -rf $@-tmp endef -# The Itian Square One SQ201 uses the same method. -define Build/sq201-images - dd if=$(IMAGE_ROOTFS) of=$(BIN_DIR)/rd.gz bs=6144k conv=sync - dd if=/dev/zero of=$(BIN_DIR)/hddapp.tgz bs=6144k count=1 - cp $(IMAGE_KERNEL) $(BIN_DIR)/zImage - cp ./ImageInfo-sq201 $(BIN_DIR)/ImageInfo - sed -i -e "s/DATESTR/`date +%Y%m%d`/g" $(BIN_DIR)/ImageInfo - (cd $(BIN_DIR); tar -czf $(IMG_PREFIX)-sysupgrade-sq201.tar.gz ImageInfo zImage rd.gz hddapp.tgz) - mv $(BIN_DIR)/rd.gz $(BIN_DIR)/$(IMG_PREFIX)-sq201-rd.gz - rm $(BIN_DIR)/hddapp.tgz - mv $(BIN_DIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-sq201-zImage - rm -f $(BIN_DIR)/ImageInfo -endef - - # WBD-111 and WBD-222: # work around the bootloader's bug with extra nops # FIXME: is this really needed now that we no longer append the code @@ -123,11 +108,18 @@ define Device/dlink-dns-313 endef TARGET_DEVICES += dlink-dns-313 +define Device/nas4220b-sq201 + ARTIFACTS := zImage + ARTIFACT/zImage := append-kernel + IMAGES += rd.gz sysupgrade.tar.gz + IMAGE/rd.gz := append-rootfs | pad-to 6144k + IMAGE/sysupgrade.tar.gz := nas4220b-sq201-images $(1) + DEVICE_PACKAGES := $(GEMINI_NAS_PACKAGES) +endef + define Device/nas4220b + $(Device/nas4220b-sq201) DEVICE_TITLE := Raidsonic NAS IB-4220-B - IMAGES += nas4220b-image - IMAGE/nas4220b-image := nas4220b-images - DEVICE_PACKAGES := $(GEMINI_NAS_PACKAGES) endef TARGET_DEVICES += nas4220b @@ -138,10 +130,9 @@ endef TARGET_DEVICES += rut1xx define Device/sq201 + $(Device/nas4220b-sq201) DEVICE_TITLE := ITian Square One SQ201 - IMAGES += sq201-image - IMAGE/sq201-image := sq201-images - DEVICE_PACKAGES := $(GEMINI_NAS_PACKAGES) rt61-pci usb2-pci + DEVICE_PACKAGES += rt61-pci usb2-pci endef TARGET_DEVICES += sq201