ramips: add factory image for ipTIME AX2004M
authorSungbo Eo <mans0n@gorani.run>
Sun, 4 Feb 2024 18:57:27 +0000 (03:57 +0900)
committerSungbo Eo <mans0n@gorani.run>
Sun, 10 Mar 2024 07:32:14 +0000 (16:32 +0900)
Unlike the recovery image, this initramfs-factory image can be flashed
using the stock firmware web interface (from any active boot partition),
as well as the bootloader recovery web page. Drop the recovery image in
favor of the factory image.

Installation via stock/recovery web interface:
1.  Flash **initramfs-factory** image through the web page.
2.  Boot into OpenWrt and perform sysupgrade with sysupgrade image.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
target/linux/ramips/image/mt7621.mk
target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh

index b644d52708dcef7c7c1c4365170ea3a7e9955693..2ab687fd02aebc54982b8437119c328e1f75dc4a 100644 (file)
@@ -1455,8 +1455,8 @@ define Device/iptime_ax2004m
   KERNEL_LOADADDR := 0x82000000
   KERNEL := kernel-bin | relocate-kernel $(loadaddr-y) | lzma | \
        fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
-  IMAGES += recovery.bin
-  IMAGE/recovery.bin := append-kernel | pad-to $$(KERNEL_SIZE) | append-ubi | \
+  ARTIFACTS := initramfs-factory.bin
+  ARTIFACT/initramfs-factory.bin := append-image-stage initramfs-kernel.bin | \
        check-size | iptime-crc32 ax2004m
   DEVICE_VENDOR := ipTIME
   DEVICE_MODEL := AX2004M
@@ -1464,7 +1464,7 @@ define Device/iptime_ax2004m
   DEVICE_COMPAT_VERSION := 2.0
   DEVICE_COMPAT_MESSAGE := NMBM has been newly enabled, and its flash block \
        mapping might be incompatible with existing installation. \
-       New installation via recovery mode is recommended.
+       New installation with factory image via recovery mode is recommended.
 endef
 TARGET_DEVICES += iptime_ax2004m
 
index 40a2fb61dbb9c9eddc6c7b7a02119834643881ed..61517141453b7384ac10f3c84e8b58e96a68dca9 100755 (executable)
@@ -33,6 +33,11 @@ platform_do_upgrade() {
                        fw_setenv --lock / bootImage 0 || exit 1
                fi
                ;;
+       iptime,ax2004m)
+               if [ "$(fw_printenv -n boot_from 2>/dev/null)" != "firmware1" ]; then
+                       fw_setenv boot_from firmware1 || exit 1
+               fi
+               ;;
        mikrotik,ltap-2hnd|\
        mikrotik,routerboard-750gr3|\
        mikrotik,routerboard-760igs|\