build: centralize fakeroot code
[openwrt/openwrt.git] / target / linux / ramips / image / mt7620.mk
index f03c803b1855b6b77a860848ebf469d8a6a8cf84..446bd9981e28bec21f62416fcca05b85d8ec8f2a 100644 (file)
@@ -4,36 +4,15 @@
 
 define Build/tplink-header
        $(STAGING_DIR_HOST)/bin/mktplinkfw2 -a 0x4 -V "ver. 2.0" -B $(1) \
-               -o $@.new -k $@  && mv $@.new $@
-endef
-
-define Build/pad-kernel-ex2700
-       cp $@ $@.tmp && dd if=/dev/zero bs=64 count=1 >> $@.tmp \
-               && dd if=$@.tmp of=$@.new bs=64k conv=sync && truncate -s -64 $@.new \
-               && cat ex2700-fakeroot.uImage >> $@.new && rm $@.tmp && mv $@.new $@
-endef
-
-define Build/netgear-header
-       $(STAGING_DIR_HOST)/bin/mkdniimg \
-               $(1) -v OpenWrt -i $@ \
-               -o $@.new && mv $@.new $@
-endef
-
-define Build/poray-header
-       mkporayfw $(1) \
-               -f $@ \
-               -o $@.new; \
-               mv $@.new $@
+               -o $@.new -k $@ -r $(IMAGE_ROOTFS) && mv $@.new $@
 endef
 
 define Build/elecom-header
        cp $@ $(KDIR)/v_0.0.0.bin
        ( \
-               $(STAGING_DIR_HOST)/bin/md5sum $(KDIR)/v_0.0.0.bin | \
-                       sed 's/ .*//' && \
+               mkhash md5 $(KDIR)/v_0.0.0.bin && \
                echo 458 \
-       ) | $(STAGING_DIR_HOST)/bin/md5sum | \
-               sed 's/ .*//' > $(KDIR)/v_0.0.0.md5
+       ) | mkhash md5 > $(KDIR)/v_0.0.0.md5
        $(STAGING_DIR_HOST)/bin/tar -cf $@ -C $(KDIR) v_0.0.0.bin v_0.0.0.md5
 endef
 
@@ -43,40 +22,69 @@ endef
 
 define Device/ArcherC20i
   DTS := ArcherC20i
+  SUPPORTED_DEVICES := c20i
   KERNEL := $(KERNEL_DTB)
   KERNEL_INITRAMFS := $(KERNEL_DTB) | tplink-header ArcherC20i -c
-  IMAGE/sysupgrade.bin := append-kernel | tplink-header ArcherC20i -j -r $(KDIR)/root.squashfs | append-metadata
+  IMAGE/sysupgrade.bin := append-kernel | tplink-header ArcherC20i -j | append-metadata
   DEVICE_TITLE := TP-Link ArcherC20i
 endef
 TARGET_DEVICES += ArcherC20i
 
 define Device/ArcherC50
   DTS := ArcherC50
+  SUPPORTED_DEVICES := c50
   KERNEL := $(KERNEL_DTB)
   KERNEL_INITRAMFS := $(KERNEL_DTB) | tplink-header ArcherC50 -c
-  IMAGE/sysupgrade.bin := append-kernel | tplink-header ArcherC50 -j -r $(KDIR)/root.squashfs | append-metadata
+  IMAGE/sysupgrade.bin := append-kernel | tplink-header ArcherC50 -j | append-metadata
   DEVICE_TITLE := TP-Link ArcherC50
 endef
 TARGET_DEVICES += ArcherC50
 
+define Device/ArcherMR200
+  DTS := ArcherMR200
+  SUPPORTED_DEVICES := mr200
+  KERNEL := $(KERNEL_DTB)
+  KERNEL_INITRAMFS := $(KERNEL_DTB) | tplink-header ArcherMR200 -c
+  IMAGE/sysupgrade.bin := append-kernel | tplink-header ArcherMR200 -j | append-metadata
+  DEVICE_PACKAGES := kmod-usb2 kmod-usb-net kmod-usb-net-rndis kmod-usb-serial kmod-usb-serial-option adb
+  DEVICE_TITLE := TP-Link ArcherMR200
+endef
+TARGET_DEVICES += ArcherMR200
+
 define Device/ex2700
+  NETGEAR_HW_ID := 29764623+4+0+32+2x2+0
+  NETGEAR_BOARD_ID := EX2700
   DTS := EX2700
   BLOCKSIZE := 4k
   IMAGE_SIZE := $(ralink_default_fw_size_4M)
   IMAGES += factory.bin
-  KERNEL := $(KERNEL_DTB) | uImage lzma | pad-kernel-ex2700
-  IMAGE/factory.bin := $$(sysupgrade_bin) | netgear-header -B EX2700 -H 29764623+4+0+32+2x2+0
+  KERNEL := $(KERNEL_DTB) | uImage lzma | pad-offset 64k 64 | append-uImage-fakeroot-hdr
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | \
+       netgear-dni
   DEVICE_TITLE := Netgear EX2700
 endef
 TARGET_DEVICES += ex2700
 
+define Device/wn3000rpv3
+  NETGEAR_HW_ID := 29764836+8+0+32+2x2+0
+  NETGEAR_BOARD_ID := WN3000RPv3
+  DTS := WN3000RPV3
+  BLOCKSIZE := 4k
+  IMAGES += factory.bin
+  KERNEL := $(KERNEL_DTB) | uImage lzma | pad-offset 64k 64 | append-uImage-fakeroot-hdr
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | \
+       netgear-dni
+  DEVICE_TITLE := Netgear WN3000RPv3
+endef
+TARGET_DEVICES += wn3000rpv3
+
 define Device/wt3020-4M
   DTS := WT3020-4M
   BLOCKSIZE := 4k
   IMAGE_SIZE := $(ralink_default_fw_size_4M)
   IMAGES += factory.bin
-  SUPPORTED_DEVICES := wt3020
-  IMAGE/factory.bin := $$(sysupgrade_bin) | poray-header -B WT3020 -F 4M
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | \
+       poray-header -B WT3020 -F 4M
   DEVICE_TITLE := Nexx WT3020 (4MB)
 endef
 TARGET_DEVICES += wt3020-4M
@@ -84,8 +92,8 @@ TARGET_DEVICES += wt3020-4M
 define Device/wt3020-8M
   DTS := WT3020-8M
   IMAGES += factory.bin
-  SUPPORTED_DEVICES := wt3020
-  IMAGE/factory.bin := $$(sysupgrade_bin) | poray-header -B WT3020 -F 8M
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | \
+       poray-header -B WT3020 -F 8M
   DEVICE_TITLE := Nexx WT3020 (8MB)
 endef
 TARGET_DEVICES += wt3020-8M
@@ -94,7 +102,8 @@ define Device/wrh-300cr
   DTS := WRH-300CR
   IMAGE_SIZE := $(ralink_default_fw_size_16M)
   IMAGES += factory.bin
-  IMAGE/factory.bin := $$(sysupgrade_bin) | elecom-header
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | \
+       elecom-header
   DEVICE_TITLE := Elecom WRH-300CR 
   DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci
 endef
@@ -103,7 +112,8 @@ TARGET_DEVICES += wrh-300cr
 define Device/e1700
   DTS := E1700
   IMAGES += factory.bin
-  IMAGE/factory.bin := $$(sysupgrade_bin) | umedia-header 0x013326
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | \
+       umedia-header 0x013326
   DEVICE_TITLE := Linksys E1700
 endef
 TARGET_DEVICES += e1700
@@ -425,12 +435,33 @@ define Device/dch-m225
 endef
 TARGET_DEVICES += dch-m225
 
+define Device/kn_rc
+  DTS := kn_rc
+  DEVICE_TITLE := ZyXEL Keenetic Omni
+  DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci kmod-usb-ledtrig-usbport
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(IMAGE/sysupgrade.bin) | pad-to 64k | check-size $$$$(IMAGE_SIZE) | \
+       zyimage -d 4882 -v "ZyXEL Keenetic Omni"
+endef
+TARGET_DEVICES += kn_rc
+
+define Device/kn_rf
+  DTS := kn_rf
+  DEVICE_TITLE := ZyXEL Keenetic Omni II
+  DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci kmod-usb-ledtrig-usbport
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(IMAGE/sysupgrade.bin) | pad-to 64k | check-size $$$$(IMAGE_SIZE) | \
+       zyimage -d 2102034 -v "ZyXEL Keenetic Omni II"
+endef
+TARGET_DEVICES += kn_rf
+
 define Device/kng_rc
   DTS := kng_rc
   IMAGE_SIZE := $(ralink_default_fw_size_16M)
   DEVICE_TITLE := ZyXEL Keenetic Viva
   DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci kmod-usb-ledtrig-usbport kmod-switch-rtl8366-smi kmod-switch-rtl8367b
   IMAGES += factory.bin
-  IMAGE/factory.bin := $$(IMAGE/sysupgrade.bin) | zyimage -d 8997 -v "ZyXEL Keenetic Viva"
+  IMAGE/factory.bin := $$(sysupgrade_bin) | pad-to 64k | check-size $$$$(IMAGE_SIZE) | \
+       zyimage -d 8997 -v "ZyXEL Keenetic Viva"
 endef
 TARGET_DEVICES += kng_rc