Huawei E392 firmware crash caused by MM issuing "AT*CNTI=2"

Bjørn Mork bjorn at mork.no
Mon Nov 18 00:55:31 PST 2013


Hello,

It's been a while since I last used my E392.  And when I tried today, I
was surprised to find that MM caused the firmware to crash as soon as I
attempted to enable it.

The relevant part of the log goes like this:

ModemManager[29396]: <debug> [1384763552.885863] [mm-serial-port.c:892] mm_serial_port_open(): (ttyUSB1) opening serial port...
ModemManager[29396]: <warn>  [1384763552.889075] [mm-serial-port.c:416] real_config_fd(): (ttyUSB1): port attributes not fully set
ModemManager[29396]: <debug> [1384763552.889181] [mm-serial-port.c:969] mm_serial_port_open(): (ttyUSB1) device open count is 1 (open)
ModemManager[29396]: <debug> [1384763552.889213] [mm-at-serial-port.c:473] mm_at_serial_port_run_init_sequence(): (ttyUSB1): running init sequence...
ModemManager[29396]: <debug> [1384763552.889287] [mm-serial-port.c:969] mm_serial_port_open(): (ttyUSB1) device open count is 2 (open)
ModemManager[29396]: <debug> [1384763552.889345] [mm-serial-port.c:969] mm_serial_port_open(): (ttyUSB1) device open count is 3 (open)
ModemManager[29396]: <debug> [1384763552.889456] [mm-broadband-modem.c:1591] modem_load_supported_modes(): loading supported modes...
ModemManager[29396]: <debug> [1384763552.889504] [mm-serial-port.c:969] mm_serial_port_open(): (ttyUSB1) device open count is 4 (open)
ModemManager[29396]: <debug> [1384763552.889566] [mm-at-serial-port.c:436] debug_log(): (ttyUSB1): --> 'ATE0<CR>'
ModemManager[29396]: <debug> [1384763552.897699] [mm-at-serial-port.c:436] debug_log(): (ttyUSB1): <-- '<CR><LF>OK<CR><LF>'
ModemManager[29396]: <debug> [1384763552.897835] [mm-at-serial-port.c:436] debug_log(): (ttyUSB1): --> 'ATV1<CR>'
ModemManager[29396]: <debug> [1384763552.904627] [mm-at-serial-port.c:436] debug_log(): (ttyUSB1): <-- '<CR><LF>OK<CR><LF>'
ModemManager[29396]: <debug> [1384763552.904731] [mm-at-serial-port.c:436] debug_log(): (ttyUSB1): --> 'AT+CMEE=1<CR>'
ModemManager[29396]: <debug> [1384763552.918543] [mm-at-serial-port.c:436] debug_log(): (ttyUSB1): <-- '<CR><LF>OK<CR><LF>'
ModemManager[29396]: <debug> [1384763552.918660] [mm-at-serial-port.c:436] debug_log(): (ttyUSB1): --> 'ATX4<CR>'
ModemManager[29396]: <debug> [1384763552.926664] [mm-at-serial-port.c:436] debug_log(): (ttyUSB1): <-- '<CR><LF>OK<CR><LF>'
ModemManager[29396]: <debug> [1384763552.926778] [mm-at-serial-port.c:436] debug_log(): (ttyUSB1): --> 'AT&C1<CR>'
ModemManager[29396]: <debug> [1384763552.933783] [mm-at-serial-port.c:436] debug_log(): (ttyUSB1): <-- '<CR><LF>OK<CR><LF>'
ModemManager[29396]: <debug> [1384763552.933890] [mm-at-serial-port.c:436] debug_log(): (ttyUSB1): --> 'ATE0<CR>'
ModemManager[29396]: <debug> [1384763552.943280] [mm-at-serial-port.c:436] debug_log(): (ttyUSB1): <-- '<CR><LF>OK<CR><LF>'
ModemManager[29396]: <debug> [1384763552.943374] [mm-serial-port.c:1015] mm_serial_port_close(): (ttyUSB1) device open count is 3 (close)
ModemManager[29396]: <debug> [1384763552.943438] [mm-at-serial-port.c:436] debug_log(): (ttyUSB1): --> 'AT+CMEE=1<CR>'
ModemManager[29396]: <debug> [1384763552.956182] [mm-at-serial-port.c:436] debug_log(): (ttyUSB1): <-- '<CR><LF>OK<CR><LF>'
ModemManager[29396]: <debug> [1384763552.956281] [mm-serial-port.c:1015] mm_serial_port_close(): (ttyUSB1) device open count is 2 (close)
ModemManager[29396]: <debug> [1384763552.956341] [mm-at-serial-port.c:436] debug_log(): (ttyUSB1): --> 'AT*CNTI=2<CR>'
ModemManager[29396]: <debug> [1384763553.944689] [mm-serial-port.c:752] data_available(): (ttyUSB1) unexpected port hangup!
ModemManager[29396]: <debug> [1384763553.944766] [mm-serial-port.c:1139] mm_serial_port_close_force(): (ttyUSB1) forced to close port
ModemManager[29396]: <debug> [1384763553.944797] [mm-serial-port.c:1015] mm_serial_port_close(): (ttyUSB1) device open count is 0 (close)
ModemManager[29396]: <debug> [1384763553.944830] [mm-serial-port.c:1031] mm_serial_port_close(): (ttyUSB1) closing serial port...
ModemManager[29396]: <debug> [1384763553.944891] [mm-serial-port.c:1064] mm_serial_port_close(): (ttyUSB1) serial port closed
ModemManager[29396]: <debug> [1384763553.944934] [mm-broadband-modem.c:1525] supported_modes_cnti_ready(): Generic query of supported 3GPP networks with *CNTI failed: 'Serial port is now closed'
ModemManager[29396]: <debug> [1384763553.944987] [mm-serial-port.c:892] mm_serial_port_open(): (ttyUSB1) opening serial port...
ModemManager[29396]: <warn>  [1384763553.945084] [mm-serial-port.c:914] mm_serial_port_open(): (ttyUSB1) could not open serial device (19)
ModemManager[29396]: mm_serial_port_close: assertion `priv->open_count > 0' failed
ModemManager[29396]: <debug> [1384763553.945185] [mm-broadband-modem.c:1473] supported_modes_ws46_test_ready(): Generic query of supported 3GPP networks with WS46=? failed: 'Cannot run sequence: 'Could not open serial device ttyUSB1: No such device''


And sure enough: Trying "AT*CNTI=2" (after enabling the SIM with
AT+CPIN=....) in minicom makes the firmware crash, every time.

I see that this command was recently introduced by commit 4901ee8632f91
(" broadband-modem: run *CNTI=2 to when loading supported modes") as an
optional, better(?) alternative to AT+WS46.  FWIW, this is the E392
respons to at+ws46=?:

at+ws46=?
+WS46: (12,22,25,28,29)

OK



I guess the *CNTI command should be blacklisted for Huawei modems, at
least for some firmware versions.  My E392 reports:

ati
Manufacturer: Huawei Technologies Co., Ltd.
Model: E392
Revision: 11.335.13.00.000
IMEI: 860999000023707
+GCAP: +CGSM



Bjørn


More information about the ModemManager-devel mailing list