MC7455/EM7455 dependencies and protocols

Tim Harvey tharvey at gateworks.com
Mon Mar 6 22:42:09 UTC 2017


On Sat, Mar 4, 2017 at 4:21 AM, Bjørn Mork <bjorn at mork.no> wrote:
> [starting a new thread with the answers...]

oops - my apologies for hijacking the previous thread.

>
> Tim Harvey <tharvey at gateworks.com> writes:
>
>> Hi Bjørn,
>>
>> Can you tell me more about how you got this modem working? I'm trying
>> to understand:
>> - what Linux drivers are required and do you have to inject new_id's
>> vis sysfs to get them to probe (none of the drivers seem to recognize
>> the 0x1199:0x9079 by default)
>
> Depending on the modem firmware configuration you may need cdc_mbim,
> qmi_wwan and qcserial.
>
> The 9079 PID is Lenovo specific, and AFAIK always in MBIM mode by
> default. The cdc_mbim driver matches on class attributes, so there is no
> need for any device specific IDs.
>
> Wrt non-default configurations, both the 1199:9071 (Sierra default) and
> 1199:9079 (Lenovo ID) were added to the qcserial and qmi_wwan drivers in
> Linux v4.5.
>
>> - what managment and communication dev nodes should be created
>
> Depends on modem firmware configuration.  Typically one or more
> /dev/cdc-wdmX nodes, one or more wwanY netdevs and zero or more
> /dev/ttyUSBz nodes.
>
>> - what libqmi version is required
>
> The latest.
>
>> - what the difference is between mbim and qmi
>
> Different protocols for management and data framing.  No need to worry
> about that.  The drivers and ModemManager will figure it out.
>
> But if you do want to worry, then Google has lots of interesting info :)
>
>> - what the firmware dependencies are, how to tell what firmware I have
>> on them, and how to update if required
>
> ModemManager will tell you the firmware revision regardless of protocols
> and drivers in use.  AFAIK, updating is not required for any
> production MC7455/EM7455.
>
>> I've got an MC7455 as well as an EM7455 on hand to test with but
>> haven't gotten either to be recognized by any of the Linux drivers (at
>> least in 4.4).
>
> You'll need Linux v4.5 or later for QMI on these modems.
>
> And you'll probably need v4.7 or later for MBIM. Or one of the stable
> kernels with a backport of c086e7096170 ("cdc_ncm: workaround for EM7455
> "silent" data interface"), for example v4.4.16 or later.
>

Thank you this was very helpful! I'm glad I asked before spending a
lot of time with Linux 4.4.

I've built a 4.10 kernel and do see the following for the 1199:9079 EM7455
- /dev/cdc-wdm0 management device from cdc_mbim (2 of them for 1199:9071 MC7455)
- wwan0 registered net device from cdc_mbim
- /dev/ttyUSB0,1,2 devices from qcserial

I believe this confirms that the modem is using MBIM. It would seem
that I should be using libmbim/mbimcli but then it also looks like
libqmi has some MBIM support? In fact it looks like libqmi-1.16.0+ has
added support for QMI-over-MBIM (requires libmbim-glib-1.14.0+?)...
perhaps this was to simplify applications like ModemManager so they
only had to worry about one API?

I've built libmbim-1.14.0 and libqmi-1.17.901 (from source tarballs)
and seem to be able to communicate with the modem now (I get sane
responses for things like --dms-get-model) but I still can't connect
without error using qmi-network.

I've queried the following from the MC7455:
# qmicli -d /dev/cdc-wdm0 --dms-get-manufacturer
[/dev/cdc-wdm0] Device manufacturer retrieved:
        Manufacturer: 'Sierra Wireless, Incorporated'
# qmicli -d /dev/cdc-wdm0 --dms-get-model
[/dev/cdc-wdm0] Device model retrieved:
        Model: 'MC7455'
# qmicli -d /dev/cdc-wdm0 --dms-get-operating-mode
[/dev/cdc-wdm0] Operating mode retrieved:
        Mode: 'online'
        HW restricted: 'no'
# qmicli -d /dev/cdc-wdm0 --dms-get-activation-state
[/dev/cdc-wdm0] Activation state retrieved:
        State: 'not-activated'
# qmicli -d /dev/cdc-wdm0 --nas-get-signal-strength
[/dev/cdc-wdm0] Successfully got signal strength
Current:
        Network 'umts': '-81 dBm'
RSSI:
        Network 'umts': '-81 dBm'
ECIO:
        Network 'umts': '-14.0 dBm'
IO: '-106 dBm'
SINR (8): '9.0 dB'
# qmicli -d /dev/cdc-wdm0 --nas-get-signal-info
[/dev/cdc-wdm0] Successfully got signal info
WCDMA:
        RSSI: '-81 dBm'
        ECIO: '-12.0 dBm'

I've set my APN in /etc/qmi-network.conf yet 'qmi-network
/dev/cdc-wdm0 start' fails:
error: couldn't start network: QMI protocol error (14): 'CallFailed'
call end reason (1): generic-unspecified
verbose call end reason (3,2504): [cm] (null)
Saving state at /tmp/qmi-network-state-cdc-wdm0... (CID: 35)
error: network start failed, no packet data handle
Clearing state at /tmp/qmi-network-state-cdc-wdm0...

What is the best method to troubleshoot to determine if the issue is
with the SIM, signal strength, APN configuration, etc?

Regards,

Tim

>
>
> Bjørn


More information about the libqmi-devel mailing list