primary device changing from boot to boot

Tim Harvey tharvey at
Tue Sep 5 16:38:42 UTC 2017

On Fri, Sep 1, 2017 at 1:22 PM, Dan Williams <dcbw at> wrote:
> On Fri, 2017-09-01 at 13:01 -0700, Tim Harvey wrote:
>> Greetings,
>> I've got a Sierra Wireless HL7588 modem which exposes three ttyACM
>> devs via the cdc_acm driver. The device appears to work fine with
>> ModemManager (1.6.8) but occasionally mm detects the primary device
>> as
>> ttyACM2 instead of the usuall ttyACM0. In this case (detected primary
>> AT interface of ttyACM2), if I've already configured NetworkManager
>> to
>> use /dev/ttyACM0 I can't bring up the modem.
> NM has a "DeviceIdentifier" property on GSM connections partly for this
> reason.  You cannot always guarantee that even if MM *did* detect the
> first exposed TTY as primary, that it's going to be called ttyACM0.
> The kernel is free to name these things whatever it wants, and if
> ttyACM0 is already used it'll pick another one.  I've had this happen
> when some program holds the TTY open and the modem reboots.
> So moral of the story is, don't depend on device names.
> Get the MM device identifier from the modem:
> dbus-send --print-reply --system --dest=org.freedesktop.ModemManager1
> /org/freedesktop/ModemManager1/Modem/0
> org.freedesktop.DBus.Properties.Get
> string:org.freedesktop.ModemManager1.Modem string:DeviceIdentifier
> and then set that string as the DeviceIdentifier in the NetworkManager
> connection for the modem.  That connection will then only ever apply to
> that specific modem.  You can then do things liek "nmcli con up
> <connection mame>" and NM will figure out what device it should use.


This makes sense, but how do I configure NetworkManager to use the
device-id? I don't see it as an available option for type gsm, so
perhaps I need to edit the file in
/etc/NetworkManager/system-connections/mymodem and add it to the 'gsm'
section but maybe I've got larger issues because nm seems to not even
like ttyACM0 for the interface:

root at ventana:~# mmcli -m 0

/org/freedesktop/ModemManager1/Modem/0 (device id
  Hardware |   manufacturer: 'Sierra Wireless'
           |          model: 'HL7588'
           |       revision: 'RHL75xx.V.3.7.151600.201702071034.x7160_1'
           |      supported: 'gsm-umts, lte'
           |        current: 'gsm-umts, lte'
           |   equipment id: '014284000070452'
  System   |         device:
           |        drivers: 'cdc_acm, cdc_ncm'
           |         plugin: 'Generic'
           |   primary port: 'ttyACM0'
           |          ports: 'wwx000011121314 (net), ttyACM0 (at),
wwx000011121316 (net), wwx00001112131a (net), wwx000011121318 (net),
ttyACM2 (at)'
  Numbers  |           own : '+19529136397'
  Status   |           lock: 'none'
           | unlock retries: 'unknown'
           |          state: 'enabled'
           |    power state: 'on'
           |    access tech: 'unknown'
           | signal quality: '0' (cached)
  Modes    |      supported: 'allowed: 2g, 3g, 4g; preferred: none'
           |        current: 'allowed: 2g, 3g, 4g; preferred: none'
  Bands    |      supported: 'unknown'
           |        current: 'unknown'
  IP       |      supported: 'ipv4, ipv6, ipv4v6'
  3GPP     |           imei: '014284000070452'
           |  enabled locks: 'none'
           |    operator id: 'unknown'
           |  operator name: 'unknown'
           |   subscription: 'unknown'
           |   registration: 'idle'
  SIM      |           path: '/org/freedesktop/ModemManager1/SIM/0'

  Bearers  |          paths: 'none'

root at ventana:~# dbus-send --print-reply --system \
   --dest=org.freedesktop.ModemManager1 \
   /org/freedesktop/ModemManager1/Modem/0 \
   org.freedesktop.DBus.Properties.Get \
   string:org.freedesktop.ModemManager1.Modem string:DeviceIdentifier
method return time=1504629466.392532 sender=:1.3 -> destination=:1.25
serial=31 reply_serial=2
   variant       string "6909b49a4d44867387a2b09b8095c579e031874c"

root at ventana:~# nmcli --version
nmcli tool, version 1.2.6

root at ventana:~# nmcli device status
eth0     ethernet  disconnected  --
ttyACM0  gsm       unavailable   --
can0     can       unmanaged     --
lo       loopback  unmanaged     --

root at ventana:~# nmcli connection add type gsm ifname ttyACM0 con-name
mymodem apn vzwinternet
Connection 'mymodem' (ce87bf21-f700-4c61-8165-dda4b6c44ea8) successfully added.

nmcli connection add type gsm ifname ttyACM0 con-name mymodem apn vzwinternet

root at ventana:~# nmcli connection up mymodem
Error: Connection activation failed: No suitable device found for this
^^^^^^ not sure why ttyACM0 isn't acceptable here



More information about the ModemManager-devel mailing list