Adding OpenWrt support for ZTE MF286 3g/4g wifi router

Sure! You have to get UART connection first!

Here are sources:

Just compile ramfs and sysupgrade, first you have to boot ramfs binary and check how it works for you.

After that you can run sysupgrade and install it. Please, be carefull, if you need assistance you can contact me on telegram @pianisteg.

Hi @Leo-PL , I have what I believe is MF286C (it's printed in a few places inside the case). I see a few references here (if I'm not mistaken) that the 286A code should compatible, but I dont find that on supported hardware list. Where do I get the 286A image?
PS. I can only get access to uBoot with console cable - neither of the hacks seemed to work to get a console. (and for everyone - yes, I need CP2102, CHG340 didn't work)
Black chip near aerial port says MF286C-M-V1.0 as per image above
Housing the other side says MF286C-D+W-V1.0
Ethernet ASIC(?) says GS5014, LF, 2201D

Unfortunately, the ToH is often not up-to-date. However, images are available:

https://firmware-selector.openwrt.org/?version=23.05.2&target=ath79%2Fnand&id=zte_mf286a

That's just a transformer, not an ASIC.

Thank you @andyboeh

Now I go hunt for the how to backup old firmware and install new guides.

Hi,
Can someone confirm that I follow the instructions from the 286R version as follows? (Paraphrasing here) - Apologies, this will be my first time with OpenWRT.

  1. console connection and interupt uBoot

  2. Run the following commands to boot from TFTP:
    setenv serverip 192.168.0.22
    setenv ipaddr 192.168.0.1
    tftpboot 0x81000000 openwrt-ath79-nand-zte_mf286a-initramfs-kernel.bin
    bootm 0x81000000

  3. Backup old firmware
    ssh root@192.168.1.1: cat /dev/mtd4 > mtd4_kernel.bin
    ssh root@192.168.1.1: cat /dev/mtd9 > mtd9_ubi.bin

  4. Copy intraframs to flash?
    nandwrite -p /dev/
    /var/usb_disk/openwrt-ath79-zte_mf286a-initramfs-kernel.bin

  5. Actual Install
    scp openwrt-ath79-nand-zte_mf286a-squashfs-sysupgrade.bin
    root@192.168.1.1:/tmp/
    sysupgrade -n /tmp/openwrt-ath79-nand-zte_mf286a-squashfs-sysupgrade.bin

  6. Browse to LuCI URL and follow the GUI

If you boot initramfs from the internal console, you don't need point 4. Simply backup "kernel" and "ubi" partitions and then run sysupgrade.

Thanks. Will give a go over the weekend.

Hi, I seem to be hitting an error booting into initramfs. Any suggestions?
Could it be because i'm doing from a windows machine? Could some encoding be going wonky?

Hit any key to stop autoboot:  0
ath> setenv serverip 192.168.1.5
ath> setenv ipaddr 192.168.1.150
ath> tftpboot 0x81000000 openwrt-23.05.2-ath79-nand-zte_mf286a-initramfs-kernel.bin
Trying eth0
ath_gmac_phy_link
ath_gmac_phy_duplex
ath_gmac_phy_speed
dup 1 speed 1000
Using eth0 device
TFTP from server 192.168.1.5; our IP address is 192.168.1.150
Filename 'openwrt-23.05.2-ath79-nand-zte_mf286a-initramfs-kernel.bin'.
Load address: 0x81000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ##########################################
done
Bytes transferred = 5868112 (598a50 hex)
ath> bootm 0x81000000
## Booting image at 81000000 ...
   Image Name:   MIPS OpenWrt Linux-5.15.137
   Created:      2023-11-14  13:38:11 UTC
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    5868048 Bytes =  5.6 MB
   Load Address: 80060000
   Entry Point:  80060000
   Verifying Checksum at 0x81000040 ...OK
   Uncompressing Kernel Image ... ERROR: LzmaDecode.c, 543

Decoding error = 1
LZMA ERROR 1 - must RESET board to recover
▒

U-Boot 1.1.4 (Jun 24 2021 - 11:56:21)

ap152 - Dragonfly 1.0DRAM:
sri
ath_ddr_initial_config(278): (ddr2 init)
ath_sys_frequency: cpu 775 ddr 650 ahb 258
Tap values = (0xf, 0xf, 0xf, 0xf)
128 MB
Top of RAM usable for U-Boot at: 88000000
Reserving 659k for U-Boot at: 87f58000
Reserving 192k for malloc() at: 87f28000
Reserving 44 Bytes for Board Info at: 87f27fd4
Reserving 36 Bytes for Global Data at: 87f27fb0
Reserving 128k for boot params() at: 87f07fb0
Stack Pointer at: 87f07f98
Now running in RAM - U-Boot at: 87f58000
Flash Manuf Id 0xc8, DeviceId0 0x40, DeviceId1 0x15
flash size 2MB, sector count = 32
Flash:  2 MB
*** Warning - bad CRC, using default environment

Power up PLL with outdiv = 0 then switch to 3
In:    serial
Out:   serial
Err:   serial
Net:   ath_gmac_enet_initialize...
No valid address in Flash. Using fixed address
ath_gmac_enet_initialize: reset mask:c02200
athr_mgmt_init (MDC/MDIO config)::done
Dragonfly  ----> S17 PHY *
athrs17_reg_init: complete
Max resets limit reached exiting...
athr_gmac_sgmii_setup SGMII done
: cfg1 0x80000000 cfg2 0x7114
eth0: 00:03:7f:ff:ff:ff
ath_gmac_phy_setup
eth0 up
eth0
Qualcomm Atheros SPI NAND Driver, Version 0.1 (c) 2014  Qualcomm Atheros Inc.
ath_spi_nand_ecc: furture feat = 0x10
ath_spi_nand_ecc: middle feat = 0x10
zte ath_spi_nand_read_id 0xc8d1
zte ath_spi_nand_read_id 0xc8d1c8
zte debug gd 128 oob
====== NAND Parameters ======
sc addr = 0x87fa6cf0 page(write size) = 0x800 (erase size) block = 0x20000
Setting 0x181162c0 to 0x4b962100
Uaztemain: enter into !
ZTE_InitFotaFlashPara: nand_curr_device=0
zte_getHandOffState: read data=0xff from 0x0
Hit any key to stop autoboot:  0
ath>

If I don't escape autoboot it seems to boot the original firmware

I see there were some commentaries about bit_size in builds so I built my own image and I have got further now. I can boot into initramfs. Backup is proving a problem - insufficient space - so I'm trying to get the USB port working

UPDATE - I was getting too many errors on enabling USB so decided to go without backing up stock. This is a spare device anyway.

I am now at LuCi with a working installation, so I'll take it from here. Thanks all for your help.

Hi,
Follow-up question.
The external aerial options. Are they for WiFi or LTE? And are they supported by the firmware?
I'm looking to boost the WiFi range of the device.
Thanks

They are for LTE and they don't exist for the firmware.

1 Like

5 posts were split to a new topic: MF286D - Install and Unlock

similar question than @camsaway : Is there any internal connection to extend wifi or is wifi just somewhere on a single chip (or in the modem itself)? Searched here: https://openwrt.org/_media/media/zte/mf286d/mf286d-11.jpg

As far as it seems the 5 internal connectors marked 1 to 5 seem to exist for mobile/LTE connection only: https://www.ispreview.co.uk/talk/threads/zte-mf286d-external-antenna.39600/post-318294

Thanks

Wi-Fi uses internal antennas, which are only accessible via MS156 connectors onboard, normally only used for factory testing. These are on the LED side of the board.

I have an MF286C CLARO BR with QCA9563 and mdm9250 snapdragon x16 modem...
Any way to backup stock firmware and install openwrt?

Wi-Fi on mine is 2t2r on both bands...

IIRC the same method and image as for MF286A should work, but they require opening the case. If you can get me the stock boot log from serial console, I could finally get confirmation on that and add support officially. What matters the most is the MTD partition layout.

yes, i already opened the case, i will do soldering of cables to get the serial console in few hours, and send here

You can probably do that without soldering if you have male-to-female jumper cables for your UART - especially given, that this board has huge thermal mass on the ground pad. Holding them in place is enough.