MC7750 libqmi

Dan Williams dcbw at redhat.com
Wed Nov 6 12:26:20 PST 2013


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:
> > On Tue, 2013-11-05 at 09:36 +0100, Aleksander Morgado wrote:
> >> >
> >> > root at OpenWrt:/# qmicli -d /dev/cdc-wdm0 --nas-get-signal-strength
> >> > [/dev/cdc-wdm0] Successfully got signal strength
> >> > Current:
> >> > Network 'cdma-1x': '-96 dBm'
> >> > Other:
> >> > Network 'cdma-1xevdo': '-63 dBm'
> >> > RSSI:
> >> > Network 'cdma-1x': '-96 dBm'
> >> > Network 'cdma-1xevdo': '-63 dBm'
> >> > ECIO:
> >> > Network 'cdma-1x': '-7.0 dBm'
> >> > Network 'cdma-1xevdo': '9.0 dBm'
> >> > IO: '-52 dBm'
> >> > SINR: (8) '9.0 dB'
> >>
> 
> Ok - got my firmware updated to the latest 3.05.10.09 - thanks for the links!
> 
> >>
> >> Your 'current' network is reported as being CDMA-1x, not even EV-DO. Is
> >> that expected? You can try to tell your module to use EV-DO, which seems
> >> to have better signal, using:
> >
> > Yeah, that's odd; EVDO signal is quite good but the card is using 1X
> > instead.
> >
> >> # qmicli \
> >>   -d /dev/cdc-wdm0 \
> >>   --nas-set-system-selection-preference="cdma-1xevdo"
> >>
> 
> 
> 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

> 
> >>
> >> > root at OpenWrt:/# qmicli -d /dev/cdc-wdm0 --nas-get-serving-system
> >> > [/dev/cdc-wdm0] Successfully got serving system:
> >> > Registration state: 'registered'
> >> > CS: 'attached'
> >> > PS: 'attached'
> >> > Selected network: '3gpp2'
> >> > Radio interfaces: '2'
> >> > [0]: 'cdma-1xevdo'
> >> > [1]: 'cdma-1x'
> >> > Roaming status: '(null)'
> >> > Data service capabilities: '2'
> >> > [0]: 'cdma'
> >> > [1]: 'evdo-rev-a'
> >> > CDMA System ID:
> >> > SID: '40'
> >> > NID: '4'
> >
> > SID/NID presence also indicates CDMA1x, not EVDO.  SID 40 is Verizon,
> > but Tim is apparently in a section of the US where Verizon hasn't
> > deployed LTE yet.
> 
> LTE is deployed here for Verizon - I've been using it on my Verizon
> phone for a couple of years (HTC Thunderbird previously, now Samsung
> Galaxy S4) with reliable 4G and LTE speeds at my current location.
> 
> Is something else configured wrong perhaps on this card?
> 
> >
> >> > CDMA Base station info:
> >> > Base station ID: '5008'
> >> > Latitude: '0.000000'*
> >> > Longitude: '0.000000'*
> >> > Roaming indicators: '2'
> >> > [0]: '(null)' (cdma-1x)
> >> > [1]: '(null)' ((null))
> >> > Default roaming status: '(null)'
> >> > 3GPP2 time zone:
> >> > Leap seconds: '16' seconds
> >> > Local time offset: '-480' minutes
> >> > Daylight saving time: 'no'
> >> > CDMA P_Rev: '6'
> >>
> >>
> >> Can you re-run the previous command passing an additional "--verbose",
> >> and send back the results? I'd like to get rid of those 'null' values
> >> reported.
> 
> here is more verbosity
> 
> root at OpenWrt:/# qmicli -d /dev/cdc-wdm0 --nas-get-serving-system -v
> [05 Aug 2013, 18:59:54] [Debug] QMI Device at '/dev/cdc-wdm0' ready
> [05 Aug 2013, 18:59:54] [Debug] [/dev/cdc-wdm0] Assuming service 'nas'
> is supported...
> [05 Aug 2013, 18:59:54] [Debug] [/dev/cdc-wdm0] Allocating new client ID...
> [05 Aug 2013, 18:59:54] [Debug] [/dev/cdc-wdm0] Sent message...
> <<<<<< RAW:
> <<<<<<   length = 16
> <<<<<<   data   = 01:0F:00:00:00:00:00:01:22:00:04:00:01:01:00:03
> 
> [05 Aug 2013, 18:59:54] [Debug] [/dev/cdc-wdm0] Sent message (translated)...
> <<<<<< QMUX:
> <<<<<<   length  = 15
> <<<<<<   flags   = 0x00
> <<<<<<   service = "ctl"
> <<<<<<   client  = 0
> <<<<<< QMI:
> <<<<<<   flags       = "none"
> <<<<<<   transaction = 1
> <<<<<<   tlv_length  = 4
> <<<<<<   message     = "Allocate CID" (0x0022)
> <<<<<< TLV:
> <<<<<<   type       = "Service" (0x01)
> <<<<<<   length     = 1
> <<<<<<   value      = 03
> <<<<<<   translated = nas
> 
> [05 Aug 2013, 18:59:54] [Debug] [/dev/cdc-wdm0] Received message...
> >>>>>> RAW:
> >>>>>>   length = 24
> >>>>>>   data   = 01:17:00:80:00:00:01:01:22:00:0C:00:02:04:00:00:00:00:00:01:02:00:03:11
> 
> [05 Aug 2013, 18:59:54] [Debug] [/dev/cdc-wdm0] Received message (translated)...
> >>>>>> QMUX:
> >>>>>>   length  = 23
> >>>>>>   flags   = 0x80
> >>>>>>   service = "ctl"
> >>>>>>   client  = 0
> >>>>>> QMI:
> >>>>>>   flags       = "response"
> >>>>>>   transaction = 1
> >>>>>>   tlv_length  = 12
> >>>>>>   message     = "Allocate CID" (0x0022)
> >>>>>> TLV:
> >>>>>>   type       = "Result" (0x02)
> >>>>>>   length     = 4
> >>>>>>   value      = 00:00:00:00
> >>>>>>   translated = SUCCESS
> >>>>>> TLV:
> >>>>>>   type       = "Allocation Info" (0x01)
> >>>>>>   length     = 2
> >>>>>>   value      = 03:11
> >>>>>>   translated = [ service = 'nas' cid = '17' ]
> 
> [05 Aug 2013, 18:59:54] [Debug] [/dev/cdc-wdm0] Registered 'nas'
> (version unknown) client with ID '17'
> [05 Aug 2013, 18:59:54] [Debug] Asynchronously getting serving system...
> [05 Aug 2013, 18:59:54] [Debug] [/dev/cdc-wdm0] Sent message...
> <<<<<< RAW:
> <<<<<<   length = 13
> <<<<<<   data   = 01:0C:00:00:03:11:00:01:00:24:00:00:00
> 
> [05 Aug 2013, 18:59:54] [Debug] [/dev/cdc-wdm0] Sent message (translated)...
> <<<<<< QMUX:
> <<<<<<   length  = 12
> <<<<<<   flags   = 0x00
> <<<<<<   service = "nas"
> <<<<<<   client  = 17
> <<<<<< QMI:
> <<<<<<   flags       = "none"
> <<<<<<   transaction = 1
> <<<<<<   tlv_length  = 0
> <<<<<<   message     = "Get Serving System" (0x0024)
> 
> [05 Aug 2013, 18:59:54] [Debug] [/dev/cdc-wdm0] Received message...
> >>>>>> RAW:
> >>>>>>   length = 108
> >>>>>>   data   = 01:6B:00:80:03:11:02:01:00:24:00:5F:00:02:04:00:00:00:00:00:23:01:00:02:22:03:00:6E:04:8A:21:05:00:02:03:02:01:00:1F:01:00:01:1E:01:00:00:18:01:00:06:17:03:00:10:F0:00:16:01:00:44:15:05:00:02:01:40:02:40:14:0A:00:90:13:00:00:00:00:00:00:00:00:13:04:00:28:00:04:00:11:03:00:02:06:08:10:01:00:40:01:07:00:01:01:01:01:02:01:02
> 
> [05 Aug 2013, 18:59:54] [Debug] [/dev/cdc-wdm0] Received message (translated)...
> >>>>>> QMUX:
> >>>>>>   length  = 107
> >>>>>>   flags   = 0x80
> >>>>>>   service = "nas"
> >>>>>>   client  = 17
> >>>>>> QMI:
> >>>>>>   flags       = "response"
> >>>>>>   transaction = 1
> >>>>>>   tlv_length  = 95
> >>>>>>   message     = "Get Serving System" (0x0024)
> >>>>>> TLV:
> >>>>>>   type       = "Result" (0x02)
> >>>>>>   length     = 4
> >>>>>>   value      = 00:00:00:00
> >>>>>>   translated = SUCCESS
> >>>>>> TLV:
> >>>>>>   type       = "HDR Personality" (0x23)
> >>>>>>   length     = 1
> >>>>>>   value      = 02
> >>>>>>   translated = ehrpd
> >>>>>> TLV:
> >>>>>>   type       = "CDMA System Info" (0x22)
> >>>>>>   length     = 3
> >>>>>>   value      = 6E:04:8A
> >>>>>>   translated = [ mcc = '1134' imsi_11_12 = '138' ]
> >>>>>> TLV:
> >>>>>>   type       = "Detailed Service Status" (0x21)
> >>>>>>   length     = 5
> >>>>>>   value      = 02:03:02:01:00
> >>>>>>   translated = [ status = 'available' capability = 'cs-ps' hdr_status = 'available' hdr_hybrid = 'yes' forbidden = 'no' ]
> >>>>>> TLV:
> >>>>>>   type       = "PRL Indicator 3GPP2" (0x1f)
> >>>>>>   length     = 1
> >>>>>>   value      = 01
> >>>>>>   translated = yes
> >>>>>> TLV:
> >>>>>>   type       = "Concurrent Service Info 3GPP2" (0x1e)
> >>>>>>   length     = 1
> >>>>>>   value      = 00
> >>>>>>   translated = no
> >>>>>> TLV:
> >>>>>>   type       = "CDMA P Rev" (0x18)
> >>>>>>   length     = 1
> >>>>>>   value      = 06
> >>>>>>   translated = 6
> >>>>>> TLV:
> >>>>>>   type       = "Time Zone 3GPP2" (0x17)
> >>>>>>   length     = 3
> >>>>>>   value      = 10:F0:00
> >>>>>>   translated = [ leap_seconds = '16' local_time_offset = '-16' daylight_saving_time = 'no' ]
> >>>>>> TLV:
> >>>>>>   type       = "Default Roaming Indicator" (0x16)
> >>>>>>   length     = 1
> >>>>>>   value      = 44
> >>>>>>   translated = (null)
> >>>>>> TLV:
> >>>>>>   type       = "Roaming Indicator List" (0x15)
> >>>>>>   length     = 5
> >>>>>>   value      = 02:01:40:02:40
> >>>>>>   translated = { [0] = '[ radio_interface = 'cdma-1x' roaming_indicator = '(null)' ] ' [1] = '[ radio_interface = 'cdma-1xevdo' roaming_indicator = '(null)' ] '}
> >>>>>> TLV:
> >>>>>>   type       = "CDMA Base Station Info" (0x14)
> >>>>>>   length     = 10
> >>>>>>   value      = 90:13:00:00:00:00:00:00:00:00
> >>>>>>   translated = [ base_station_id = '5008' base_station_latitude = '0' base_station_longitude = '0' ]
> >>>>>> TLV:
> >>>>>>   type       = "CDMA System ID" (0x13)
> >>>>>>   length     = 4
> >>>>>>   value      = 28:00:04:00
> >>>>>>   translated = [ sid = '40' nid = '4' ]
> >>>>>> TLV:
> >>>>>>   type       = "Data Service Capability" (0x11)
> >>>>>>   length     = 3
> >>>>>>   value      = 02:06:08
> >>>>>>   translated = { [0] = 'cdma ' [1] = 'evdo-rev-a '}
> >>>>>> TLV:
> >>>>>>   type       = "Roaming Indicator" (0x10)
> >>>>>>   length     = 1
> >>>>>>   value      = 40
> >>>>>>   translated = (null)
> >>>>>> TLV:
> >>>>>>   type       = "Serving System" (0x01)
> >>>>>>   length     = 7
> >>>>>>   value      = 01:01:01:01:02:01:02
> >>>>>>   translated = [ registration_state = 'registered' cs_attach_state = 'attached' ps_attach_state = 'attached' selected_network = '3gpp2' radio_interfaces = '{ [0] = 'cdma-1x ' [1] = 'cdma-1xevdo '}' ]
> 
> [/dev/cdc-wdm0] Successfully got serving system:
>         Registration state: 'registered'
>         CS: 'attached'
>         PS: 'attached'
>         Selected network: '3gpp2'
>         Radio interfaces: '2'
>                 [0]: 'cdma-1x'
>                 [1]: 'cdma-1xevdo'
>         Roaming status: '(null)'
>         Data service capabilities: '2'
>                 [0]: 'cdma'
>                 [1]: 'evdo-rev-a'
>         CDMA System ID:
>                 SID: '40'
>                 NID: '4'
>         CDMA Base station info:
>                 Base station ID: '5008'
>                 Latitude: '0.000000'*
>                 Longitude: '0.000000'*
>         Roaming indicators: '2'
>                 [0]: '(null)' (cdma-1x)
>                 [1]: '(null)' (cdma-1xevdo)
>         Default roaming status: '(null)'
>         3GPP2 time zone:
>                 Leap seconds: '16' seconds
>                 Local time offset: '-480' minutes
>                 Daylight saving time: 'no'
>         CDMA P_Rev: '6'
>         3GPP2 concurrent service info: 'not available'
>         3GPP2 PRL indicator: 'system in PRL'
>         Detailed status:
>                 Status: 'available'
>                 Capability: 'cs-ps'
>                 HDR Status: 'available'
>                 HDR Hybrid: 'yes'
>                 Forbidden: 'no'
>         CDMA system info:
>                 MCC: '1134'
>                 IMSI_11_12: '138'
>         HDR personality: 'ehrpd'
> [05 Aug 2013, 18:59:54] [Debug] [/dev/cdc-wdm0] Unregistered 'nas'
> client with ID '17'
> [05 Aug 2013, 18:59:54] [Debug] [/dev/cdc-wdm0] Sent message...
> <<<<<< RAW:
> <<<<<<   length = 17
> <<<<<<   data   = 01:10:00:00:00:00:00:02:23:00:05:00:01:02:00:03:11
> 
> [05 Aug 2013, 18:59:54] [Debug] [/dev/cdc-wdm0] Sent message (translated)...
> <<<<<< QMUX:
> <<<<<<   length  = 16
> <<<<<<   flags   = 0x00
> <<<<<<   service = "ctl"
> <<<<<<   client  = 0
> <<<<<< QMI:
> <<<<<<   flags       = "none"
> <<<<<<   transaction = 2
> <<<<<<   tlv_length  = 5
> <<<<<<   message     = "Release CID" (0x0023)
> <<<<<< TLV:
> <<<<<<   type       = "Release Info" (0x01)
> <<<<<<   length     = 2
> <<<<<<   value      = 03:11
> <<<<<<   translated = [ service = 'nas' cid = '17' ]
> 
> [05 Aug 2013, 18:59:54] [Debug] [/dev/cdc-wdm0] Received message...
> >>>>>> RAW:
> >>>>>>   length = 24
> >>>>>>   data   = 01:17:00:80:00:00:01:02:23:00:0C:00:02:04:00:00:00:00:00:01:02:00:03:11
> 
> [05 Aug 2013, 18:59:54] [Debug] [/dev/cdc-wdm0] Received message (translated)...
> >>>>>> QMUX:
> >>>>>>   length  = 23
> >>>>>>   flags   = 0x80
> >>>>>>   service = "ctl"
> >>>>>>   client  = 0
> >>>>>> QMI:
> >>>>>>   flags       = "response"
> >>>>>>   transaction = 2
> >>>>>>   tlv_length  = 12
> >>>>>>   message     = "Release CID" (0x0023)
> >>>>>> TLV:
> >>>>>>   type       = "Result" (0x02)
> >>>>>>   length     = 4
> >>>>>>   value      = 00:00:00:00
> >>>>>>   translated = SUCCESS
> >>>>>> TLV:
> >>>>>>   type       = "Release Info" (0x01)
> >>>>>>   length     = 2
> >>>>>>   value      = 03:11
> >>>>>>   translated = [ service = 'nas' cid = '17' ]
> 
> [05 Aug 2013, 18:59:55] [Debug] Client released
> 
> >
> > I saw a bunch of odd ones yesterday with the CDMA MCC/MNC reporting, but
> > didn't have time to dig into them.  The digits are clearly off in the
> > QMI response for get-serving-system and get-system-info, but in
> > different ways.  Not sure it's worth looking at those, but the NULL ones
> > here for the ERI might be worthwhile.
> >
> >>
> >> > root at OpenWrt:/# qmicli -d /dev/cdc-wdm0 --nas-get-signal-info
> >> > error: couldn't get signal info: QMI protocol error (71): 'InvalidQmiCommand'
> >> >
> >> > I believe I recall --nas-get-signal-info working in the past - perhaps
> >> > this was changed between libqmi v1.0 and what I'm on now (v1.6)?
> >> >
> >>
> >> Nope, libqmi wasn't changed in that regard. --nas-get-signal-info is
> >> only available if your NAS service version is new enough (1.8 IIRC); you
> >> can check which service versions you have with:
> >
> > Likely because his firmware is so old; the 3.x 7750 firmware *does*
> > support GetSignalInfo.
> 
> yes - it was the firmware.  Now I get:
> 
> root at OpenWrt:/# qmicli -d /dev/cdc-wdm0 --nas-get-signal-info
> [/dev/cdc-wdm0] Successfully got signal info
> CDMA:
>         RSSI: '-91 dBm'
>         ECIO: '-7.0 dBm'
> HDR:
>         RSSI: '-98 dBm'
>         ECIO: '-5.0 dBm'
>         SINR (7): '6.0 dB'
>         IO: '-93 dBm'
> 
> The MC7750 supports LTE - how come I only see 'cdma-1x', and
> 'cdma-1xevdo' in the signal strength output?   Perhaps this indicates
> again something is turned off for this card?
> 
> Since updating the firmware my connection seems more reliable but I
> have yet to do any performance or long-term tests.
> 
> Thanks for all the help,
> 
> Tim
> 
> >
> > Dan
> >




More information about the libqmi-devel mailing list