After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 696582 - [MM 0.8] SIM object created for modems that don't have one
[MM 0.8] SIM object created for modems that don't have one
Status: RESOLVED FIXED
Product: NetworkManager
Classification: Platform
Component: ModemManager
unspecified
Other Linux
: Normal normal
: ---
Assigned To: NetworkManager maintainer(s)
NetworkManager maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2013-03-25 19:37 UTC by Dan Williams
Modified: 2013-03-27 13:38 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Patch for the issue. (3.65 KB, patch)
2013-03-26 15:45 UTC, Aleksander Morgado
committed Details | Review

Description Dan Williams 2013-03-25 19:37:23 UTC
This happens at least for old Sierra CDMA/EVDO-only cards like the AC580, AC595, and probably most of the other CDMA sierra ones.  The sierra plugin doesn't appear to verify that the device supports a SIM before creating the SIM object, which of course doesn't get the IMSI or anything and is pretty useless.

This also happens with the Pantech plugin for devices like the PX500 and PX600/UM150 which don't have GSM capability either.

And I assume for the Gobi plugin too?

At least for sierra, perhaps something like this mm_common_sierra_create_sim()?

    MMModemCapability capabilities;

    /* Only create SIM objects for 3GPP and newer LTE+CDMA/EVDO devices */
    capabilities = mm_iface_modem_get_current_capabilities (self);
    if (capabilities & MM_MODEM_CAPABILITY_CDMA_EVDO == capabilities) {
        GSimpleAsyncResult *result;
        GError *error;

        result = g_simple_async_result_new (G_OBJECT (self),
                                            callback,
                                            user_data,
                                            mm_common_sierra_create_sim);
        error = g_error_new (blah blah);
        g_simple_async_result_take_error (result, error);
        g_simple_async_result_complete_in_idle (result);
        return;
    }
Comment 1 Dan Williams 2013-03-25 19:44:00 UTC
AC580 (1xRTT only, no EVDO):

ModemManager[1575]: <debug> [1364240477.677847] [mm-serial-port.c:1003] mm_serial_port_close(): (ttyUSB3) device open count is 2 (close)
ModemManager[1575]: <debug> [1364240477.677902] [mm-at-serial-port.c:397] debug_log(): (ttyUSB3): --> 'AT+GCAP<CR>'
ModemManager[1575]: <debug> [1364240477.694309] [mm-at-serial-port.c:397] debug_log(): (ttyUSB3): <-- '<CR><LF>+GCAP: +CIS707-A, +MS, +ES, +DS, +FCLASS<CR><LF><CR><LF>OK<CR><LF>'
ModemManager[1575]: <debug> [1364240477.694477] [mm-broadband-modem.c:1227] supported_modes_gcap_ready(): Device allows (CDMA) 2G network mode
ModemManager[1575]: <debug> [1364240477.694685] [mm-serial-port.c:958] mm_serial_port_open(): (ttyUSB3) device open count is 3 (open)
ModemManager[1575]: <debug> [1364240477.694748] [mm-serial-port.c:1003] mm_serial_port_close(): (ttyUSB3) device open count is 2 (close)
ModemManager[1575]: <debug> [1364240477.694804] [mm-at-serial-port.c:397] debug_log(): (ttyUSB3): --> 'AT!pcstate?<CR>'
ModemManager[1575]: <debug> [1364240477.727338] [mm-at-serial-port.c:397] debug_log(): (ttyUSB3): <-- '<CR><LF>ERROR<CR><LF>'
ModemManager[1575]: <debug> [1364240477.727499] [mm-serial-parsers.c:316] mm_serial_parser_v1_parse(): Got failure code 100: Unknown error
ModemManager[1575]: <warn>  [1364240477.727615] [mm-iface-modem.c:3597] load_power_state_ready(): couldn't load Power State: 'Unknown error'
ModemManager[1575]: <debug> [1364240477.727670] [mm-broadband-modem.c:1147] modem_load_unlock_required(): Skipping unlock check in CDMA-only modem...
ModemManager[1575]: <debug> [1364240477.727715] [mm-serial-port.c:1003] mm_serial_port_close(): (ttyUSB3) device open count is 1 (close)
ModemManager[1575]: <debug> [1364240477.727766] [mm-iface-modem.c:2692] update_lock_info_context_step(): SIM is ready, and no need for the after SIM unlock step...
ModemManager[1575]: <debug> [1364240477.728077] [sierra/mm-sim-sierra.c:128] load_sim_identifier(): loading (Sierra) SIM identifier...
ModemManager[1575]: <debug> [1364240477.728128] [mm-serial-port.c:958] mm_serial_port_open(): (ttyUSB3) device open count is 2 (open)
ModemManager[1575]: <debug> [1364240477.728195] [mm-at-serial-port.c:397] debug_log(): (ttyUSB3): --> 'AT!ICCID?<CR>'
ModemManager[1575]: <debug> [1364240477.759522] [mm-at-serial-port.c:397] debug_log(): (ttyUSB3): <-- '<CR><LF>ERROR<CR><LF>'
ModemManager[1575]: <debug> [1364240477.759700] [mm-serial-parsers.c:316] mm_serial_parser_v1_parse(): Got failure code 100: Unknown error
ModemManager[1575]: <debug> [1364240477.759817] [sierra/mm-sim-sierra.c:128] load_sim_identifier(): loading (Sierra) SIM identifier...
ModemManager[1575]: <debug> [1364240477.759907] [mm-serial-port.c:958] mm_serial_port_open(): (ttyUSB3) device open count is 3 (open)
ModemManager[1575]: <debug> [1364240477.760001] [mm-serial-port.c:1003] mm_serial_port_close(): (ttyUSB3) device open count is 2 (close)
ModemManager[1575]: <debug> [1364240477.760086] [mm-at-serial-port.c:397] debug_log(): (ttyUSB3): --> 'AT!ICCID?<CR>'
ModemManager[1575]: <debug> [1364240477.776276] [mm-at-serial-port.c:397] debug_log(): (ttyUSB3): <-- '<CR><LF>ERROR<CR><LF>'
ModemManager[1575]: <debug> [1364240477.776408] [mm-serial-parsers.c:316] mm_serial_parser_v1_parse(): Got failure code 100: Unknown error
ModemManager[1575]: <warn>  [1364240477.776464] [mm-sim.c:1492] load_sim_identifier_ready(): couldn't load SIM identifier: 'Unknown error'
ModemManager[1575]: <debug> [1364240477.776533] [mm-sim.c:1147] load_imsi(): loading IMSI...
ModemManager[1575]: <debug> [1364240477.776582] [mm-serial-port.c:958] mm_serial_port_open(): (ttyUSB3) device open count is 3 (open)
ModemManager[1575]: <debug> [1364240477.776637] [mm-serial-port.c:1003] mm_serial_port_close(): (ttyUSB3) device open count is 2 (close)
ModemManager[1575]: <debug> [1364240477.776689] [mm-at-serial-port.c:397] debug_log(): (ttyUSB3): --> 'AT+CIMI<CR>'
ModemManager[1575]: <debug> [1364240477.794089] [mm-at-serial-port.c:397] debug_log(): (ttyUSB3): <-- '<CR><LF>ERROR<CR><LF>'
ModemManager[1575]: <debug> [1364240477.794235] [mm-serial-parsers.c:316] mm_serial_parser_v1_parse(): Got failure code 100: Unknown error
ModemManager[1575]: <warn>  [1364240477.794337] [mm-sim.c:1528] load_imsi_ready(): couldn't load IMSI: 'Unknown error'
ModemManager[1575]: <debug> [1364240477.794372] [mm-sim.c:1283] load_operator_identifier(): loading Operator ID...
ModemManager[1575]: <debug> [1364240477.794450] [mm-serial-port.c:958] mm_serial_port_open(): (ttyUSB3) device open count is 3 (open)
ModemManager[1575]: <debug> [1364240477.794516] [mm-serial-port.c:1003] mm_serial_port_close(): (ttyUSB3) device open count is 2 (close)
ModemManager[1575]: <debug> [1364240477.794576] [mm-at-serial-port.c:397] debug_log(): (ttyUSB3): --> 'AT+CRSM=176,28589,0,0,4<CR>'
ModemManager[1575]: <debug> [1364240477.839258] [mm-at-serial-port.c:397] debug_log(): (ttyUSB3): <-- '<CR><LF>ERROR<CR><LF>'
ModemManager[1575]: <debug> [1364240477.839381] [mm-serial-parsers.c:316] mm_serial_parser_v1_parse(): Got failure code 100: Unknown error
ModemManager[1575]: <warn>  [1364240477.839508] [mm-sim.c:1529] load_operator_identifier_ready(): couldn't load Operator identifier: 'Unknown error'
ModemManager[1575]: <debug> [1364240477.839541] [mm-sim.c:1394] load_operator_name(): loading Operator Name...
ModemManager[1575]: <debug> [1364240477.839596] [mm-serial-port.c:958] mm_serial_port_open(): (ttyUSB3) device open count is 3 (open)
ModemManager[1575]: <debug> [1364240477.839655] [mm-serial-port.c:1003] mm_serial_port_close(): (ttyUSB3) device open count is 2 (close)
ModemManager[1575]: <debug> [1364240477.839711] [mm-at-serial-port.c:397] debug_log(): (ttyUSB3): --> 'AT+CRSM=176,28486,0,0,17<CR>'
ModemManager[1575]: <debug> [1364240477.887249] [mm-at-serial-port.c:397] debug_log(): (ttyUSB3): <-- '<CR><LF>ERROR<CR><LF>'
ModemManager[1575]: <debug> [1364240477.888371] [mm-serial-parsers.c:316] mm_serial_parser_v1_parse(): Got failure code 100: Unknown error
ModemManager[1575]: <warn>  [1364240477.889366] [mm-sim.c:1530] load_operator_name_ready(): couldn't load Operator name: 'Unknown error'
Comment 2 Aleksander Morgado 2013-03-26 11:14:25 UTC
mm_iface_modem_is_cdma_only() should cover all the checks that need to be done.
Comment 3 Aleksander Morgado 2013-03-26 15:45:13 UTC
Created attachment 239875 [details] [review]
Patch for the issue.

Instead of adding a Sierra-only fix, just assume in the generic state machine that CDMA-only modems won't have a SIM object (even if there may be some, like the ones with RUIM, but we don't support those yet).
Comment 4 Dan Williams 2013-03-27 13:33:26 UTC
Review of attachment 239875 [details] [review]:

Looks good, prevents SIM object from being created for my Pantech UM150.
Comment 5 Dan Williams 2013-03-27 13:34:09 UTC
I didn't test *with* a SIM-capable modem though, so please do that before committing if you haven't already :)
Comment 6 Aleksander Morgado 2013-03-27 13:38:53 UTC
Tested and pushed.