Telit LE910 V2, cdc_ncm and systemd

Stelling2 Carsten Carsten.Stelling2 at goerlitz.com
Wed Nov 7 17:39:08 UTC 2018


Hi,

This is the first time I'm using ModemManager.
The type of the modem is Telit LE910 V2 (product ID = 0036), providing cdc_acm, and cdc_ncm ports.
I'm working on an embedded system, running kernel version 4.9.26.
The Init-system is systemd version 232.
Actually I've installed MM version 1.6.4 (which comes with Yocto 2.3).

I can successfully establish a connection to the bearer.

The command mmcli -b 0 outputs:

--------------------------
Status             |    connected: 'yes'
                   |    suspended: 'no'
                   |    interface: 'ttyACM0'
                   |   IP timeout: '20'
--------------------------
Properties         |          apn: '****'
                   |      roaming: 'allowed'
                   |      IP type: 'ipv4'
                   |         user: '****'
                   |     password: '****'
                   |       number: 'none'
                   |         user: '****'
                   |  Rm protocol: 'unknown'
--------------------------
IPv4 configuration |   method: 'ppp'
                   |  address: 'unknown'
                   |   prefix: '0'
                   |  gateway: 'unknown'
                   |      DNS: 'none'
--------------------------
IPv6 configuration |   method: 'unknown'
--------------------------
Stats              |          duration: '300'
                   |    Bytes received: 'N/A'
                   | Bytes transmitted: 'N/A'

If I start my ppp-on script immediately (within the same second) after issuing the command mmcli -m 0 -c -b 0, and receiving the message 'successfully connected the bearer', the PPP connection can be established, and the configured interface ppp0 comes up. The IP connection works fine.

But, when waiting several seconds (5 seconds or more) between mmcli -m 0 -c -b 0 ('successfully connected the bearer') and starting the ppp-on script, the PPP connect attempt always fails. Within /var/log/syslog, I can see the following messages:
pppd[493]: pppd 2.4.7 started by root, uid 0
pppd[493]: using channel 1
pppd[493]: Using interface ppp0
pppd[493]: Connect: ppp0 <--> /dev/ttyACM0
pppd[493]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x081d45a2> <pcomp> <acomp>
pppd[493]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x081d45a2> <pcomp> <acomp>
pppd[493]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x081d45a2> <pcomp> <acomp>
pppd[493]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x081d45a2> <pcomp> <acomp>
pppd[493]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x081d45a2> <pcomp> <acomp>
pppd[493]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x081d45a2> <pcomp> <acomp>
pppd[493]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x081d45a2> <pcomp> <acomp>
pppd[493]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x081d45a2> <pcomp> <acomp>
pppd[493]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x081d45a2> <pcomp> <acomp>
pppd[493]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x081d45a2> <pcomp> <acomp>
pppd[493]: LCP timeout sending Config-Requests

In this case, when opening /dev/ttyACM0 with minicom, I can send AT and get back OK from the modem. That surprise me. I would expect that ttyACM0 is a transparent channel for PPP, and not an AT interface, when successfully connected to the bearer. At the same time, I can see MM communicating with the modem via ttyACM3 (as expected).

I can't see any dependency to the output of mmcli -b 0 Status IP timeout: '20'. Where is this timeout set? Is this the intended behavior of MM or do I miss something?

Another question I have, is there a way to automatically configure the wwan0 (NCM) interface directly, using only systemd mechanisms (no NetworkManager involved)? Telit suggests to use the NCM protocol in conjunction with LTE connections. Is PPP really a bottleneck for LTE connections?

I've tried
[Match]
Name=wwan0

[Network]
DHCP=ipv4

but this does not work. Most probably, because the modem LE910 V2 does not support DHCP (neither QMI or MBIM). ip shows the wwan0 interface, but it is neither configured nor up. 
Does anybody have a working systemd configuration or an idea how to achieve this (without NetworkManager)?

At least, I miss settings for the PDP context ID to use for a specific bearer. With a Vodafone SIM, we have to use a specific PDP context ID to access a private APN. Furthermore, the PDP context is different for 2G and 4G. Is this an undocumented feature of MM?

Thank you for providing this awesome software.
Any help would be very appreciated.

Best regards,

Carsten



More information about the ModemManager-devel mailing list