This makes sysupgrade work on the D-Link DIR-685 after initial factory install.
We create the platform.sh script to support sysupgrade on more targets as we move on with sysupgrade support. Cc: Petr Štetiar <yn...@true.cz> Signed-off-by: Linus Walleij <linus.wall...@linaro.org> --- ChangeLog v2->v3: - Drop the WRGG magic check: after thinking about it this check only MD5-sums the kernel on the sysupgrade images so it is not helpful for checking the stuff we actually write to flash, including the rootfs. So skip it on sysupgrade. ChangeLog v1->v2: - Append metadata to sysupgrade image - Require metadata in platform.sh - Strip comments --- .../gemini/base-files/lib/upgrade/platform.sh | 40 +++++++++++++++++++ target/linux/gemini/image/Makefile | 5 ++- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 target/linux/gemini/base-files/lib/upgrade/platform.sh diff --git a/target/linux/gemini/base-files/lib/upgrade/platform.sh b/target/linux/gemini/base-files/lib/upgrade/platform.sh new file mode 100644 index 000000000000..eaaf9d734e13 --- /dev/null +++ b/target/linux/gemini/base-files/lib/upgrade/platform.sh @@ -0,0 +1,40 @@ +REQUIRE_IMAGE_METADATA=1 + +platform_find_part_size() { + local first dev size erasesize name + while read dev size erasesize name; do + name=${name#'"'}; name=${name%'"'} + [ "$name" = "$1" ] && { + echo "$size" + break + } + done < /proc/mtd +} + +platform_check_image() { + local board=$(board_name) + + case "$board" in + dlink,dir-685 ) + return 0 + ;; + esac + + echo "Sysupgrade is not yet supported on $board." + return 1 +} + +platform_do_upgrade() { + local board=$(board_name) + + v "board=$board" + case "$board" in + dlink,dir-685 ) + PART_NAME=firmware + default_do_upgrade "$ARGV" + ;; + *) + + ;; + esac +} diff --git a/target/linux/gemini/image/Makefile b/target/linux/gemini/image/Makefile index 8fec250f186a..3339cd2467a9 100644 --- a/target/linux/gemini/image/Makefile +++ b/target/linux/gemini/image/Makefile @@ -115,6 +115,7 @@ define Device/Default KERNEL_NAME := zImage KERNEL := kernel-bin | append-dtb BLOCKSIZE := 128k + SUPPORTED_DEVICES := $(subst _,$(comma),$(1)) endef # A reasonable set of default packages handling the NAS type @@ -143,9 +144,11 @@ define Device/dlink_dir-685 DEVICE_PACKAGES := $(GEMINI_NAS_PACKAGES) \ kmod-switch-rtl8366rb swconfig \ kmod-rt2800-pci - IMAGES := factory.bin + IMAGES := factory.bin sysupgrade.bin # Pad to 128k erase blocks with 160 bytes WRGG header IMAGE/factory.bin := append-kernel | pad-offset 128k 160 | append-rootfs | dir685-pad-rootfs | dir685-image + IMAGE/sysupgrade.bin := append-kernel | pad-offset 128k 160 | dir685-image | append-rootfs | dir685-pad-rootfs | append-metadata + SUPPORTED_DEVICES += dlink,dir-685 endef TARGET_DEVICES += dlink_dir-685 -- 2.20.1 _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel