SIM PIN Unlock Error in MM 1.22.0

Amol Lad Amol.Lad at 4rf.com
Mon Apr 22 09:38:45 UTC 2024


Thanks Aleksander!

The fix works.

Amol
________________________________
From: Aleksander Morgado <aleksandermj at chromium.org>
Sent: Monday, April 22, 2024 2:35 PM
To: Amol Lad <Amol.Lad at 4rf.com>
Cc: ModemManager (development) <modemmanager-devel at lists.freedesktop.org>
Subject: Re: SIM PIN Unlock Error in MM 1.22.0

Hey Amol,

>
> We are getting following error when trying to send pin to the SIM card. The problem is not observed in MM 1.20.4. However, please note that the SIM card does unlocks after the below command even though error is reported.
>
> # mmcli -i 0 --pin=1234
> error: couldn't send PIN code to the SIM: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Failed: Couldn't get interface skeleton'
>
> Now, after looking through the code, following change is causing this issue. This change was not present in 1.20.4
> ----
> mm-broadband-modem-mbim.c:
>     if ((self->priv->enabled_cache.last_ready_state != MBIM_SUBSCRIBER_READY_STATE_DEVICE_LOCKED &&
>          ready_state == MBIM_SUBSCRIBER_READY_STATE_DEVICE_LOCKED) ||
>         (self->priv->enabled_cache.last_ready_state == MBIM_SUBSCRIBER_READY_STATE_DEVICE_LOCKED &&
>          ready_state != MBIM_SUBSCRIBER_READY_STATE_DEVICE_LOCKED)) {
>         mm_obj_dbg (self, "Lock state change detected");
>         active_sim_event = TRUE;
>     }
>
>     self->priv->enabled_cache.last_ready_state = ready_state;
>
>     if (active_sim_event) {
>         mm_iface_modem_process_sim_event (MM_IFACE_MODEM (self));
>     }
> ----
> What is happening is when SIM PIN lock state changes then mm_iface_modem_process_sim_event () is called which eventually calls mm_base_modem_set_reprobe(). The reprobe, "unexports" the current modem instance (modem 0) and recreates a new modem instance (1). As a result, the above mmcli command is reporting error. I'm not sure why this should happen for SIM Lock state change.

I think this has been fixed in MM git main branch; is there any chance
you could test with that? See
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/commit/19fd9c634b8f2876694d18a77a3b686a0c08bf34

--
Aleksander
-------------- next part --------------
Thanks Aleksander!

The fix works.

Amol
________________________________
From: Aleksander Morgado <aleksandermj at chromium.org>
Sent: Monday, April 22, 2024 2:35 PM
To: Amol Lad <Amol.Lad at 4rf.com>
Cc: ModemManager (development) <modemmanager-devel at lists.freedesktop.org>
Subject: Re: SIM PIN Unlock Error in MM 1.22.0

Hey Amol,

>
> We are getting following error when trying to send pin to the SIM card. The problem is not observed in MM 1.20.4. However, please note that the SIM card does unlocks after the below command even though error is reported.
>
> # mmcli -i 0 --pin=1234
> error: couldn't send PIN code to the SIM: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Failed: Couldn't get interface skeleton'
>
> Now, after looking through the code, following change is causing this issue. This change was not present in 1.20.4
> ----
> mm-broadband-modem-mbim.c:
>     if ((self->priv->enabled_cache.last_ready_state != MBIM_SUBSCRIBER_READY_STATE_DEVICE_LOCKED &&
>          ready_state == MBIM_SUBSCRIBER_READY_STATE_DEVICE_LOCKED) ||
>         (self->priv->enabled_cache.last_ready_state == MBIM_SUBSCRIBER_READY_STATE_DEVICE_LOCKED &&
>          ready_state != MBIM_SUBSCRIBER_READY_STATE_DEVICE_LOCKED)) {
>         mm_obj_dbg (self, "Lock state change detected");
>         active_sim_event = TRUE;
>     }
>
>     self->priv->enabled_cache.last_ready_state = ready_state;
>
>     if (active_sim_event) {
>         mm_iface_modem_process_sim_event (MM_IFACE_MODEM (self));
>     }
> ----
> What is happening is when SIM PIN lock state changes then mm_iface_modem_process_sim_event () is called which eventually calls mm_base_modem_set_reprobe(). The reprobe, "unexports" the current modem instance (modem 0) and recreates a new modem instance (1). As a result, the above mmcli command is reporting error. I'm not sure why this should happen for SIM Lock state change.

I think this has been fixed in MM git main branch; is there any chance
you could test with that? See
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/commit/19fd9c634b8f2876694d18a77a3b686a0c08bf34

--
Aleksander


More information about the ModemManager-devel mailing list