Hello,

Having an odd issue where ModemManager has trouble reading SIM PIN status from 
Sierra MC7750 (Verizon US, LTE+CDMA, QMI interface) modules after a modem reset.


At first system boot, MM has no issue detecting the modem and activating a 
connection. These are in mobile devices, so it's common to lose signal and 
later need to reconnect when back in a coverage area. These modems can be a 
little cranky, and sometimes at this point won't build a data connection after 
repeated attempts (known Qualcomm-level issue according to Sierra), so we have 
a separate process that watches for that and issues a Reset() via the MM DBus 
interface. Reset() on these does a "full power cycle", as if the modem was 
unplugged from USB and plugged back in.


When the device turns back on, during detection NM says it doesn't have a SIM 
object:

​NetworkManager[6651]: <info>  [1539101206.9778] modem-broadband[cdc-wdm1]: 
failed to retrieve SIM object: No SIM object available

MM reports this:
ModemManager[8643]: <warn>  Couldn't load unlock retries: 'Couldn't get unlock 
retries: QMI protocol error (3): 'Internal''
ModemManager[8643]: <warn>  couldn't load list of Own Numbers: 'Couldn't get 
MSISDN: QMI protocol error (25): 'DeviceUnsupported''

Looking into MM debug logs, it's failing the "UIM Get PIN Status" step, the 
first time for IncorrectPin, then Internal QMI error for the rest of the 
retries. The SIMs don't have a PIN we're aware of.

<debug> [1539101547.534249] [mm-iface-modem.c:3902] 
load_current_capabilities_ready(): Setting EPS network as supported
<debug> [1539101547.538395] [mm-iface-modem.c:3928] 
load_current_capabilities_ready(): Checking if multimode device has a SIM...
<debug> [1539101547.542528] [mm-broadband-modem-qmi.c:1845] 
load_unlock_required_context_step(): loading unlock required (DMS)...
[/dev/cdc-wdm1] sent message...
<<<<<< RAW:
<<<<<<   length = 13
<<<<<<   data   = 01:0C:00:00:02:01:00:02:00:2B:00:00:00
[/dev/cdc-wdm1] sent generic request (translated)...
<<<<<< QMUX:
<<<<<<   length  = 12
<<<<<<   flags   = 0x00
<<<<<<   service = "dms"
<<<<<<   client  = 1
<<<<<< QMI:
<<<<<<   flags       = "none"
<<<<<<   transaction = 2
<<<<<<   tlv_length  = 0
<<<<<<   message     = "UIM Get PIN Status" (0x002B)
[/dev/cdc-wdm1] received message...
<<<<<< RAW:
<<<<<<   length = 20
<<<<<<   data   = 01:13:00:80:02:01:02:02:00:2B:00:07:00:02:04:00:01:00:0C:00
[/dev/cdc-wdm1] received generic response (translated)...
<<<<<< QMUX:
<<<<<<   length  = 19
<<<<<<   flags   = 0x80
<<<<<<   service = "dms"
<<<<<<   client  = 1
<<<<<< QMI:
<<<<<<   flags       = "response"
<<<<<<   transaction = 2
<<<<<<   tlv_length  = 7
<<<<<<   message     = "UIM Get PIN Status" (0x002B)
<<<<<< TLV:
<<<<<<   type       = "Result" (0x02)
<<<<<<   length     = 4
<<<<<<   value      = 01:00:0C:00
<<<<<<   translated = FAILURE: IncorrectPin
<debug> [1539101547.550223] [mm-iface-modem.c:268] 
load_unlock_required_ready(): Couldn't check if unlock required: 'Couldn't get 
PIN status: QMI protocol error (12): 'IncorrectPin''
​
(removed retries 1-5 here, they're identical)

<debug> [1539101558.280189] [mm-iface-modem.c:292] 
load_unlock_required_ready(): Retrying (6) unlock required check
<debug> [1539101560.270256] [mm-broadband-modem-qmi.c:1845] 
load_unlock_required_context_step(): loading unlock required (DMS)...
[/dev/cdc-wdm1] sent message...
<<<<<< RAW:
<<<<<<   length = 13
<<<<<<   data   = 01:0C:00:00:02:01:00:08:00:2B:00:00:00
[/dev/cdc-wdm1] sent generic request (translated)...
<<<<<< QMUX:
<<<<<<   length  = 12
<<<<<<   flags   = 0x00
<<<<<<   service = "dms"
<<<<<<   client  = 1
<<<<<< QMI:
<<<<<<   flags       = "none"
<<<<<<   transaction = 8
<<<<<<   tlv_length  = 0
<<<<<<   message     = "UIM Get PIN Status" (0x002B)
[/dev/cdc-wdm1] received message...
<<<<<< RAW:
<<<<<<   length = 20
<<<<<<   data   = 01:13:00:80:02:01:02:08:00:2B:00:07:00:02:04:00:01:00:03:00
[/dev/cdc-wdm1] received generic response (translated)...
<<<<<< QMUX:
<<<<<<   length  = 19
<<<<<<   flags   = 0x80
<<<<<<   service = "dms"
<<<<<<   client  = 1
<<<<<< QMI:
<<<<<<   flags       = "response"
<<<<<<   transaction = 8
<<<<<<   tlv_length  = 7
<<<<<<   message     = "UIM Get PIN Status" (0x002B)
<<<<<< TLV:
<<<<<<   type       = "Result" (0x02)
<<<<<<   length     = 4
<<<<<<   value      = 01:00:03:00
<<<<<<   translated = FAILURE: Internal
<debug> [1539101560.278384] [mm-iface-modem.c:268] 
load_unlock_required_ready(): Couldn't check if unlock required: 'Couldn't get 
PIN status (retry): QMI protocol error (3): 'Internal''
<debug> [1539101560.282222] [mm-iface-modem.c:3864] 
current_capabilities_internal_load_unlock_required_ready(): Multimode device 
without SIM, no 3GPP capabilities



Running (what I think is) the equivalent status command via qmicli directly, it 
looks like it works:

[root@hostname ~]# qmicli -p -d /dev/cdc-wdm1 --dms-uim-get-pin-status
[/dev/cdc-wdm1] PIN status retrieved successfully
[/dev/cdc-wdm1] PIN1:
        Status: disabled
        Verify: 3
        Unblock: 10
[/dev/cdc-wdm1] PIN2:
        Status: enabled-not-verified
        Verify: 3
        Unblock: 10


Here's the odd part - this only happens if the modem is reset while MM is 
running.​ If I do a 'systemctl restart ModemManager' at this point, the 
modem+SIM are detected right away, and all is well.  That's my workaround right 
now, but I'd rather not be restarting services if I can help it: we have 2 
modules in the system (second one is either a MC7700 or MC7354) and restarting 
MM disrupts the other data session. No detection issues from either one of 
those models.


We're using the RHEL7 delivered MM build, 1.6.10, with libqmi 1.18.0.  Both 
appear unmodified according to the RPM specfile, no odd patches, etc.


Any ideas where to look next? Thanks in advance!


-- Brendan Bowden


This message w/attachments (message) is intended solely for the use of the 
intended recipient(s) and may contain information that is privileged, 
confidential or proprietary. If you are not an intended recipient, please 
notify the sender, and then please delete and destroy all copies and 
attachments. Please be advised that any review or dissemination of, or the 
taking of any action in reliance on, the information contained in or attached 
to this message is prohibited.
_______________________________________________
ModemManager-devel mailing list
ModemManager-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel

Reply via email to