QUECTEL EC20/EC21. Several drivers supported, which one is better to use?

José Joseddg92 at gmail.com
Thu Sep 8 15:56:07 UTC 2016


Sure:

root:~# qmicli -d /dev/cdc-wdm0 --dms-get-operating-mode
[/dev/cdc-wdm0] Operating mode retrieved:
        Mode: 'online'
        HW restricted: 'no'
root:~#
root:~# qmicli -d /dev/cdc-wdm0 --dms-read-user-data
[/dev/cdc-wdm0] User data read:
        Size: '0' bytes
        Contents:
rootc:~# qmicli -d /dev/cdc-wdm0 --dms-uim-get-state
error: couldn't get UIM state: QMI protocol error (94): 'NotSupported'
root:~# qmicli -d /dev/cdc-wdm0 --get-service-version-info
[/dev/cdc-wdm0] Supported versions:
        ctl (1.5)
        wds (1.67)
        dms (1.0)
        nas (1.25)
        qos (1.12)
        wms (1.10)
        auth (1.3)
        at (1.2)
        voice (2.1)
        cat2 (2.24)
        uim (1.46)
        pbm (1.4)
        test (1.0)
        loc (2.0)
        sar (1.0)
        ts (1.0)
        tmd (1.0)
        wda (1.16)
        csvt (1.1)
        coex (1.0)
        pdc (1.0)
        rfrpe (1.0)
        dsd (1.0)
        unknown [0x30] (1.0)
        unknown [0x36] (1.0)

By the way, I didn't need to patch libqmi to get those output...

Also, if I patch libqmi to get rid of both ModemManager errors, the
modem still does not work.

On Thu, Sep 8, 2016 at 4:47 PM, Dan Williams <dcbw at redhat.com> wrote:
> On Thu, 2016-09-08 at 10:31 +0200, José  wrote:
>> This is the output of those commands:
>>
>> qmicli -d /dev/cdc-wdm0 --dms-read-user-data
>> [/dev/cdc-wdm0] User data read:
>>         Size: '0' bytes
>>         Contents:
>>
>> qmicli -d /dev/cdc-wdm0 --dms-uim-get-state
>> error: couldn't get UIM state: QMI protocol error (94):
>> 'NotSupported'
>
> So the device lies about the DMS service version.  If it didn't
> actually support them, it would return "InvalidQmiCommand" to both of
> those requests.
>
> Could you grab:
>
> qmicli -d /dev/cdc-wdm0 --get-service-version-info
>
> for me?
>
> Thanks,
> Dan
>
>> On Wed, Sep 7, 2016 at 6:32 PM, Dan Williams <dcbw at redhat.com> wrote:
>> >
>> > On Wed, 2016-09-07 at 17:05 +0200, José  wrote:
>> > >
>> > > Hi Dan,
>> > >
>> > > thanks for your answer.
>> > >
>> > > I compiled libqmi-1.12.6-r0.1.cortexa9hf_vfp_neon.rpm (notice
>> > > that it
>> > > is an older version, it was just simpler on my environment) with
>> > > the
>> > > change you proposed. After that, the command seems to work:
>> > >
>> > > # qmicli -d /dev/cdc-wdm0 --dms-get-operating-mode
>> > > [/dev/cdc-wdm0] Operating mode retrieved:
>> > >         Mode: 'online'
>> > >         HW restricted: 'no'
>> > >
>> > > So is the problem in the modem firmware reporting an older DMS
>> > > that
>> > > what it is really using, or is it in libqmi?
>> > It depends.  There are two options:
>> >
>> > 1) The device lies about its supported DMS version and it actually
>> > supports a newer DMS version, but mis-reports it.  Firmware bug,
>> > but
>> > something we probably have to work around.
>> >
>> > 2) The command is actually supported in DMS 1.0 but the information
>> > we
>> > had indicated it's only supported in 1.1.  libqmi bug, and we can
>> > fix
>> > this.
>> >
>> > To figure this out, let's modify an existing message that clearly
>> > isn't
>> > supported in very early DMS versions.  So change the version in
>> > data/qmi-service-dms.json for the "Read User Data" and "UIM Get
>> > State"
>> > messages to "1.0" and rebuild/reinstall.
>> >
>> > Then, what is the result of:
>> >
>> > qmicli -d /dev/cdc-wdm0 --dms-read-user-data
>> > qmicli -d /dev/cdc-wdm0 --dms-uim-get-state
>> >
>> > Dan
>> >
>> > >
>> > > However, ModemManager still does not work because of the other
>> > > message
>> > > (I recompiled it against the patched libqmi library):
>> > >
>> > > ModemManager[710]: <warn>  couldn't load Supported Bands: 'QMI
>> > > operation failed: Cannot send message: QMI service 'dms' version
>> > > '1.3'
>> > > required, got version '1.0''
>> > > ModemManager[710]: <warn>  Modem couldn't be initialized:
>> > > Couldn't
>> > > check unlock status: Couldn't get SIM lock status after 6 retries
>> > > ModemManager[710]: <info>  Modem: state changed (unknown ->
>> > > failed)
>> > >
>> > > Will this allow a similar fix?
>> > >
>> > > On Wed, Sep 7, 2016 at 4:29 PM, Dan Williams <dcbw at redhat.com>
>> > > wrote:
>> > > >
>> > > >
>> > > > On Wed, 2016-09-07 at 15:33 +0200, José  wrote:
>> > > > >
>> > > > >
>> > > > > Maybe I was wrong. I am trying now with the last versions but
>> > > > > it
>> > > > > is
>> > > > > still not working:
>> > > > >
>> > > > > ModemManager 1.6.0
>> > > > > libqmi-1.16.0-r0.4.cortexa9hf_vfp_neon
>> > > > >
>> > > > > The problem is still reproducible:
>> > > > Interesting; even though it's a recent device, it's still
>> > > > advertising
>> > > > DMS 1.0.
>> > > >
>> > > > It may be that Get Operating Mode was present in DMS 1.0 and we
>> > > > simply
>> > > > don't have any examples of that.  So you could try to modify
>> > > > libqmi
>> > > > and
>> > > > see if that works.
>> > > >
>> > > > Look in data/qmi-service-dms.json and look for "Get Operating
>> > > > Mode".
>> > > >  Change the "1.1" there to "1.0", rebuild, and reinstall
>> > > > libqmi.  Then
>> > > > see if you can run "qmicli -d /dev/cdc-wdm0 --dms-get-
>> > > > operating-
>> > > > mode".
>> > > >  Does that work?
>> > > >
>> > > > Dan
>> > > >
>> > > > >
>> > > > >
>> > > > > ModemManager[995]: <info>  ModemManager (version 1.6.0)
>> > > > > starting
>> > > > > in
>> > > > > system bus...
>> > > > > ModemManager[995]: [/dev/cdc-wdm0] Opening device with flags
>> > > > > 'version-info, proxy'...
>> > > > > ModemManager[995]: cannot connect to proxy: Could not
>> > > > > connect:
>> > > > > Connection refused
>> > > > > ModemManager[995]: spawning new qmi-proxy (try 1)...
>> > > > > ModemManager[995]: [/dev/cdc-wdm0] Checking version info (10
>> > > > > retries)...
>> > > > > ModemManager[995]: [/dev/cdc-wdm0] QMI Device supports 25
>> > > > > services:
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    ctl (1.5)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    wds (1.67)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    dms (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    nas (1.25)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    qos (1.12)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    wms (1.10)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    auth (1.3)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    at (1.2)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    voice (2.1)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    cat2 (2.24)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    uim (1.46)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    pbm (1.4)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    test (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    loc (2.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    sar (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    ts (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    tmd (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    wda (1.16)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    csvt (1.1)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    coex (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    pdc (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    rfrpe (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    dsd (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    unknown [0x30] (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    unknown [0x36] (1.0)
>> > > > > ModemManager[995]: <info>  Creating modem with plugin
>> > > > > 'Generic'
>> > > > > and
>> > > > > '2' ports
>> > > > > ModemManager[995]: <info>  Modem for device at
>> > > > > '/sys/devices/soc0/soc.0/2100000.aips-
>> > > > > bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.3'
>> > > > > successfully created
>> > > > > ModemManager[995]: [/dev/cdc-wdm0] Opening device with flags
>> > > > > 'version-info, proxy'...
>> > > > > ModemManager[995]: [/dev/cdc-wdm0] Checking version info (10
>> > > > > retries)...
>> > > > > ModemManager[995]: [/dev/cdc-wdm0] QMI Device supports 25
>> > > > > services:
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    ctl (1.5)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    wds (1.67)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    dms (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    nas (1.25)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    qos (1.12)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    wms (1.10)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    auth (1.3)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    at (1.2)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    voice (2.1)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    cat2 (2.24)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    uim (1.46)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    pbm (1.4)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    test (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    loc (2.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    sar (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    ts (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    tmd (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    wda (1.16)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    csvt (1.1)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    coex (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    pdc (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    rfrpe (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    dsd (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    unknown [0x30] (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    unknown [0x36] (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0] Reading expected data
>> > > > > format
>> > > > > from:
>> > > > > /sys/class/net/wwan0/qmi/raw_ip
>> > > > > ModemManager[995]: [/dev/cdc-wdm0] Opening device with flags
>> > > > > 'version-info, net-802-3, net-no-qos-header, proxy'...
>> > > > > ModemManager[995]: [/dev/cdc-wdm0] Checking version info (10
>> > > > > retries)...
>> > > > > ModemManager[995]: [/dev/cdc-wdm0] QMI Device supports 25
>> > > > > services:
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    ctl (1.5)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    wds (1.67)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    dms (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    nas (1.25)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    qos (1.12)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    wms (1.10)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    auth (1.3)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    at (1.2)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    voice (2.1)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    cat2 (2.24)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    uim (1.46)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    pbm (1.4)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    test (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    loc (2.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    sar (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    ts (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    tmd (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    wda (1.16)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    csvt (1.1)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    coex (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    pdc (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    rfrpe (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    dsd (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    unknown [0x30] (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0]    unknown [0x36] (1.0)
>> > > > > ModemManager[995]: [/dev/cdc-wdm0] Setting network port data
>> > > > > format...
>> > > > > ModemManager[995]: [/dev/cdc-wdm0] Network port data format
>> > > > > operation
>> > > > > finished
>> > > > > ModemManager[995]: [/dev/cdc-wdm0] Allocating new client
>> > > > > ID...
>> > > > > ModemManager[995]: [/dev/cdc-wdm0] Registered 'dms' (version
>> > > > > 1.0)
>> > > > > client with ID '2'
>> > > > > ModemManager[995]: [/dev/cdc-wdm0] Allocating new client
>> > > > > ID...
>> > > > > ModemManager[995]: [/dev/cdc-wdm0] Registered 'nas' (version
>> > > > > 1.25)
>> > > > > client with ID '3'
>> > > > > ModemManager[995]: [/dev/cdc-wdm0] Allocating new client
>> > > > > ID...
>> > > > > ModemManager[995]: [/dev/cdc-wdm0] Registered 'wms' (version
>> > > > > 1.10)
>> > > > > client with ID '1'
>> > > > > ModemManager[995]: [/dev/cdc-wdm0] Allocating new client
>> > > > > ID...
>> > > > > ModemManager[995]: [/dev/cdc-wdm0] Registered 'uim' (version
>> > > > > 1.46)
>> > > > > client with ID '1'
>> > > > > ModemManager[995]: <warn>  couldn't load Supported Bands:
>> > > > > 'QMI
>> > > > > operation failed: Cannot send message: QMI service 'dms'
>> > > > > version
>> > > > > '1.3'
>> > > > > required, got version '1.0''
>> > > > > ModemManager[995]: <warn>  couldn't load Power State: 'QMI
>> > > > > operation
>> > > > > failed: Cannot send message: QMI service 'dms' version '1.1'
>> > > > > required,
>> > > > > got version '1.0''
>> > > > > ModemManager[995]: <warn>  Modem couldn't be initialized:
>> > > > > Couldn't
>> > > > > check unlock status: Couldn't get SIM lock status after 6
>> > > > > retries
>> > > > > ModemManager[995]: <info>  Modem: state changed (unknown ->
>> > > > > failed)
>> > > > >
>> > > > >
>> > > > > The firmware on the modem is pretty new:
>> > > > >
>> > > > >   Hardware |   manufacturer: 'QUALCOMM INCORPORATED'
>> > > > >            |          model: '0'
>> > > > >            |       revision: 'EC21EFAR02A02M4G  1  [Mar 21
>> > > > > 2016
>> > > > > 11:00:00]'
>> > > > >            |      supported: 'gsm-umts
>> > > > >            |                  lte
>> > > > >            |                  gsm-umts, lte'
>> > > > >            |        current: 'gsm-umts, lte'
>> > > > >            |   equipment id: '861108030008592'
>> > > > >
>> > > > >
>> > > > > Could you provide any help?
>> > > > >
>> > > > > Thanks
>> > > > >
>> > > > > On Wed, Sep 7, 2016 at 11:31 AM, José <Joseddg92 at gmail.com>
>> > > > > wrote:
>> > > > > >
>> > > > > >
>> > > > > >
>> > > > > > Hi Thomas,
>> > > > > >
>> > > > > > thanks for the advice! The EC20 is workign fine. For the
>> > > > > > EC21,
>> > > > > > I
>> > > > > > get
>> > > > > > the following error:
>> > > > > >
>> > > > > > 'QMI operation failed: Cannot send message: QMI service
>> > > > > > 'dms'
>> > > > > > version
>> > > > > > '1.1' required, got version '1.0''
>> > > > > >
>> > > > > > I suspect that can be fixed but just upgrading ModemManager
>> > > > > > or
>> > > > > > libqmi
>> > > > > > (or maybe both). Is that correct?
>> > > > > >
>> > > > > > On Tue, Sep 6, 2016 at 9:51 PM, Thomas Schäfer <tschaefer at t
>> > > > > > -onl
>> > > > > > ine.
>> > > > > > de> wrote:
>> > > > > > >
>> > > > > > >
>> > > > > > >
>> > > > > > > Am Dienstag, 6. September 2016, 17:57:45 schrieb José:
>> > > > > > > >
>> > > > > > > >
>> > > > > > > >
>> > > > > > > > Hi,
>> > > > > > > >
>> > > > > > > > I am planning to test ModemManager with QUECTEL EC20
>> > > > > > > > and
>> > > > > > > > EC21
>> > > > > > > > cellular
>> > > > > > > > modems. These modems support the following drivers:
>> > > > > > > > * USB Serial (option.c)
>> > > > > > > > * CDC ACM
>> > > > > > > > * GobiNet
>> > > > > > > > * QMI WWAN
>> > > > > > > >
>> > > > > > > > What is the best approach for trying to use
>> > > > > > > > ModemManager?
>> > > > > > > QMI WWAN, option.c
>> > > > > > >
>> > > > > > >
>> > > > > > > >
>> > > > > > > >
>> > > > > > > >
>> > > > > > > > Should I
>> > > > > > > > enable all drivers?
>> > > > > > > No.
>> > > > > > >
>> > > > > > >
>> > > > > > > >
>> > > > > > > >
>> > > > > > > >
>> > > > > > > >
>> > > > > > > > Could you recommend which one of those to enable?
>> > > > > > > > Thanks
>> > > > > > > https://sigquit.wordpress.com/2014/06/11/qmiwwan-or-gobin
>> > > > > > > et/
>> > > > > > >
>> > > > > > >
>> > > > > > >
>> > > > > > > I think this blog is still valid.
>> > > > > > >
>> > > > > > >
>> > > > > > > Thomas
>> > > > > _______________________________________________
>> > > > > ModemManager-devel mailing list
>> > > > > ModemManager-devel at lists.freedesktop.org
>> > > > > https://lists.freedesktop.org/mailman/listinfo/modemmanager-d
>> > > > > evel


More information about the ModemManager-devel mailing list