Huawei E8278: already online but failed NDISDUP

Daniel Drake drake at endlessm.com
Tue May 24 16:56:57 UTC 2016


Hi,

I'm trying to get this Huawei E8278s-603 modem working. USB
descriptors after modeswitch:
https://gist.github.com/dsd/12ca05b7d804b69e4572f4aa10497583#file-usb-descriptor-after-mode-switch

Testing with ModemManager git master from today and NM-1.2.2.
ModemManager detects it, but after configuring a connection, it
immediately fails to connect.

This modem is actually more of a WWAN router: it creates a wifi
network, runs a DHCP server, acts as a gateway there, etc. You do not
even need to connect it to a computer, instead you can just connect it
to any USB power source and then clients can get online via the wifi
network.

But in this case I would like to get connected over USB.

Under Windows it seems to be driven entirely as a USB-ethernet device,
I can't find any hints of any modem-like functionality in the shipped
software. The adapter is given an IP in the 192.168.1.x subnet. If the
connection is down, SIM is disconnected, etc, all http requests get
redirected to a web interface at http://192.168.1.1 where modem-like
functions can be managed (APN config, etc).

Under Linux the appropriate huawei_cdc_ncm interface gets created, but
also some serial ports, and ModemManager seems more interested in
driving this as a modem. Here are the logs from plugin:
https://gist.github.com/dsd/12ca05b7d804b69e4572f4aa10497583#file-debug-log-when-modem-is-plugged-in

At this point the modem is actually online (the APN details were
previously set in the router's web interface): the LED state indicates
that, and if I manually bring up the cdc network interface and run a
DHCP client, I get a (local) IP and can get online.

But I'm not able to make this work with NetworkManager/ModemManager.
ModemManager wants me to configure the APN details etc, so I do, but
then it fails immediately when connecting:
https://gist.github.com/dsd/12ca05b7d804b69e4572f4aa10497583#file-debug-log-when-trying-to-connect

AT^NDISDUP=1,1 returns "ERROR" and that seems to halt the process.

Strangely, if I try NDISDUP with a different call ID (AT^NDISDUP=2,1),
I get an ^NDISSTAT report showing that it's now connected, but then
the device immediately disappears from the USB bus, reconnects, and
we're back to square 1.
https://gist.github.com/dsd/12ca05b7d804b69e4572f4aa10497583#file-debug-log-when-sending-ndisdup-with-call-id-2

Same if I wait for the connection to be dropped due to inactivity
(which I can observe on the LED state), and do NDISDUP=1,1 - now the
response is no longer "ERROR", instead it is more positive like in the
above log, but again the device goes away right after...

Any thoughts? How can we make this device work?
Remember that it is actually already online - we just need to make
NM/MM believe that.
Is there a way we can detect this kind of device and just drive it as
simple ethernet?

Thanks
Daniel


More information about the ModemManager-devel mailing list