I'm building a custom OpenWRT for the Alfa TUBE-2HP, a 16MB Flash/64MB RAM device. There are predefined targets for both 8MB and 16MB devices, but there's apparently more differences between the two than just the Flash size: the 8MB option builds both factory and sysupgrade images, but the 16MB option builds only a sysupgrade image (both in my build, and the prebuilt versions available for download). And that image will not install through the Tube's factory web interface - no error is shown, but nothing actually happens. With a serial console connection, I see the message "Bad Magic Number, Maybe is OLD firmware format, Try use OLD firmware format." (And yes, it really says "OLD" in both places!)
I can successfully install the sysupgrade image through the device's bootloader, but that requires opening the case, and using a custom-built serial cable - this is an order of magnitude more work than it ought to be, especially considering that the TUBE-2HP is advertised as being "OpenWRT friendly"! Does anyone know how the process could be made more streamlined?
Here are the two relevant target definitions from target/linux/ar71xx/image/legacy.mk. I don't understand what's going on in these lines well enough to know how to make the 16MB version build a factory image, or if that would even solve the problem.
$(eval $(call SingleProfile,ALFA,64k,TUBE2H8M,tube2h-8M,TUBE2H,ttyATH0,115200,$$(alfa_mtdlayout_8M),1638400,6291456,kernel.image,rootfs.image)) $(eval $(call SingleProfile,AthLzma,64k,TUBE2H16M,tube2h-16M,TUBE2H,ttyATH0,115200,$$(alfa_mtdlayout_16M),KRuImage,65536))