MC7750 libqmi

Dan Williams dcbw at redhat.com
Wed Nov 13 17:46:24 PST 2013


On Wed, 2013-11-13 at 14:26 -0800, Tim Harvey wrote:
> On Wed, Nov 6, 2013 at 12:26 PM, Dan Williams <dcbw at redhat.com> wrote:
> > On Tue, 2013-11-05 at 12:55 -0800, Tim Harvey wrote:
> >> On Tue, Nov 5, 2013 at 7:57 AM, Dan Williams <dcbw at redhat.com> wrote:
> 
> [...]
> 
> >>
> >> root at OpenWrt:/# qmicli -d /dev/cdc-wdm0 --nas-get-system-selection-preference
> >> [/dev/cdc-wdm0] Successfully got system selection preference
> >>         Emergency mode: 'no'
> >>         Mode preference: 'cdma-1x, cdma-1xevdo, lte'
> >>         Band preference: 'bc-0-a-system, bc-0-b-system, bc-1-all-blocks'
> >>         LTE band preference: '13'
> >>         CDMA PRL preference: 'b-side-only'
> >>         Roaming preference: 'any'
> >>         Network selection preference: 'automatic'
> >>         Service domain preference: 'ps-only'
> >>         Service selection preference: 'automatic'
> >> root at OpenWrt:/# qmicli -d /dev/cdc-wdm0
> >> --nas-set-system-selection-preference="cdma-1xevdo"
> >> error: couldn't set operating mode: QMI protocol error (25): 'DeviceUnsupported'
> >>
> >> What can this mean?
> >
> > I think I actually had to use 'modepref' and do it with QCDM.  So, if
> > you've got ModemManager sources, you can:
> >
> > cd libqcdm/test/
> > ./modepref /path/to/qcdm/tty auto-cdma-lte
> >
> > and when it tells you to plug/unplug the device, just rfkill it, or
> > reboot the machine to restart the module.  Then run:
> >
> > ./modepref /path/to/qcdm/tty
> >
> > and make sure it reports 'auto-cdma-lte'.  If not, run the set command
> > again.
> >
> > For me, the qcdm port is /dev/ttyUSB0:
> >
> > $ sudo ./modepref /dev/ttyUSB0
> > Mode preference: CDMA 1x and HDR only
> > HDR revision:    revA
> >
> > Dan
> >
> 
> It took me a while to get ModemManager built where I can attach the
> MC7750.  I'm not sure what QCDM is but it sounds like thats another
> protocol thats perhaps out of the scope of QMI/libqmi?

QCDM is an older protocol used by Qualcomm devices that many current
devices also support.  The changes made via QCDM should be visible with
QMI as well.

> ./modepref /dev/ttyUSB0
> Mode preference: automatic
> HDR revision:    eHRPD

Ok, that means that the modem will rely upon the SIM's preferences for
network access, but it should mean that the device will attach to LTE by
default, unless your SIM is special somehow.

> ./modepref /dev/ttyUSB0 auto-cdma-lte
> Success setting mode to 'auto-cdma-lte': replug your device.

This means you've locked the modem to 1x, EVDO (HDR) and LTE, which
should be fine, because Verizon modems do not roam on UMTS here in the
US/Canada.

> # hotplug device
> ./modepref /dev/ttyUSB0
> Mode preference: CDMA 1x, HDR, and LTE only
> HDR revision:    eHRPD
> 
> Now, after connection I get:
> qmicli -d /dev/cdc-wdm0 --nas-get-system-selection-preference
> [/dev/cdc-wdm0] Successfully got system selection preference
>         Emergency mode: 'no'
>         Mode preference: 'cdma-1x, cdma-1xevdo, lte'
>         Band preference: 'bc-0-a-system, bc-0-b-system, bc-1-all-blocks'
>         LTE band preference: '13'
>         CDMA PRL preference: 'b-side-only'
>         Roaming preference: 'any'
>         Network selection preference: 'automatic'
>         Service domain preference: 'ps-only'
>         Service selection preference: 'automatic'
> 
> 
> qmicli -d /dev/cdc-wdm0 --nas-get-signal-strength
> [/dev/cdc-wdm0] Successfully got signal strength
> Current:
>         Network 'cdma-1x': '-88 dBm'
> Other:
>         Network 'cdma-1x': '-88 dBm'
>         Network 'cdma-1xevdo': '-78 dBm'
> RSSI:
>         Network 'cdma-1x': '-88 dBm'
>         Network 'cdma-1xevdo': '-78 dBm'
> ECIO:
>         Network 'cdma-1x': '-7.0 dBm'
>         Network 'cdma-1xevdo': '-1.0 dBm'
> IO: '-78 dBm'
> SINR: (6) '3.0 dB'

Yeah, also odd to me why LTE doesn't show up.  However, what if you
tried "--nas-network-scan"?

> I still don't understand why I don't see LTE above.  If I try to set
> the selection preference via libqmi (using values from
> qmi_nas_rat_mode_preference_values) it seems that only 'lte' is
> supported:
> qmicli -d /dev/cdc-wdm0 --nas-set-system-selection-preference="umts"
> error: couldn't set operating mode: QMI protocol error (25): 'DeviceUnsupported'
> qmicli -d /dev/cdc-wdm0 --nas-set-system-selection-preference="cdma-1x"
> error: couldn't set operating mode: QMI protocol error (25): 'DeviceUnsupported'
> qmicli -d /dev/cdc-wdm0 --nas-set-system-selection-preference="cdma-1xevdo"
> error: couldn't set operating mode: QMI protocol error (25): 'DeviceUnsupported'
> qmicli -d /dev/cdc-wdm0 --nas-set-system-selection-preference="gsm"
> error: couldn't set operating mode: QMI protocol error (25): 'DeviceUnsupported'
> qmicli -d /dev/cdc-wdm0 --nas-set-system-selection-preference="lte"
> [/dev/cdc-wdm0] System selection preference set successfully; replug
> your device.
> 
> Is the fact that I can't set my preference to anything other than lte
> a libqmi issue?

It might be, but it seems like the device just doesn't like any of the
other modes.  This could be a firmware quirk.

> Now that I believe I've set my preference to lte I see:
> 
> qmicli -d /dev/cdc-wdm0 --nas-get-system-selection-preference
> [/dev/cdc-wdm0] Successfully got system selection preference
>         Emergency mode: 'no'
>         Mode preference: 'umts, lte'
>         Band preference: 'bc-0-a-system, bc-0-b-system, bc-1-all-blocks'
>         LTE band preference: '13'
>         CDMA PRL preference: 'b-side-only'
>         Roaming preference: 'any'
>         Network selection preference: 'automatic'
>         Service domain preference: 'ps-only'
>         Service selection preference: 'automatic'
> root at OpenWrt:/# qmicli -d /dev/cdc-wdm0 --nas-get-signal-info
> [/dev/cdc-wdm0] Successfully got signal info
> HDR:
>         RSSI: '-125 dBm'
>         ECIO: '-2.5 dBm'
>         SINR (8): '9.0 dB'
>         IO: '-106 dBm'

These very low values essentially mean EVDO is disabled.

> LTE:
>         RSSI: '-79 dBm'
>         RSRQ: '-12 dB'
>         RSRP: '-107 dBm'
>         SNR: '6.4 dBm'
> root at OpenWrt:/# qmicli -d /dev/cdc-wdm0 --nas-get-signal-strength
> [/dev/cdc-wdm0] Successfully got signal strength
> Current:
>         Network 'lte': '-79 dBm'
> Other:
>         Network 'cdma-1xevdo': '-125 dBm'
> RSSI:
>         Network 'lte': '-79 dBm'
>         Network 'cdma-1xevdo': '-125 dBm'
> ECIO:
>         Network 'lte': '-31.5 dBm'
>         Network 'cdma-1xevdo': '-2.5 dBm'
> IO: '-106 dBm'
> [12 Nov 2013, 00:51:45] -Warning ** Invalid SINR level '161'
> SINR: (161) '-179769313486231530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0
> dB'
> RSRQ:
>         Network 'lte': '-12 dB'
> SNR:
>         Network 'lte': '12.2 dB'
> RSRP:
>         Network 'lte': '-107 dBm'
> 
> But now I can no longer connect to my provider:
> qmi-network /dev/cdc-wdm0 start
> Loading profile...
>     APN: we01.VZWSTATIC
> Starting network with 'qmicli -d /dev/cdc-wdm0
> --wds-start-network=we01.VZWSTATIC  --client-no-release-cid'...

we01.VZWSTATIC implies that you're using a special APN; do you have some
kind of custom plan with Verizon?

> error: couldn't start network: QMI protocol error (14): 'CallFailed'
> call end reason (3): generic-no-service
> verbose call end reason (3,2001): [cm] no-service
> Saving state... (CID: 3)
> error: network start failed, no packet data handle
> Clearing state...
> 
> Is it possible that my SIM does not allow me to connect via LTE?

That would certainly be one explanation.  The modem simply doesn't think
you have access to the LTE network with your SIM.  Are you sure your SIM
is provisioned with access for the APN you're using?  Does the same SIM
work on other devices with the APN?

Just for testing purposes, what if you try VZWINTERNET for the APN?

Dan

> At this point I can no longer use libqmi to set my preference back to
> 'cdma-1x' or 'cdma-1xevdo' (see above) and have to use ModemManager
> modepref to do so.
> 
> All of the above is using 3.10 kernel, and libqmi v1.6.0.
> 
> Thanks,
> 
> Tim




More information about the libqmi-devel mailing list