Initramfs RAM-boot image for ZTE MF289F

Hello everyone,

I’m currently exploring my ZTE MF289F LTE router. It's a wonderful piece of hardware with a Snapdragon Cat20 modem but it is horribly locked and restricted, probably because of branding - Vodafone.

I would like to install OpenWrt on it but I would prefer to first load it safely from RAM without touching the flash memory — just to confirm that it boots and works correctly before flashing. The device is based on the Qualcomm IPQ4019 (SDX24) platform, and I have full UART access to both U-Boot and the Linux shell.

The firmware selector page for the MF289F (https://firmware-selector.openwrt.org/?version=22.03.4&target=ipq40xx%2Fgeneric&id=zte_mf289f) currently provides only a sysupgrade.bin and a minimal kernel image, but not an initramfs build.

I’d like to kindly ask if someone could build (or guide me to build) an initramfs-uImage for this device, so I can boot OpenWrt via TFTP from RAM.

Here’s what I can provide for reference:

  • Basic info
Model: ZTE MF289F
Chipset: Qualcomm SDX24 / IPQ4019
RAM: 256MB
  • Status information (from my router running with its stock firmware)
SIM Card Number                         — —
IMEI                                    864781050519925
IMEISV                                  3
IMSI                                    202010935297923
Signal Strength                         -96 dBm
LTE Frequency Band(s)                   20.0MHz@2100(B1)+20.0MHz@1800(B3)+20.0MHz@2600(B7)+10.0MHz@1800(B3)
Network Name (2.4GHz Main SSID)         VODAFONE_GigaWiFiHome_7729
Max Access Number (2.4GHz Main SSID)    32
Network Name (5GHz Main SSID)           VODAFONE_GigaWiFiHome_7729
Max Access Number (5GHz Main SSID)      32
Wi-Fi Coverage                          Long Wi-Fi Coverage
IP Address                              192.168.1.1
MAC Address                             C8EAF87CD077
WAN IP Address                          10.7.178.18
Software Version                        CR_VDFGRMF289FV1.0.0B03
Hardware Version                        Ver.A(T2)
  • Software / Boot info

As mentioned, I have UART access to both U-Boot (IPQ40xx) and Linux shell, and have collected full outputs from these commands:

(U-Boot)
help
version
printenv
smeminfo
(Linux)
uname -a
mount
ls -l /
ls -l /proc
cat /proc/cmdline
cat /proc/version
cat /proc/cpuinfo
cat /proc/meminfo
cat /proc/mtd
cat /proc/partitions
cat /proc/filesystems
cat /proc/device-tree/compatible
dmesg | grep -i 'Memory\|CPU\|Board\|Machine'

I have attached this information as text files to this post, together with a complete boot log: https://pastebin.com/DmRkFvVk

My goal is simply to boot OpenWrt temporarily from RAM, test radio and network behavior, and if successful, later proceed to a safe permanent install.

Any help, guidance, or pointers to similar IPQ4019-based initramfs builds would be greatly appreciated.

Thank you all in advance for your effort — OpenWrt is a wonderful project, and I’d love to contribute by documenting this device once we get it running.

— Yanni

Why 22.03, not 24.10 ?

Kernel == initramfs, even the file name says so.

1 Like

Thank you! For some reason I ended up to that search result.

So the file:
https://downloads.openwrt.org/releases/24.10.3/targets/ipq40xx/generic/openwrt-24.10.3-ipq40xx-generic-zte_mf289f-initramfs-zImage.itb

is a complete working openwrt system and not some minimal environment useful for installation or recovery? Can I test LTE and WiFi functionality with that image alone?

It is, but you can install the packages required for modem support.

Wifi should be working OOTB (but it's disabled).

1 Like

Hello again. I managed to install and configure OpenWrt for WiFi, LTE and routing. I 've been running it for a couple of days, looking good so far.

My motivation for using OpenWrt to replace the carrier's environment (my ZTE MF289F was/is Vodafone branded), was to hopefully have control of which band my modem connects to. My signal levels are very low where I live, even with an antenna. So the focus is to find the best single primary cell in the area and make the best out of it.

I'm looking around for how to include/exclude specific bands with no luck so far. I have come across the uqmi tool which seems to be used to control my modem. Although it has many useful and informational commands, I can't seem to find anything related to band inclusion/exclusion. The help output of the specific build of uqmi on my router can be found here: https://pastebin.com/bEiCpuT8

Am I looking in the right place? Does the specific uqmi build lack certain features, perhaps for very good reason? I'm wondering if installing OpenWrt is not enough to offer band selection on this device, and that the interface to my modem is still locked at a very low level.

What are your thoughts? Any help/pointers truly appreciated.

Any users with this specific model (ZTE MF289F), or with similar design using Snapdragon X12/X24 modems? Does it do band selection/locking or is it tightly locked by ZTE's firmware?