Ubuntu 15.10 with Dell Wireless 5570 HSPA+ (42Mbps) Mobile Broadband Card

mbmi to qmi modeswitch, magical ffc-auth sequence

A several days ago, i’ve replaced the Gobi 2000 WWAN Card with a newer version, a Dell 5570 Module. It’s a branded Sierra Wireless card, so i hoped it will work out of the box on Ubuntu 15.10 – but nothing.

After some investigations if figured out, that the card is locked in “low-power” / flight mode which cannot be disabled using the NetworkManagers utils.

Thanks to and his great article about Dell Branded Sierra Wireless Modem the fix is already included into the current libqmi and ModemManager. This means, that it will work on the current Ubuntu release without manuall interactions with qmicli!

The Solution#

To get the card working, you have to switch the USB commication mode from MBMI to QMI mode! The ModemManager will apply the FCC-Auth command automatically, but this requires a QMI interface!

You can switch the mode by using usb-modeswitch or the prefered solution, by adding a special udev rule which also loads the required kernel modules. Additionally you have to install the qmi-utils apt-get install libqmi-utils

UDEV Ruleset#

This ruleset is taken from Pieter’s Post with modified Vendor/Device IDs to match the Dell5570. Add the following content to a new udev file, e.g. /etc/udev/rules.d/99-dell5570.rules.

After adding these rules, you should reboot your system! Finally the Ubuntu Network-Manager should recognize the device!

And make sure to add a valid SIM-Card – otherwise the CDC Device will be recognized as “unavailable”.

ACTION!="add|change", GOTO="mbim_to_qmi_rules_end"
SUBSYSTEM!="usb|drivers", GOTO="mbim_to_qmi_rules_end"

# load qmi_wwan module
SUBSYSTEM=="usb", \
ATTR{idVendor}=="413c", ATTR{idProduct}=="81a3", \
RUN+="/sbin/modprobe -b qmi_wwan"

# force Dell WWAN 5809e to configuration #1
SUBSYSTEM=="usb", \
ATTR{idVendor}=="413c", ATTR{idProduct}=="81a3", \
ATTR{bConfigurationValue}="1"

# add the new id in the qmi_wwan driver
SUBSYSTEM=="drivers", \
ENV{DEVPATH}=="/bus/usb/drivers/qmi_wwan", \
ATTR{new_id}="413c 81a3"

# load qcserial module
SUBSYSTEM=="usb", \
ATTR{idVendor}=="413c", ATTR{idProduct}=="81a3", \
RUN+="/sbin/modprobe -b qcserial"

# add the new id in the qcserial driver
SUBSYSTEM=="drivers", \
ENV{DEVPATH}=="/bus/usb-serial/drivers/qcserial", \
ATTR{new_id}="413c 81a3"

LABEL="mbim_to_qmi_rules_end"

To verfiy that the udev rules are working, you can take a look on the “usb-devices” output, it should show qcserial and qmi_wwan as used drivers. If not, check the vendor and product ID in your ruleset!

andi@epic:~$ usb-devices
T:  Bus=01 Lev=01 Prnt=01 Port=02 Cnt=02 Dev#=  4 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  2
P:  Vendor=413c ProdID=81a3 Rev=00.06
S:  Manufacturer=Sierra Wireless, Incorporated
S:  Product=Dell Wireless 5570 HSPA+ (42Mbps) Mobile Broadband Card
C:  #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=qcserial
I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=qcserial
I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=qcserial
I:  If#= 8 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan

 

Resources#

Dell-branded Sierra Wireless 3G/4G modem not online?

Dell Wireless 5809e support in Linux

Other Hardware Vendors [Update]#

In case you have other branded wireless cards which are also requires this fix, you have to modify the vendorID (idVendor) as well as product-id (idProduct) to match your specific device! The utilities usb-devices or lsusb will show all required informations!