More Mobile Broadband
New mobile broadband devices supporting multiple technologies (eg, CDMA/EVDO/LTE and/or GSM/UMTS/LTE) and using new proprietary protocols are becoming common in the marketplace, and are not well supported by ModemManager 0.6 and earlier. We developed ModemManager 0.7/0.8 with a new API specifically to address this issue and to be more compatible with future mobile broadband devices.
- Name: Dan Williams
- Email: dcbw at redhat dot com
- Targeted release: Fedora 19
- Last updated: 2013-3-12
- Percentage of completion: 90%
Multi-mode Qualcomm-based devices have on the market since 2009 and support multiple WWAN technologies, often at the same time or with a runtime firmware change. CDMA-based carriers migrating to LTE (like Verizon, Sprint, China Telecom, KDDI, etc) require these multi-mode devices to ensure that coverage is not interrupted when handoff between CDMA/EVDO and LTE occurs.
ModemManager 0.6's D-Bus API simply could not be extended to handle these cases, and due to this, the opportunity was taken to rewrite the API to ensure future functionality could be more easily supported in the D-Bus API.
Additionally, most newer Qualcomm chipsets (which the majority of phones and data cards contain) use the proprietary QMI protocol for most operations instead of their limited AT command port. We have developed the libqmi library to support these devices, and ModemManager 0.7 and later use libqmi to provide fully-featured support for these Qualcomm devices.
Benefit to Fedora
Users of newer WWAN data cards and providers migrating from CDMA/EVDO to LTE technologies will see greatly increased functionality from their devices, as older versions of ModemManager simply did not support these devices well. All users get better support for SMS messaging, location services, network time updates, 2G/3G/4G priority, and faster modem detection.
The upstream work is mostly done, as ModemManager, libqmi, NetworkManager, and GNOME Shell already have the necessary changes provide and support the new D-Bus API. Left to be done are (1) device-based secrets in NetworkManager to provide more robust PIN unlocking, (2) fine-tuning of the mobile broadband configuration and operation process in the UI, and (3) fixing random bugs in the new ModemManager where support for some obscure devices may have regressed. (1) and (2) are enhancements over existing functionality that is already at parity with the old ModemManager support.
How To Test
- Testers should have WWAN modems, either in their laptop, an external datacard, or a handset/phone
- Upgrade ModemManager to anything greater than 0.7
- run "mmcli --set-logging=DEBUG"
- Connect or enable your device (eg, plug device into USB port, or turn off WWAN Airplane Mode)
- Ensure the device is detected by ModemManager and NetworkManager; use "mmcli -m" to list devices known to ModemManager, and "nmcli dev" to list those known to NetworkManager
- Attempt to establish a data connection to your network provider by choosing the device in the network menu; or if not using NetworkManager, by using 'mmcli -m 0 --simple-connect="apn=my.provider.apn"'.
- If things don't work, attach syslog debug messages from NetworkManager and ModemManager to the bug report
Note that some devices, especially Qualcomm Gobi devices or those that use Qualcomm chipsets, may require device ID additions to kernel modules for full support of some features.
Users will notice improved support for many mobile broadband devices, including SMS functionality and GPS/Location Services. Most multi-mode devices that provide access to CDMA/EVDO/GSM/UMTS and LTE networks are now better supported as well.
NetworkManager and GNOME Shell use ModemManager's D-Bus API for handling of mobile broadband devices, but NetworkManager is already updated to work with the new ModemManager D-Bus API. KDE's networking layers likely require an update to use the new API, as will any other direct client of ModemManager. However, the functionality that most networking applets require from ModemManager is fairly simple, and the new API is namespaced such that support for both new and old ModemManager can be built into a program at the same time. There is currently a | call for Summer of Code students to help port KDE to the new ModemManager API.
We will revert to ModemManager 0.6 which does not have these improvements, but also does not change API.
- ModemManager now has a command-line tool (mmcli) which has very detailed --help output. The new D-Bus API is also available . Other than that, most changes are internal to ModemManager and should not be visible to end users.
- Fedora 19 includes a new, more capable version of ModemManager for interacting with mobile broadband devices. This version provides better support for multi-mode devices like Qualcomm Gobi WWAN cards and other devices that support both CDMA/EVDO/LTE and/or GSM/UMTS/LTE simultaneously. To provide this support, the D-Bus API of ModemManager has changed, which may require updates in applications that interact with ModemManager to control WWAN devices.