ModemManager uses a wrong plugin for Dell DW5818/5819
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OEM Priority Project |
Fix Released
|
Critical
|
Unassigned | ||
modemmanager (Ubuntu) |
Fix Released
|
Critical
|
Unassigned |
Bug Description
[Impact]
* Dell Wireless DW5818/5819 modems showed an incorrect signal strength and were using a ttyUSB* port for data connections instead of the MBIM device (which provides better performance).
Since linux-4.4.0-98, the kernel additionally loads gcserial driver for Dell Wireless DW5818/5819. The reason behind it is to support firmware switching and upgrading. However, the change makes ModemManager use Gobi plugin for this two modules. With Gobi plugin, the modules could establish data links, but it failed to retrieve the signal state. And it caused the mmcli and nm-applet giving wrong signal strength. The modules support the MBIM protocol, so ModemManager should use Dell plugin for these two modules.
I have worked out a patch to forbid these two modules in Gobi plugin, and it does work well.
[Test Case]
Current MM:
* Create connection with
$ nmcli c add type gsm ifname ttyUSB2 con-name gsmconn apn <operator APN>
* Without the patched package, mmcli shows, with an active connection (see comment #2):
primary port: 'ttyUSB2'
signal quality: '0' (recent)
Patched MM:
* Create connection with
$ nmcli c add type gsm ifname cdc-wdm0 con-name gsmconn apn <operator APN>
* With the patched package, mmcli shows, with an active connection (see comment #7):
primary port: 'cdc-wdm0'
signal quality: '38' (cached)
[Regression Potential]
The patch simply adds the Sierra modems VID/PIDs to the list of forbidden ids in the Gobi plugin, so the possibility of a regression is very small: only products with said VID/PID will be affected.
no longer affects: | modemmanager |
description: | updated |
Changed in oem-priority: | |
importance: | Undecided → Critical |
status: | New → Confirmed |
Changed in oem-priority: | |
status: | Confirmed → Fix Released |
Current version, registered, but not connected
output of mmcli -m 0