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