define PatchKernelLzma
cp $(KDIR)/vmlinux $(KDIR)/vmlinux-$(1)
- $(STAGING_DIR_HOST)/bin/patch-cmdline $(KDIR)/vmlinux-$(1) '$(strip $(2))'
+ $(STAGING_DIR_HOST)/bin/patch-cmdline $(KDIR)/vmlinux-$(1) "$(strip $(2))"
$(call CompressLzma,$(KDIR)/vmlinux-$(1),$(KDIR)/vmlinux-$(1).bin.lzma)
endef
define PatchKernelGzip
cp $(KDIR)/vmlinux $(KDIR)/vmlinux-$(1)
- $(STAGING_DIR_HOST)/bin/patch-cmdline $(KDIR)/vmlinux-$(1) '$(strip $(2))'
+ $(STAGING_DIR_HOST)/bin/patch-cmdline $(KDIR)/vmlinux-$(1) "$(strip $(2))"
gzip -9 -c $(KDIR)/vmlinux-$(1) > $(KDIR)/vmlinux-$(1).bin.gz
endef
echo -n -e "# Airstation Public Fmt1\x00\x00\x00\x00\x00\x00\x00\x00"; \
dd if=$(call sysupname,$(1),$(2)); \
) > $(call imgname,$(1),$(2))-tftp.bin; \
- buffalo-enc -p $(4) -v 1.76 \
+ buffalo-enc -p $(4) -v 1.99 \
-i $(call sysupname,$(1),$(2)) \
-o $(KDIR)/$(2).enc; \
- buffalo-tag -b $(4) -p $(4) -a ath -v 1.76 -m 1.01 -l mlang8 \
+ buffalo-tag -b $(4) -p $(4) -a ath -v 1.99 -m 1.01 -l mlang8 \
+ -w 3 -c 0x80041000 -d 0x801e8000 -f 1 -r M_ \
+ -i $(KDIR)/$(2).enc \
+ -o $(call factoryname,$(1),$(2)); \
+ fi
+endef
+
+define Image/Build/WHRHPG300N
+ $(call MkuImageLzma,$(2),$(3) $($(4)))
+ $(call Sysupgrade/KR,$(1),$(2),917504,2883584)
+ if [ -e "$(call sysupname,$(1),$(2))" ]; then \
+ ( \
+ echo -n -e "# Airstation Public Fmt1\x00\x00\x00\x00\x00\x00\x00\x00"; \
+ dd if=$(call sysupname,$(1),$(2)); \
+ ) > $(call imgname,$(1),$(2))-tftp.bin; \
+ buffalo-enc -p $(5) -v 1.99 \
+ -i $(call sysupname,$(1),$(2)) \
+ -o $(KDIR)/$(2).enc; \
+ buffalo-tag -b $(5) -p $(5) -a ath -v 1.99 -m 1.01 -l mlang8 \
-w 3 -c 0x80041000 -d 0x801e8000 -f 1 -r M_ \
-i $(KDIR)/$(2).enc \
-o $(call factoryname,$(1),$(2)); \
define Image/Build/AthGzip/initramfs
$(call MkuImageLzma,$(2),$(3) $($(4)))
+ $(CP) $(KDIR)/vmlinux-$(2).uImage $(call imgname,$(1),$(2))-uImage.bin
endef
define Image/Build/AthLzma
define Image/Build/AthLzma/initramfs
$(call MkuImageLzma,$(2),$(3) $($(4)))
+ $(CP) $(KDIR)/vmlinux-$(2).uImage $(call imgname,$(1),$(2))-uImage.bin
endef
define Image/Build/PB4X
-o $(call imgname,$(1),$(2))-uImage.bin
endef
+define Image/Build/TPLINK-LZMA
+ $(call PatchKernelLzma,$(2),$(3))
+ -$(STAGING_DIR_HOST)/bin/mktplinkfw \
+ -B $(4) -N OpenWrt -V $(REVISION)\
+ -k $(KDIR)/vmlinux-$(2).bin.lzma \
+ -r $(BIN_DIR)/$(IMG_PREFIX)-root.$(1) \
+ -o $(call factoryname,$(1),$(2))
+ -$(STAGING_DIR_HOST)/bin/mktplinkfw \
+ -B $(4) -N OpenWrt -V $(REVISION) -s \
+ -k $(KDIR)/vmlinux-$(2).bin.lzma \
+ -r $(BIN_DIR)/$(IMG_PREFIX)-root.$(1) \
+ -o $(call sysupname,$(1),$(2))
+endef
+
+define Image/Build/TPLINK-LZMA/initramfs
+ $(call PatchKernelLzma,$(2),$(3))
+ -$(STAGING_DIR_HOST)/bin/mktplinkfw -c \
+ -B $(4) -N OpenWrt -V $(REVISION) -s \
+ -k $(KDIR)/vmlinux-$(2).bin.lzma \
+ -o $(call imgname,$(1),$(2))-uImage.bin
+endef
+
define Image/Build/CyberTAN
$(call MkuImageGzip,$(2),$(3))
$(STAGING_DIR_HOST)/bin/trx -o $(KDIR)/image.tmp -f $(KDIR)/vmlinux-$(2).uImage \
rm $(KDIR)/image.tmp
endef
-define Image/Build/Netgear
- $(call MkuImageLzma,$(2),$(3) $($(4)))
- mkdir -p $(KDIR)/wndr3700/image
+define Image/Build/Netgear/Build_uImage
+ $(call MkuImageLzma,$(1),$(2) $(3))
+ -rm -rf $(KDIR)/$(1)
+ mkdir -p $(KDIR)/$(1)/image
$(STAGING_DIR_HOST)/bin/wndr3700 \
- $(KDIR)/vmlinux-$(2).uImage \
- $(KDIR)/wndr3700/image/uImage \
- $(5)
+ $(KDIR)/vmlinux-$(1).uImage \
+ $(KDIR)/$(1)/image/uImage \
+ $(4)
$(STAGING_DIR_HOST)/bin/mksquashfs-lzma \
- $(KDIR)/wndr3700 $(KDIR)/vmlinux-$(2).uImage.squashfs.tmp \
+ $(KDIR)/$(1) $(KDIR)/vmlinux-$(1).uImage.squashfs.tmp \
-nopad -noappend -root-owned -be
- -rm -rf $(KDIR)/wndr3700
+ -rm -rf $(KDIR)/$(1)
mkimage -A mips -O linux -T filesystem -C none \
-a 0xbf070000 -e 0xbf070000 \
-n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
- -d $(KDIR)/vmlinux-$(2).uImage.squashfs.tmp \
- $(KDIR)/vmlinux-$(2).uImage.squashfs.tmp2
+ -d $(KDIR)/vmlinux-$(1).uImage.squashfs.tmp \
+ $(KDIR)/vmlinux-$(1).uImage.squashfs.tmp2
$(STAGING_DIR_HOST)/bin/wndr3700 \
- $(KDIR)/vmlinux-$(2).uImage.squashfs.tmp2 \
- $(KDIR)/vmlinux-$(2).uImage.squashfs \
- $(5)
- -rm -f $(KDIR)/vmlinux-$(2).uImage.squashfs.tmp*
+ $(KDIR)/vmlinux-$(1).uImage.squashfs.tmp2 \
+ $(KDIR)/vmlinux-$(1).uImage.squashfs \
+ $(4)
+ -rm -f $(KDIR)/vmlinux-$(1).uImage.squashfs.tmp*
+endef
+
+define Image/Build/Netgear/Estimate_uImage
+ $(call Image/Build/Netgear/Build_uImage,$(1)_est,$(2),$(3),$(4))
( \
- dd if=$(KDIR)/vmlinux-$(2).uImage.squashfs bs=1024k conv=sync; \
- dd if=$(KDIR)/root.$(1) bs=64k; \
- ) > $(call sysupname,$(1),$(2))
- for r in $(7) ; do \
- [ -n "$$$$r" ] && dashr="-$$$$r" || dashr= ; \
- $(STAGING_DIR_HOST)/bin/mkdniimg \
- -B $(6) -v OpenWrt.$(REVISION) -r "$$$$r" $(8) \
- -i $(call sysupname,$(1),$(2)) \
- -o $(call imgname,$(1),$(2))-factory$$$$dashr.img; \
- done
+ set -e; \
+ kk=`echo '$(3)' | sed -e 's/.*[:,]\([0-9]*\)k(kernel).*/\1/'`; \
+ rk=`echo '$(3)' | sed -e 's/.*[:,]\([0-9]*\)k(rootfs).*/\1/'`; \
+ let 'tk = kk + rk'; \
+ s=`stat -c'%s' '$(KDIR)/vmlinux-$(1)_est.uImage.squashfs'`; \
+ c=`echo '$(3)' | wc -c`; \
+ let 'kk = (((s + c) / (64 * 1024) + 1) * 64)'; \
+ let 'rk = tk - kk'; \
+ echo '$(3)' | sed -e "s/[0-9]*k(kernel)/$$$${kk}k(kernel)/" \
+ -e "s/[0-9]*k(rootfs)/$$$${rk}k(rootfs)/" > \
+ '$(KDIR)/$(1)_mtdparts'; \
+ let 'k = kk * 1024'; \
+ echo "$$$${k}" > '$(KDIR)/$(1)_kernel_maxsize'; \
+ let 'r = rk * 1024'; \
+ echo "$$$${r}" > '$(KDIR)/$(1)_rootfs_maxsize'; \
+ )
+ -rm -f $(KDIR)/vmlinux-$(1)_est \
+ $(KDIR)/vmlinux-$(1)_est.bin.lzma \
+ $(KDIR)/vmlinux-$(1)_est.uImage \
+ $(KDIR)/vmlinux-$(1)_est.uImage.squashfs
+endef
+
+define Image/Build/Netgear
+ $(call Image/Build/Netgear/Estimate_uImage,$(2),$(3),$(4),$(5))
+ $(call Image/Build/Netgear/Build_uImage,$(2),$(3),`cat $(KDIR)/$(2)_mtdparts`,$(5))
+ if [ `stat -c%s '$(KDIR)/vmlinux-$(2).uImage.squashfs'` -gt \
+ `cat '$(KDIR)/$(2)_kernel_maxsize'` ]; then \
+ echo "$(KDIR)/vmlinux-$(2).uImage.squashfs is too big" >& 2; \
+ else if [ `stat -c%s '$(KDIR)/root.$(1)'` -gt \
+ `cat '$(KDIR)/$(2)_rootfs_maxsize'` ]; then \
+ echo "$(KDIR)/root.$(1) is too big" >& 2; \
+ else \
+ ( \
+ set -e; \
+ dd if=$(KDIR)/vmlinux-$(2).uImage.squashfs \
+ bs=`cat '$(KDIR)/$(2)_kernel_maxsize'` conv=sync; \
+ dd if=$(KDIR)/root.$(1) bs=64k; \
+ ) > $(call sysupname,$(1),$(2)); \
+ for r in $(7) ; do \
+ [ -n "$$$$r" ] && dashr="-$$$$r" || dashr= ; \
+ $(STAGING_DIR_HOST)/bin/mkdniimg \
+ -B $(6) -v OpenWrt.$(REVISION) -r "$$$$r" $(8) \
+ -i $(call sysupname,$(1),$(2)) \
+ -o $(call imgname,$(1),$(2))-factory$$$$dashr.img; \
+ done; \
+ fi; fi
endef
define Image/Build/Netgear/initramfs
endef
endif
+define Image/Build/OpenMesh
+ $(call MkuImageLzma,$(2))
+ -sh $(TOPDIR)/scripts/om2p-fwupgradecfg-gen.sh \
+ "$(BUILD_DIR)/om2p-fwupgrade.cfg" \
+ "$(KDIR)/vmlinux-$(2).uImage" \
+ "$(KDIR)/root.$(1)"
+ -sh $(TOPDIR)/scripts/combined-ext-image.sh \
+ "$(3)" "$(call factoryname,$(1),$(2))" \
+ "$(BUILD_DIR)/om2p-fwupgrade.cfg" "fwupgrade.cfg" \
+ "$(KDIR)/vmlinux-$(2).uImage" "kernel" \
+ "$(KDIR)/root.$(1)" "rootfs"
+endef
+
define Image/Build/Zcomax
$(call MkuImageLzma,$(2),$(3))
$(call Sysupgrade/RK,$(1),$(2),1507328,6356992)
endef
db120_cmdline=board=DB120 console=ttyS0,115200
+db120_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,6336k(rootfs),1408k(kernel),64k(nvram),64k(art)ro,7744k@0x50000(firmware)
define Image/Build/Profile/DB120
- $(call Image/Build/Template/$(fs_64k)/$(1),AthLzma,db120,$(db120_cmdline),,1441792,6488064,RK)
+ $(call Image/Build/Template/$(fs_64k)/$(1),AthLzma,db120,$(db120_cmdline),db120_mtdlayout,1441792,6488064,RK)
endef
pb42_cmdline=board=PB42 console=ttyS0,115200
$(call Image/Build/Template/$(fs_squash)/$(1),Cameo913x,a02-rb-w300n,$(a05rbw300n_cmdline),"AP81-AR9130-RT-070614-03")
endef
+ubntairrouter_cmdline=board=UBNT-AR console=ttyS0,115200
+define Image/Build/Profile/UBNTAIRROUTER
+ $(call Image/Build/Template/$(fs_64k)/$(1),UBNTXM,ubnt-airrouter,$(ubntairrouter_cmdline),XM,UBNTXM,ar7240)
+endef
+
ubntrs_cmdline=board=UBNT-RS console=ttyS0,115200
define Image/Build/Profile/UBNTRS
$(call Image/Build/Template/$(fs_64k)/$(1),UBNT,ubnt-rs,$(ubntrs_cmdline),RS,RSx,ar7100)
endef
define Image/Build/Profile/UBNT
+ $(call Image/Build/Profile/UBNTAIRROUTER,$(1))
$(call Image/Build/Profile/UBNTRS,$(1))
$(call Image/Build/Profile/UBNTRSPRO,$(1))
$(call Image/Build/Profile/UBNTLSSR71,$(1))
$(call Image/Build/Template/$(fs_64k)/$(1),ZyXEL,nbg460n_550n_550nh,$(nbg460n_cmdline),NBG-460N)
endef
+define Image/Build/Profile/OM2P
+ $(call Image/Build/Template/$(fs_squash)/$(1),OpenMesh,om2p,OM2P)
+endef
+
tlmr3220_cmdline=board=TL-MR3220 console=ttyS0,115200
define Image/Build/Profile/TLMR3220V1
$(call Image/Build/Template/$(fs_64k)/$(1),TPLINK,tl-mr3220-v1,$(tlmr3220_cmdline),TL-MR3220v1)
$(call Image/Build/Template/$(fs_64k)/$(1),TPLINK,tl-wa901nd-v2,$(tlwa901ndv2_cmdline),TL-WA901NDv2)
endef
-tlwe741ndv1_cmdline=board=TL-WR741ND console=ttyS0,115200
+tlwr741ndv1_cmdline=board=TL-WR741ND console=ttyS0,115200
define Image/Build/Profile/TLWR741NDV1
- $(call Image/Build/Template/$(fs_64k)/$(1),TPLINK,tl-wr741nd-v1,$(tlwe741ndv1_cmdline),TL-WR741NDv1)
+ $(call Image/Build/Template/$(fs_64k)/$(1),TPLINK,tl-wr741nd-v1,$(tlwr741ndv1_cmdline),TL-WR741NDv1)
+endef
+
+tlwr741ndv4_cmdline=board=TL-WR741ND-v4 console=ttyATH0,115200
+define Image/Build/Profile/TLWR741NDV4
+ $(call Image/Build/Template/$(fs_64k)/$(1),TPLINK-LZMA,tl-wr741nd-v4,$(tlwr741ndv4_cmdline),TL-WR741NDv4)
endef
-tlwe740nv1_cmdline=board=TL-WR741ND console=ttyS0,115200
+tlwr740nv1_cmdline=board=TL-WR741ND console=ttyS0,115200
define Image/Build/Profile/TLWR740NV1
- $(call Image/Build/Template/$(fs_64k)/$(1),TPLINK,tl-wr740n-v1,$(tlwe740nv1_cmdline),TL-WR740Nv1)
+ $(call Image/Build/Template/$(fs_64k)/$(1),TPLINK,tl-wr740n-v1,$(tlwr740nv1_cmdline),TL-WR740Nv1)
endef
-tlwe740nv3_cmdline=board=TL-WR741ND console=ttyS0,115200
+tlwr740nv3_cmdline=board=TL-WR741ND console=ttyS0,115200
define Image/Build/Profile/TLWR740NV3
- $(call Image/Build/Template/$(fs_64k)/$(1),TPLINK,tl-wr740n-v3,$(tlwe740nv3_cmdline),TL-WR740Nv3)
+ $(call Image/Build/Template/$(fs_64k)/$(1),TPLINK,tl-wr740n-v3,$(tlwr740nv3_cmdline),TL-WR740Nv3)
+endef
+
+define Image/Build/Profile/TLWR743NDV1
+ $(call Image/Build/Template/$(fs_64k)/$(1),TPLINK,tl-wr743nd-v1,$(tlwr741ndv1_cmdline),TL-WR743NDv1)
endef
tlwr841nv15_cmdline=board=TL-WR841N-v1.5 console=ttyS0,115200
$(call Image/Build/Template/$(fs_squash)/$(1),TPLINK,tl-wr1043nd-v1,$(tlwr1043nd_cmdline),TL-WR1043NDv1)
endef
+tlwr703n_cmdline=board=TL-WR703N console=ttyATH0,115200
+define Image/Build/Profile/TLWR703NV1
+ $(call Image/Build/Template/$(fs_64k)/$(1),TPLINK-LZMA,tl-wr703n-v1,$(tlwr703n_cmdline),TL-WR703Nv1)
+endef
+
wndr3700_cmdline=board=WNDR3700 console=ttyS0,115200
wndr3700_mtdlayout=mtdparts=spi0.0:320k(u-boot)ro,128k(u-boot-env)ro,1024k(kernel),6656k(rootfs),64k(art)ro,7680k@0x70000(firmware)
-wndr3700v2_cmdline=board=WNDR3700v2 console=ttyS0,115200
wndr3700v2_mtdlayout=mtdparts=spi0.0:320k(u-boot)ro,128k(u-boot-env)ro,1024k(kernel),14848k(rootfs),64k(art)ro,15872k@0x70000(firmware)
define Image/Build/Profile/WNDR3700
- $(call Image/Build/Template/$(fs_64k)/$(1),Netgear,wndr3700,$(wndr3700_cmdline),wndr3700_mtdlayout,3700,WNDR3700,"" NA,)
- $(call Image/Build/Template/$(fs_64k)/$(1),Netgear,wndr3700v2,$(wndr3700v2_cmdline),wndr3700v2_mtdlayout,3701,WNDR3700v2,"",-H 29763654+16+64)
+ $(call Image/Build/Template/$(fs_64k)/$(1),Netgear,wndr3700,$(wndr3700_cmdline),$(wndr3700_mtdlayout),3700,WNDR3700,"" NA,)
+ $(call Image/Build/Template/$(fs_64k)/$(1),Netgear,wndr3700v2,$(wndr3700_cmdline),$(wndr3700v2_mtdlayout),3701,WNDR3700,"",-H 29763654+16+64)
+ $(call Image/Build/Template/$(fs_64k)/$(1),Netgear,wndr3800,$(wndr3700_cmdline),$(wndr3700v2_mtdlayout),3701,WNDR3700,"",-H 29763654+16+128)
endef
wr400n_cmdline=board=WRT400N console=ttyS0,115200
$(call Image/Build/Template/$(fs_64k)/$(1),CyberTAN,wrt160nl,$(wrt160nl_cmdline),1.00.01)
endef
+whrg301n_cmdline=board=WHR-G301N console=ttyS0,115200
+define Image/Build/Profile/WHRG301N
+ $(call Image/Build/Template/$(fs_64k)/$(1),WHRHPG300N,whr-g301n,$(whrg301n_cmdline),whrhpg300n_mtdlayout,WHR-G301N)
+endef
+
+whrhpg300n_cmdline=board=WHR-HP-G300N console=ttyS0,115200
+whrhpg300n_mtdlayout=mtdparts=spi0.0:248k(u-boot)ro,8k(u-boot-env)ro,896k(kernel),2816k(rootfs),64k(user_property),64k(art)ro,3712k@0x40000(firmware)
+define Image/Build/Profile/WHRHPG300N
+ $(call Image/Build/Template/$(fs_64k)/$(1),WHRHPG300N,whr-hp-g300n,$(whrhpg300n_cmdline),whrhpg300n_mtdlayout,WHR-HP-G300N)
+endef
+
+whrhpgn_cmdline=board=WHR-HP-GN console=ttyS0,115200
+define Image/Build/Profile/WHRHPGN
+ $(call Image/Build/Template/$(fs_64k)/$(1),WHRHPG300N,whr-hp-gn,$(whrhpgn_cmdline),whrhpg300n_mtdlayout,WHR-HP-GN)
+endef
+
wzrhpg300nh_cmdline=board=WZR-HP-G300NH console=ttyS0,115200
define Image/Build/Profile/WZRHPG300NH
$(call Image/Build/Template/$(fs_128k)/$(1),WZRHPG30XNH,wzr-hp-g300nh,$(wzrhpg300nh_cmdline),WZR-HP-G300NH)
$(call Image/Build/Template/$(fs_64k)/$(1),Zcomax,zcn-1523h-5-16,$(zcn1523h516_cmdline))
endef
+all0258n_cmdline=board=ALL0258N console=ttyS0,115200
+define Image/Build/Profile/ALL0258N
+ $(call Image/Build/Template/$(fs_64k)/$(1),AthLzma,all0258n,$(all0258n_cmdline),,917504,5505024,KR)
+endef
+
define Image/Build/Profile/Default
+ $(call Image/Build/Profile/ALL0258N,$(1))
$(call Image/Build/Profile/AP121,$(1))
$(call Image/Build/Profile/AP121MINI,$(1))
$(call Image/Build/Profile/AP81,$(1))
$(call Image/Build/Profile/MZKW04NU,$(1))
$(call Image/Build/Profile/MZKW300NH,$(1))
$(call Image/Build/Profile/NBG_460N_550N_550NH,$(1))
+ $(call Image/Build/Profile/OM2P,$(1))
$(call Image/Build/Profile/PB42,$(1))
$(call Image/Build/Profile/PB44,$(1))
$(call Image/Build/Profile/PB92,$(1))
$(call Image/Build/Profile/TLWA901NDV1,$(1))
$(call Image/Build/Profile/TLWA901NDV2,$(1))
$(call Image/Build/Profile/TLWR741NDV1,$(1))
+ $(call Image/Build/Profile/TLWR741NDV4,$(1))
$(call Image/Build/Profile/TLWR740NV1,$(1))
$(call Image/Build/Profile/TLWR740NV3,$(1))
+ $(call Image/Build/Profile/TLWR743NDV1,$(1))
$(call Image/Build/Profile/TLWR841NV15,$(1))
$(call Image/Build/Profile/TLWR841NDV3,$(1))
$(call Image/Build/Profile/TLWR841NDV5,$(1))
$(call Image/Build/Profile/TLWR941NDV3,$(1))
$(call Image/Build/Profile/TLWR941NDV4,$(1))
$(call Image/Build/Profile/TLWR1043NDV1,$(1))
+ $(call Image/Build/Profile/TLWR703NV1,$(1))
$(call Image/Build/Profile/UBNT,$(1))
$(call Image/Build/Profile/WP543,$(1))
$(call Image/Build/Profile/WNDR3700,$(1))
$(call Image/Build/Profile/AP96,$(1))
$(call Image/Build/Profile/WRT400N,$(1))
$(call Image/Build/Profile/WRT160NL,$(1))
+ $(call Image/Build/Profile/WHRG301N,$(1))
+ $(call Image/Build/Profile/WHRHPG300N,$(1))
+ $(call Image/Build/Profile/WHRHPGN,$(1))
$(call Image/Build/Profile/WZRHPG300NH,$(1))
$(call Image/Build/Profile/WZRHPAG300H,$(1))
$(call Image/Build/Profile/ZCN1523H28,$(1))