Problems switching between WiFi and Mobile Data on MTK-based phones
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
network-manager (Ubuntu) |
Fix Released
|
High
|
Tony Espy |
Bug Description
On recent vivid images running on phones with MTK modems ( arale, krillin ) switching between WiFi and mobile-data and back leads to broken networking where neither device ( WiFi or WWAN ) will establish a network connection.
It appears that the new version of network-manager in vivid ( 0.9.10-4ubuntu6 ) is incorrectly attempting to manage the devices created by rild when mobile-data connections are established.
For instance, on krillin running RTM, 'nmcli -d' reports the following networking devices:
% nmcli d
wlan0 wifi disconnected
ril_0 gsm connected
ril_1 gsm disconnected
On the same device running vivid, an extra device which should be unmanaged is listed:
% nmcli d
ril_0 gsm connected /31041078614782
ccmni0 wifi connected ccmni0
wlan0 wifi disconnected --
ril_1 gsm unavailable --
ccmni1 wifi unmanaged
Note that ccmni0 is listed as a wifi device, with a status of connected whereas ccmni1 is listed as unmanaged.
If you look at syslog, you'll see a two log messages output after ril_0 is activated which show network-manager detecting a change in ccmni0 and deciding it should become managed:
This bug was discovered on ubuntu-
Feb 25 21:17:08 ubuntu-phablet NetworkManager[
41]
Feb 25 21:17:08 ubuntu-phablet NetworkManager[
30 41]
After discussing with Mathieu, we suspect that the fix involves modifying the ignore_ rmnet_devices. patch to ignore ccmni* named devices.
It also might make sense to re-work this patch so that it doesn't hard-code device names but instead reads a device-name pattern from an environment variable ( possibly generated based on an Android property ) or optional text file that could be exported from the device tarball.