GNOME Bugzilla – Bug 696582
[MM 0.8] SIM object created for modems that don't have one
Last modified: 2013-03-27 13:38:53 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; }
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'
mm_iface_modem_is_cdma_only() should cover all the checks that need to be done.
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).
Review of attachment 239875 [details] [review]: Looks good, prevents SIM object from being created for my Pantech UM150.
I didn't test *with* a SIM-capable modem though, so please do that before committing if you haven't already :)
Tested and pushed.