Help with telit udev rule please

Bjørn Mork bjorn at mork.no
Fri Nov 20 07:35:49 PST 2015


Tony <tony.makkiel at daqri.com> writes:

> Thank you for the information. What are the other interfaces on
> Interface number 0. It has 2 Interfaces 5(CDC NCM/MBIM (NCM)) and 7
> (CDC NCM/MBIM (MBIM)). Is it a configuration interface?


Quoting the interesting parts:

      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         2 Communications
      bInterfaceSubClass     13
      bInterfaceProtocol      0
      iInterface              5 CDC NCM/MBIM (NCM)

      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         2 Communications
      bInterfaceSubClass     14
      bInterfaceProtocol      0
      iInterface              7 CDC NCM/MBIM (MBIM)



Note that the '5' and '7' are completely irrelevant - those are
arbitrary string descriptor IDs.  And the strings could be anything, so
you should not assume anything based on them.  Although they are quite
precise and correct here.

This is the control interface of a CDC NCM/MBIM function.  This is one
USB interface with two alternate settings.  Each setting corresponds
to a distinct mode:  NCM or MBIM.

If you don't want to mess with anything, then you can stop reading now
:) The defaults, whatever they are, should work fine.

The active mode is selected by the driver.  The cdc_ncm and cdc_mbim
could both handle this function.  Which one ends up doing so depends on
the cdc_ncm 'prefer_mbim' parameter.  If it is true, then cdc_mbim
handles the function.  If it is false, then cdc_ncm will handle it.

You can read the current setting from sysfs:

 bjorn at nemi:~$ cat /sys/module/cdc_ncm/parameters/prefer_mbim 
 Y

and you can also change it on the fly:

 nemi:/tmp# echo n >/sys/module/cdc_ncm/parameters/prefer_mbim
 nemi:/tmp# cat /sys/module/cdc_ncm/parameters/prefer_mbim
 N

or you can do it on module load by doing

  modprobe cdc_ncm prefer_mbim=N

or similar.  Which tends to be more practical, IMHO.

Note that changing the parameter using sysfs won't have any effect on
already bound devices.  You will have to unbind and rebind (or simply
unplug and replug) the modem for the drivers to hand it over between
them.


Bjørn


More information about the ModemManager-devel mailing list