Adding OpenWrt support for ZTE MF282 aka 3 HuiTube

As promised, I tried it on my MF282. I do get very similar log output, but it works fine with ModemManager. This is the log:

Sat Apr 15 20:27:50 2023 daemon.info ModemManager[3781]: hotplug: add serial interface ttyUSB0: event processed
Sat Apr 15 20:27:50 2023 daemon.debug ModemManager[3781]: hotplug: event reported: action=add, name=ttyUSB0, subsystem=tty
Sat Apr 15 20:27:50 2023 daemon.info ModemManager[3781]: hotplug: interface 'wwan' is set to configure device '/sys/devices/platform/ahb/1b000000.usb/usb1/1-1'
Sat Apr 15 20:27:50 2023 daemon.info ModemManager[3781]: hotplug: now waiting for modem at sysfs path /sys/devices/platform/ahb/1b000000.usb/usb1/1-1
Sat Apr 15 20:27:50 2023 daemon.err ModemManager[3781]: hotplug: modem not detected at sysfs path
Sat Apr 15 20:27:51 2023 daemon.info ModemManager[3834]: hotplug: add serial interface ttyUSB1: event processed
Sat Apr 15 20:27:51 2023 daemon.debug ModemManager[3834]: hotplug: event reported: action=add, name=ttyUSB1, subsystem=tty
Sat Apr 15 20:27:51 2023 daemon.info ModemManager[3834]: hotplug: already waiting for modem at sysfs path /sys/devices/platform/ahb/1b000000.usb/usb1/1-1
Sat Apr 15 20:27:51 2023 daemon.info ModemManager[3874]: hotplug: add serial interface ttyUSB2: event processed
Sat Apr 15 20:27:51 2023 daemon.debug ModemManager[3874]: hotplug: event reported: action=add, name=ttyUSB2, subsystem=tty
Sat Apr 15 20:27:51 2023 daemon.info ModemManager[3874]: hotplug: already waiting for modem at sysfs path /sys/devices/platform/ahb/1b000000.usb/usb1/1-1
Sat Apr 15 20:27:52 2023 daemon.info ModemManager[3911]: hotplug: add network interface wwan0: event processed
Sat Apr 15 20:27:52 2023 daemon.debug ModemManager[3911]: hotplug: event reported: action=add, name=wwan0, subsystem=net
Sat Apr 15 20:27:52 2023 daemon.info ModemManager[3911]: hotplug: already waiting for modem at sysfs path /sys/devices/platform/ahb/1b000000.usb/usb1/1-1
Sat Apr 15 20:27:53 2023 daemon.info ModemManager[3911]: hotplug: add cdc interface cdc-wdm0: custom event processed
Sat Apr 15 20:27:53 2023 daemon.debug ModemManager[3911]: hotplug: event reported: action=add, name=cdc-wdm0, subsystem=usbmisc
Sat Apr 15 20:27:53 2023 daemon.info ModemManager[3911]: hotplug: already waiting for modem at sysfs path /sys/devices/platform/ahb/1b000000.usb/usb1/1-1
Sat Apr 15 20:27:55 2023 daemon.err ModemManager[3781]: hotplug: modem not detected at sysfs path
Sat Apr 15 20:28:00 2023 daemon.err ModemManager[3781]: hotplug: modem not detected at sysfs path
Sat Apr 15 20:28:04 2023 daemon.warn [2437]: <warn>  [ttyUSB0/probe] failed to parse QCDM version info command result: -7
Sat Apr 15 20:28:04 2023 daemon.warn [2437]: <warn>  [ttyUSB0/probe] failed to parse QCDM version info command result: -7
Sat Apr 15 20:28:04 2023 daemon.info [2437]: <info>  [device /sys/devices/platform/ahb/1b000000.usb/usb1/1-1] creating modem with plugin 'zte' and '5' ports
Sat Apr 15 20:28:04 2023 daemon.warn [2437]: <warn>  [plugin/zte] could not grab port ttyUSB0: Cannot add port 'tty/ttyUSB0', unhandled port type
Sat Apr 15 20:28:04 2023 daemon.info [2437]: <info>  [base-manager] modem for device '/sys/devices/platform/ahb/1b000000.usb/usb1/1-1' successfully created
Sat Apr 15 20:28:05 2023 daemon.warn [2437]: <warn>  [modem2] unhandled QMI radio interface '9'
Sat Apr 15 20:28:05 2023 daemon.warn [2437]: <warn>  [modem2] unhandled QMI radio interface '9'
Sat Apr 15 20:28:05 2023 daemon.warn [2437]: <warn>  [modem2] couldn't query SIM slots: QMI SIM slot switch operation not supported
Sat Apr 15 20:28:05 2023 daemon.warn [2437]: <warn>  [modem2/sim1] couldn't load operator identifier: Couldn't get home network: QMI protocol error (16): 'NotProvisioned'
Sat Apr 15 20:28:05 2023 daemon.warn [2437]: <warn>  [modem2/sim1] couldn't load operator name: Couldn't get home network: QMI protocol error (16): 'NotProvisioned'
Sat Apr 15 20:28:05 2023 daemon.warn [2437]: <warn>  [modem2/sim1] couldn't load list of emergency numbers: Failed to parse CRSM query result '+CRSM: 105,129,""'
Sat Apr 15 20:28:05 2023 daemon.warn [2437]: <warn>  [modem2] couldn't load list of own numbers: Couldn't get MSISDN: QMI protocol error (16): 'NotProvisioned'
Sat Apr 15 20:28:06 2023 daemon.err ModemManager[3781]: hotplug: modem not detected at sysfs path
Sat Apr 15 20:28:11 2023 daemon.err ModemManager[3781]: hotplug: modem not detected at sysfs path
Sat Apr 15 20:28:11 2023 daemon.info [2437]: <info>  [modem2] state changed (unknown -> disabled)
Sat Apr 15 20:28:16 2023 daemon.info ModemManager[3781]: hotplug: modem exported successfully at /sys/devices/platform/ahb/1b000000.usb/usb1/1-1
Sat Apr 15 20:28:16 2023 daemon.info ModemManager[3781]: hotplug: setting interface 'wwan' as available
Sat Apr 15 20:29:59 2023 daemon.notice netifd: Interface 'wwan' is setting up now
Sat Apr 15 20:29:59 2023 daemon.notice netifd: wwan (4009): modem available at /org/freedesktop/ModemManager1/Modem/2
Sat Apr 15 20:29:59 2023 daemon.notice netifd: wwan (4009): starting connection with apn 'webaut'...
Sat Apr 15 20:29:59 2023 daemon.info [2437]: <info>  [modem2] simple connect started...
Sat Apr 15 20:29:59 2023 daemon.info [2437]: <info>  [modem2] simple connect state (3/10): enable
Sat Apr 15 20:29:59 2023 daemon.info [2437]: <info>  [modem2] state changed (disabled -> enabling)
Sat Apr 15 20:29:59 2023 daemon.info [2437]: <info>  [modem2] power state updated: on
Sat Apr 15 20:30:00 2023 daemon.info [2437]: <info>  [modem2] simple connect state (4/10): wait to get fully enabled
Sat Apr 15 20:30:00 2023 daemon.info [2437]: <info>  [modem2] state changed (enabling -> enabled)
Sat Apr 15 20:30:00 2023 daemon.info [2437]: <info>  [modem2] simple connect state (5/10): wait after enabled
Sat Apr 15 20:30:01 2023 daemon.info [2437]: <info>  [modem2] 3GPP registration state changed (unknown -> registering)
Sat Apr 15 20:30:01 2023 daemon.info [2437]: <info>  [modem2] 3GPP registration state changed (registering -> home)
Sat Apr 15 20:30:01 2023 daemon.info [2437]: <info>  [modem2] state changed (enabled -> registered)
Sat Apr 15 20:30:01 2023 daemon.info [2437]: <info>  [modem2] simple connect state (6/10): register
Sat Apr 15 20:30:01 2023 daemon.info [2437]: <info>  [modem2] simple connect state (7/10): wait to get packet service state attached
Sat Apr 15 20:30:01 2023 daemon.info [2437]: <info>  [modem2] simple connect state (8/10): bearer
Sat Apr 15 20:30:01 2023 daemon.info [2437]: <info>  [modem2] simple connect state (9/10): connect
Sat Apr 15 20:30:01 2023 daemon.info [2437]: <info>  [modem2] state changed (registered -> connecting)
Sat Apr 15 20:30:01 2023 daemon.info [2437]: <info>  [modem2/bearer1] QMI IPv4 Settings:
Sat Apr 15 20:30:01 2023 daemon.info [2437]: <info>  [modem2/bearer1]     address: 10.14.213.111/27
Sat Apr 15 20:30:01 2023 daemon.info [2437]: <info>  [modem2/bearer1]     gateway: 10.14.213.112
Sat Apr 15 20:30:01 2023 daemon.info [2437]: <info>  [modem2/bearer1]     DNS #1: 213.162.70.25
Sat Apr 15 20:30:01 2023 daemon.info [2437]: <info>  [modem2/bearer1]     DNS #2: 213.162.70.9
Sat Apr 15 20:30:01 2023 daemon.info [2437]: <info>  [modem2/bearer1]        MTU: 1500
Sat Apr 15 20:30:01 2023 daemon.info [2437]: <info>  [modem2/bearer1] couldn't start network: QMI protocol error (14): 'CallFailed'
Sat Apr 15 20:30:01 2023 daemon.info [2437]: <info>  [modem2/bearer1] verbose call end reason (2,214): [internal] unpreferred-rat
Sat Apr 15 20:30:01 2023 daemon.info [2437]: <info>  [modem2/bearer1] reloading stats is supported by the device
Sat Apr 15 20:30:01 2023 daemon.info [2437]: <info>  [modem2] state changed (connecting -> connected)
Sat Apr 15 20:30:02 2023 daemon.info [2437]: <info>  [modem2] simple connect state (10/10): all done
Sat Apr 15 20:30:02 2023 daemon.notice netifd: wwan (4009): successfully connected the modem
Sat Apr 15 20:30:02 2023 daemon.notice netifd: wwan (4009): signal refresh rate is not set
Sat Apr 15 20:30:02 2023 daemon.notice netifd: wwan (4009): network operator name: T-Mobile A
Sat Apr 15 20:30:02 2023 daemon.notice netifd: wwan (4009): network operator MCCMNC: 23203
Sat Apr 15 20:30:02 2023 daemon.notice netifd: wwan (4009): registration type: home
Sat Apr 15 20:30:02 2023 daemon.notice netifd: wwan (4009): access technology: lte
Sat Apr 15 20:30:02 2023 daemon.notice netifd: wwan (4009): signal quality: 70%
Sat Apr 15 20:30:02 2023 daemon.notice netifd: wwan (4009): IPv4 connection setup required in interface wwan: static
Sat Apr 15 20:30:02 2023 daemon.notice netifd: wwan (4009): adding IPv4 address 10.14.213.111, netmask 255.255.255.224
Sat Apr 15 20:30:02 2023 daemon.notice netifd: wwan (4009): adding default IPv4 route via 10.14.213.112
Sat Apr 15 20:30:02 2023 daemon.notice netifd: wwan (4009): adding primary DNS at 213.162.70.25
Sat Apr 15 20:30:02 2023 daemon.notice netifd: wwan (4009): adding secondary DNS at 213.162.70.9
Sat Apr 15 20:30:02 2023 daemon.notice netifd: Interface 'wwan' is now up
Sat Apr 15 20:30:02 2023 daemon.info dnsmasq[1]: reading /tmp/resolv.conf.d/resolv.conf.auto
Sat Apr 15 20:30:02 2023 daemon.info dnsmasq[1]: using nameserver 213.162.70.25#53
Sat Apr 15 20:30:02 2023 daemon.info dnsmasq[1]: using nameserver 213.162.70.9#53
Sat Apr 15 20:30:02 2023 daemon.info dnsmasq[1]: using only locally-known addresses for test
Sat Apr 15 20:30:02 2023 daemon.info dnsmasq[1]: using only locally-known addresses for onion
Sat Apr 15 20:30:02 2023 daemon.info dnsmasq[1]: using only locally-known addresses for localhost
Sat Apr 15 20:30:02 2023 daemon.info dnsmasq[1]: using only locally-known addresses for local
Sat Apr 15 20:30:02 2023 daemon.info dnsmasq[1]: using only locally-known addresses for invalid
Sat Apr 15 20:30:02 2023 daemon.info dnsmasq[1]: using only locally-known addresses for bind
Sat Apr 15 20:30:02 2023 daemon.info dnsmasq[1]: using only locally-known addresses for lan
Sat Apr 15 20:30:02 2023 daemon.notice netifd: Network device 'wwan0' link is up
Sat Apr 15 20:30:03 2023 user.notice firewall: Reloading firewall due to ifup of wwan (wwan0)
Sat Apr 15 20:30:03 2023 daemon.warn odhcpd[1857]: No default route present, overriding ra_lifetime!

And my configuration in /etc/config/network:

config interface 'wwan'
	option proto 'modemmanager'
	option device '/sys/devices/platform/ahb/1b000000.usb/usb1/1-1'
	option apn 'webaut'
	option auth 'none'
	option iptype 'ipv4v6'

Please keep in mind that I'm using ModemManager, you need to install it separately on a default build.

The only difference I found so far is the modem firmware: My Modem uses 1.0.0.B13 while yours has 1.0.0.B08. Maybe that's the culprit?

Hello, thank you for taking the time to look.

I got it to work now with the only exception that I have to restart the modem manually after the system restart, even if I check the "Bring up on boot" box.

Does the automatic start work for you?

I would still be very interested in what is going wrong with QMI Cellular.

ModemManager uses the QMI protocol as well. I had issues with uqmi on an Alcatel HH40V as well, ModemManager would just work.

Auto-Connect works just fine on an MF287+, I didn't try it on the MF282.

I've now integrated the router into my network, let's see if it's stable.

I'm relatively sure that something is wrong with QMI, I would really like to get to the bottom of the problem, unfortunately I still lack some skills, maybe someone who knows better can take care of it, the releases also come with QMI- Cellular and that doesn't work.

I'm going to let my router run like this and see if it's stable and maybe buy another one to play around with.

I find that very interesting because the devices are already available for purchase for 5 euros and the device is very compact.
And an LTE modem is also included, which can certainly find a second life in other devices.

There are so many devices out there that have great hardware and would work well, and instead of making them usable for the long term, the manufacturers/distributors are doing everything they can to produce more junk (sales).

I'm always happy when I meet someone who says "That's still good" and then takes the time to make it usable, even though it doesn't make economic sense.

Thanks again for your support
Kind regards
Michael

1 Like

That's exactly what I thought. They make for very nice access points with the LAN port and the option to plug it directly into the wall.

As main router, I've switched to a MF287+ and will soon upgrade to an MF287Pro when my PR is accepted. I use it as router for my cable connection with automatic LTE failover.

Hi Andy

great work! I'm interested in openwrt for MF282 (drei tube) too. However...

It seems that DreiTube is (maybe) NOT (always) the same as huiTube. I tought that they are the same, as you mentioned on your website (see title: DreiTube/HuiTube).

At least for me it is not the case.

The Device looks identical but based on the Logs found in the serial console, it is a MF282PLUS and Its processor is ARMv7 based.

I also found out the the ram begins at 0x84000000 so an initramfs should be downloaded at this offset.

I could however not boot the generic-initramfs-kernel armv7 from here: https://downloads.openwrt.org/releases/23.05.0-rc3/targets/armsr/armv7/openwrt-23.05.0-rc3-armsr-armv7-generic-initramfs-kernel.bin

after downloading to 0x84000000, when I call "bootm 0x84000000" it says:


Wrong Image Format for bootm command

ERROR: can't get kernel image!

so I am maybe on the wrong path. I could also offer the serial log output

@andyboeh could you help please? Thanks!

I wanted at least to draw attention here that there are different DreiTube models which have a different hardware.

Best Regards!

That looks like different hardware, yes.
Since you seem to have serial access, what does U-Boot report? Or could you post a complete boot log of the OEM firmware?

sure!

I couldn't paste it here, so shared it at this link

I can only see a title and a blank text area?

Hmmmm, weird...

Anyway. I pasted it again here:

Thanks for sharing - that's an IPQ40xx inside, 256MB RAM, 128MB flash. Is the case similar to the regular MF282? The SoC is also used in some other ZTE models, like the MF286, MF287 and MF289. Supporting it should be doable with not too much effort.

1 Like

That would be great!
Yes, it is identical, imho..
I wanted to attach more pictures from the device, but I'm allowed to upload only one.
Maybe you spot a difference to mine?

On the base case sidewise only "Drei." is printed, so no "Hui."
And most probably, on the HuiTube the model on the label is HuiTube, and not DreiTube (but I don't have one to compare)

I'll check on mine in a few days.

I think that yours is rates for 300Mbit LTE speed and the older one for 150Mbit. This is printed on the packaging, I did a search on "willhaben" and tried to spot some differences.

So, you were completely right: If the model reads "DreiTube", it's an IPQ40xx-based device. The firmware and modem are very similar to the ZTE MF286D and I'm currently preparing an OpenWrt port.

The other HuiTubes I have read "3HuiTube" on the bottom and are ath79-based.

1 Like

So I'm basically ready with the OpenWrt port, but: The modem is Marvell PXA1826-based and not Qualcomm-based. Since my device has a SIM-lock (and I do not have provider SIM cards), I cannot enable/test the modem.

I could test it, I have an appropriate sim card here

I just created a PR for this device: https://github.com/openwrt/openwrt/pull/13482

Once you can test the modem, can you please confirm in the PR that it's working for you?

Edit: Snapshot images are now available!

1 Like