Re: MM: Non QMI Huawei modems without PPP support?



Aleksander Morgado <aleksander lanedo com> writes:

> Hey Bjørn,
>
>> 
>> following up the recent discussions on libqmi regarding E3276 I am
>> wondering if these modems could be supported without too much fuzz by
>> ModemManager?
>> 
>> This is a typical example of such a device (after adding the necessary
>> match to the cdc_ncm driver):
>> 
>> T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  3 Spd=480 MxCh= 0
>> D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
>> P:  Vendor=12d1 ProdID=1506 Rev= 1.02
>> S:  Manufacturer=HUAWEI Technology
>> S:  Product=HUAWEI Mobile
>> C:* #Ifs= 4 Cfg#= 1 Atr=80 MxPwr=500mA
>> I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=02 Prot=12 Driver=option
>> E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
>> E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
>> I:  If#= 1 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=02 Prot=16 Driver=cdc_ncm
>> E:  Ad=82(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
>> I:* If#= 1 Alt= 1 #EPs= 3 Cls=ff(vend.) Sub=02 Prot=16 Driver=cdc_ncm
>> E:  Ad=82(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
>> E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
>> E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
>> I:* If#= 2 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=
>> E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
>> E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
>> I:* If#= 3 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=
>> E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
>> E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
>> 
>> 
>> So, except for the Mass Storage functions, there is only one serial
>> function and one CDC NCM function available.  And according to the
>> Windows drvier inf, the serial function is intended for PCUI.  It is
>> used to manage the CDC NCM function, and may not support PPP at all(?)
>> 
>> Ideally ModemManager should use the wwanX interface for data and the
>> ttyUSBY device for control, using Huawei vendor specific AT commands to
>> initiate and manage the connection.  The known commands specific to
>> network device management are AFAIK
>> 
>> connect:
>> AT^NDISDUP=1,1,"apn"
>> 
>> disconnect:
>> AT^NDISDUP=1,0
>> 
>> check:
>> AT^DHCP?
>> 
>> The last command will return all addresses, but the firmware also
>> support running DHCP over the network interface so using these is not
>> necessary .  The command is still useful to check whether there is an
>> active connection or not.
>> 
>> Is this something which can be supported relatively easy?
>> 
>> I do not know how common these devices are, but the E3276 is relatively
>> new so there might be an increasing demand for this. Based on the
>> Windows driver I expect there are also similar devices with a CDC ECM
>> function instead of NCM, but I have not seen any example of those yet.
>> So I have so far only submitted a patch for cdc_ncm.
>> 
>> 
>
> It should not be very difficult to support these modems.
>
> First, we would need a way to guess whether the huawei modem is one of
> this kind or not. If this modem replies to "AT+CLAC", please send back
> that output.

Since I don't have any such modems, I am hoping Olof or Tommy can help
with this?

> A first try would be to use "AT^NDISDUP=?", assuming that a
> proper reply is given by this modem and not by the others. 

That I am pretty sure will not work.  AT^NDISDUP is implemented in many
other Huawei modems, including some you will want to support via QMI.

> Just
> wondering, we may actually be able to decide this looking at the driver
> reported?

Probably, using some driver based heuristic like

  1) I got a wwanX interface => need some management interface

  2) Look at the driver of wwanX to guess what type of management interface
    to use:

   qmi_wwan => QMI over /dev/cdc-wdmY
   cdc_mbim => MBIM over /dev/cdc-wdmY
   (cdc_ncm or cdc_ether) and Ericsson => AT*ENAP etc over /dev/cdc-wdmY or /dev/ttyACMY
   (cdc_ncm or cdc_ether) and Huawei => AT^NDISDUP etc over /dev/ttyUSBY

And maybe other combinations you already support?  AFAIK, this is pretty
much what you already do e.g. for the Ericsson (aka MBM) modems?
 
> Are you able to run current git master ModemManager to see how the modem
> behaves w.r.t other things like messaging, registration and such? A
> debug log would be very helpful, as well as the output of "mmcli -m 0".

Again, Olof or Tommy?

> Last but not least, if anyone can sponsor a couple of these new devices
> for us to test with, that would be best :-)

Of course.  One could hope the vendors stepped in here.


Bjørn


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]