Custom AT command support in ModemManager
Jose, Shijo
Shijo.Jose at hughes.com
Thu Aug 17 00:45:24 UTC 2017
>> I just realized you're working with a MBIM modem. So the "No AT port
>> available to run command" may actually mean there is no AT port
>> detected in the modem. Are you able to see a TTY listed in the
>> "System/ports" entry when you do "mmcli -m 0"?
No, I do not see TTY listed. Snippet of "mmcli -m 0" below -
Hardware | manufacturer: 'Generic'
| model: 'MBIM [1BC7:1204]'
| revision: '17.01.571'
| supported: 'gsm-umts, lte'
| current: 'gsm-umts, lte'
| equipment id: '35323806113733'
-------------------------
System | device: '/sys/devices/platform/soc/soc:internal-regs/d005e000.usb/usb1/1-1'
| drivers: 'cdc_mbim'
| plugin: 'Generic'
| primary port: 'cdc-wdm0'
| ports: 'cdc-wdm0 (mbim), wwan0 (net)'
>Also, we'd generally discourage enabling custom AT commands in most situations. Instead, we'd like to learn more about your use-case and see if we can come up with a more >generic way to do >what you want to do. It may well be the case that what you want to do has an analogue in the other protocols like MBIM and QMI, and thus we could expose >that functionality generically via D-Bus >rather than doing one-off things for specific modems.
One of the custom (vendor) AT commands is to switch the firmware (i.e. reboot using a different firmware) on the LTE modem based on the SIM card information (operator type). Another one (#USBCFG) is to change the USB configuration mode (such as, enable MBIM) on the modem device.
I may also need some standard AT commands such as +CRSM to query certain SIM fields such as APN stored on the SIM, +CGQREQ/ +CGEQOS for quality of service profile and +CGDCONTRDP for PDP Context Parameters.
Just a note that the product is a Telit LTE modem hard-wired to a processor via USB2.0 HS. The requirement is to select the appropriate protocol (MBIM/QMI/PPP) which will provide a control and data path for one or more PDP contexts and also monitor all modem and connection statistics and share this information with other processes or update SNMP MIBs. I am also looking at way for ModemManager to share updates with other processes.
> > I don't see my device (cdc-wdm0) in this list when it is already
> > plugged in when the host powers up. How is this list(events.cache)
> > populated?
> >
>
> See:
> https://bitbucket.org/aleksander0m/modemmanager-openwrt/src/8c553f2a1
> c090abf4da0f4e762ab6cec22d00557/modemmanager/files/25-modemmanager-
> net?at=master&fileviewer=file-view-default
>
> Basically, we get "net" and "tty" hotplug events reported in OpenWRT;
> for the net events we also check if there is a cdc-wdm device
> associated to the network interface, and if there is one we
> "mm_report_event" both the net and the cdc-wdm device. That
> mm_report_event method is the one that appends entries to the
> events.cache file (or removes them if we get a remove hotplug event).
>
Thanks. I'll see why cdc-wdm doesn’t get listed.
-
Shijo
More information about the ModemManager-devel
mailing list