3

I am trying to get a USB Modem working on my embedded system which uses Linux from Yocto Dunfell with ModemManager and NetworkManager.

As you can see below, I am able to connect the modem on the network but I can't create the connection and bring up the interface.

Here are the outputs of different commands:

root@rpi-cm3:/# mmcli -L
    /org/freedesktop/ModemManager1/Modem/2 [Telit] LE910-EU V2
root@rpi-cm3:/# mmcli -m 2
  --------------------------------
  General  |            dbus path: /org/freedesktop/ModemManager1/Modem/2
           |            device id: d522cda0f436245296a7a9e47c981e9601af3bc7
  --------------------------------
  Hardware |         manufacturer: Telit
           |                model: LE910-EU V2
           |    firmware revision: 20.00.402
           |            supported: gsm-umts, lte
           |              current: gsm-umts, lte
           |         equipment id: 351622072422039
  --------------------------------
  System   |               device: /sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5
           |              drivers: cdc_acm, cdc_ncm
           |               plugin: Telit
           |         primary port: ttyACM0
           |                ports: ttyACM1 (unknown), ttyACM3 (at), ttyACM5 (unknown), 
           |                       wwan0 (net), ttyACM0 (at), ttyACM4 (unknown), ttyACM2 (unknown)
  --------------------------------
  Status   |                state: registered
           |          power state: on
           |          access tech: umts
           |       signal quality: 57% (recent)
  --------------------------------
  Modes    |            supported: allowed: 2g; preferred: none
           |                       allowed: 3g; preferred: none
           |                       allowed: 2g, 3g; preferred: none
           |                       allowed: 4g; preferred: none
           |                       allowed: 2g, 4g; preferred: none
           |                       allowed: 3g, 4g; preferred: none
           |                       allowed: 2g, 3g, 4g; preferred: none
           |              current: allowed: 2g, 3g, 4g; preferred: none
  --------------------------------
  Bands    |            supported: egsm, dcs, utran-1, utran-8, eutran-1, eutran-3, eutran-7, 
           |                       eutran-8, eutran-20
           |              current: egsm, dcs, utran-1, eutran-1
  --------------------------------
  IP       |            supported: ipv4, ipv6, ipv4v6
  --------------------------------
  3GPP     |                 imei: 351622072422039
           |         registration: home
  --------------------------------
  3GPP EPS | ue mode of operation: csps-2
  --------------------------------
  SIM      |            dbus path: /org/freedesktop/ModemManager1/SIM/2
  --------------------------------
  Bearer   |            dbus path: /org/freedesktop/ModemManager1/Bearer/1
root@rpi-cm3:/# mmcli -b 1
  ------------------------
  General    |  dbus path: /org/freedesktop/ModemManager1/Bearer/1
             |       type: default
  ------------------------
  Status     |  connected: no
             |  suspended: no
             | ip timeout: 20
  ------------------------
  Properties |        apn: gprs.swisscom.ch
             |    roaming: allowed
root@rpi-cm3:/# nmcli device show
GENERAL.DEVICE:                         wwan0
GENERAL.TYPE:                           wwan
GENERAL.HWADDR:                         00:00:11:12:13:14
GENERAL.MTU:                            1500
GENERAL.STATE:                          20 (unavailable)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --

GENERAL.DEVICE:                         eth0
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         B8:27:EB:F7:A1:B3
GENERAL.MTU:                            1500
GENERAL.STATE:                          10 (unmanaged)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
WIRED-PROPERTIES.CARRIER:               off
IP4.GATEWAY:                            --
IP6.GATEWAY:                            --
GENERAL.DEVICE:                         lo
GENERAL.TYPE:                           loopback
GENERAL.HWADDR:                         00:00:00:00:00:00
GENERAL.MTU:                            65536
GENERAL.STATE:                          10 (unmanaged)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
IP4.ADDRESS[1]:                         127.0.0.1/8
IP4.GATEWAY:                            --
IP6.ADDRESS[1]:                         ::1/128
IP6.GATEWAY:                            --
root@rpi-cm3:/# nmcli c show
NAME   UUID                                  TYPE  DEVICE 
modem  e7482093-2d4c-47fa-b52b-e6e282902453  gsm   --   
root@rpi-cm3:/# nmcli c up modem
Error: Connection activation failed: No suitable device found for this connection (device lo not available because device is strictly unmanaged).

I am stuck here and I was not able to find information on how to create the connection.

Something strange is that I was not able to configure the NetworkManager to manage the wwan interface automatically, I add to force it with the command:

nmcli dev set wwan0 managed yes

Thank you for your help

Best regards

1 Answer 1

1

Interestingly I am working a similar configuration (yocto dunfell on an am335x-based embedded system with Telit LE910 NA) this very evening. I have not yet been able to get the cdc_ncm (wwan0) context working, but I can get the network up using ppp using

nmcli c add type gsm ifname '*' con-name {connectionname} apn {apnname}

Note this requires adding ppp support to networkmanager, because it's not in the default package. To do this we need an override.

Create networkmanager_%.bbappend:

# Based on https://github.com/digi-embedded/meta-digi/blob/morty/meta-digi-dey/recipes-connectivity/networkmanager/networkmanager_%25.bbappend

FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"

SRC_URI += " \
    file://att.nmconnection \
"

# Adjust other compile time options
PACKAGECONFIG_append = " gnutls modemmanager ppp"

do_install_append() {
    install -m 0600 ${WORKDIR}/att.nmconnection ${D}${sysconfdir}/NetworkManager/system-connections/
}

Then put your connection info in e.g. att.nmconnection. Replace the uuid with a new one and put in your apn name.

[connection]
id=att
uuid=88cd70ea-6501-11eb-ae93-0242ac130002
type=gsm
permissions=
autoconnect=true

[gsm]
apn=NXTGENPHONE

[ipv4]
dns-search=
method=auto

[proxy]

Provided that the modem is visible on boot, this should connect automatically via ppp.

ifconfig ppp0
ppp0      Link encap:Point-to-Point Protocol  
          inet addr:10.55.27.182  P-t-P:10.55.27.182  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1428  Metric:1
          RX packets:65110 errors:0 dropped:0 overruns:0 frame:0
          TX packets:24635 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:53163224 (50.7 MiB)  TX bytes:1670291 (1.5 MiB)

I, too, would like to be using the cdc_ncm interface, but I have not been able to get that to work yet. The driver is ok, but it's not properly linked up with the modem and can't pull an address from the carrier.

ifconfig wwan0
wwan0     Link encap:Ethernet  HWaddr 00:00:11:12:13:14  
          BROADCAST NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Maybe we can figure this out together.

3
  • Sorry for the late answer, I still do not have the solution but I read somewhere that eth0 needs to be managed by network manager and its dhcp to let wwan0 get an IP address. I will try this as soon as possible and let you know the results.
    – Spark15
    Commented Mar 23, 2021 at 12:37
  • unix.stackexchange.com/questions/344587/…
    – Spark15
    Commented Mar 23, 2021 at 12:40
  • I don't know if you still have this problem but here is where I am know: I contacted the supplier of the modem and by setting it in MBIM it goes a little bit further. NetworkManager tries to create the connection but it failed with: NetworkManager[1072]: <warn> [1622112464.7415] modem-broadband[cdc-wdm1]: failed to connect modem: Failure /// NetworkManager[1072]: <info> [1622112464.7416] device (cdc-wdm1): state change: prepare -> failed (reason 'unknown', sys-iface-state: 'managed') /// NetworkManager[1072]: <warn> [1622112464.7444] device (cdc-wdm1): Activation: failed for connection 'LE910'
    – Spark15
    Commented May 27, 2021 at 11:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .