Fibocom MA510-GL in QMI mode

Aleksander Morgado aleksander at aleksander.es
Tue Mar 29 14:34:27 UTC 2022


Hey!

>
> I'm currently experimenting to see whether I can bring up the Fibocom
> MA510-GL modem in QMI mode (+GTUSBMODE=30) with ModemManager/libqmi. The
> modem enumerates with VID:PID 05c6:90b2 and after slightly modifying the
> fibocom plugin and udev rules, the modem is talked to by ModemManager.
> However, after a while ModemManager crashes:
>
> Bail out!
> ERROR:../../../../../../workspace/sources/modemmanager/src/mm-shared-qmi.c:1696:mm_shared_qmi_load_supported_modes:
> assertion failed: (priv->current_capabilities)
>
>
> I'm wondering if the modem returns non-standard capability definitions.
> Does anybody know what's going on here?
>

The QMI DMS Get Capabilities message contains the "Info" TLV, and this
TLV is reporting an empty list of radio interfaces supported:

>                                     <<<<<< TLV:
>                                     <<<<<<   type       = "Info" (0x01)
>                                     <<<<<<   length     = 11
>                                     <<<<<<   value      =
> 00:00:00:00:00:00:00:00:04:02:00
>                                     <<<<<<   translated = [
> max_tx_channel_rate = '0' max_rx_channel_rate = '0'
> data_service_capability = 'non-simultaneous-cs-ps' sim_capability =
> 'supported' radio_interface_list = '{}' ]

And so, the mm_current_capability_from_qmi_current_capabilities_context()
method returns MM_MODEM_CAPABILITY_NONE, because we only process the
NAS-obtained info in multimode devices:

> Mar 29 10:50:19 ModemManager[978]: <debug> [1648551019.828818] [modem0]
> Current capabilities built: 'none'
>                                       SSP mode preference: 'gsm, lte'
>                                       TP: 'auto'
>                                       DMS Capabilities: 'none'

Don't know if this issue was introduced by a recent update in the
capabilities handling, but it could be.

The way to fix this would be to update
mm_current_capability_from_qmi_current_capabilities_context() so that
if !ctx->multimode and ctx->dms_capabilities ==
MM_MODEM_CAPABILITY_NONE, then we rely on the capabilities reported by
NAS SSP or NAS TP. Would you be willing to fix that?

Either way, the daemon shouldn't segfault due to this. I've backported
to the 1.18 branch a fix that prevents the crash:
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/commit/9b12af986fcdd341ecfd6c4d38bf5f4392919d81

-- 
Aleksander
https://aleksander.es


More information about the libqmi-devel mailing list