MBM

Anonymous Elof Vrigborn Torgny Johansson Jonas Sjöquist
Attachments

Info.png (2560 bytes)

Mobile Broadband Modules

The information provided is currently heavily edited and may be incomplete, misleading or erroneous. It may render your system unusable and should only be used by experienced users that are comfortable with building their own Linux kernel and other software.

About

This project is dedicated to providing GNU/Linux software for the Ericsson Mobile Broadband devices f3507g, f3607gw, c3607w, f3307 and f5521gw. Ultimately the goal is to get full support for the modules upstream and directly into GNU/Linux distributions.

Linux kernel driver

In order to get full support for the f3507g/f3607gw/f3307/c3607w modules in Linux kernels prior to 2.6.28 the kernel has to be patched with the mbm-driver patches and recompiled. For kernels 2.6.28 – 2.6.30 it is possible to add support without recompiling by [Hex-editing_cdc_ether] the cdc_ether module. In kernel 2.6.31 several modules are supported out of the box and no recompilation is necessary. For details see Linux kernel modules.

For f5521gw modules see here.

Connection managers

To get easy, user friendly networking work is done to make the Ericsson Mobile Broadband modules working with NetworkManager. To achieve this an mbm plugin has been created for modem-manager which is a tool for handling different 3G modules. It provides a d-bus interface used by NetworkManager. For details see NetworkManager.

The telephony stack oFono also has an mbm plugin.

GPS control software

The Ericsson mobile broadband modules (except for f3307 and c3607w) also have GPS functionality. For easy control and configuration, a GPS control utility has been developed. It consists of a daemon that runs in the background and a user interface to control it. For details see GPS Control.

More information

Supported devices

All devices listed below are supported when using the MBM driver (see Linux kernel modules). If using a vanilla kernel, the required version for the different modules are listed in the table below. For the modules whose vid/pid have not yet made it into the vanilla kernel, they can be added with a patch (see Linux kernel modules for details).

Currently supported broadband modules

Vendor name Device name Vendor ID Product ID Vanilla kernel

Dell
Wireless 5530 Mobile Broadband HSPA Mini-Card
413c
8147
2.6.31

Dell
Wireless 5540 Mobile Broadband HSPA Mini-Card
413c
8183/8184
2.6.32

Dell
Wireless 5541 Mobile Broadband HSPA Mini-Card
413c
818b
2.6.35

Dell
Wireless 5542 Mobile Broadband HSPA Mini-Card
413c
818b
2.6.35

Dell
Wireless 5550 Mobile Broadband HSPA+ Mini-Card
413c
818d
2.6.38

Dell
Wireless 5560 Mobile Broadband HSPA+ Mini-Card
413c
818e
2.6.38

Ericsson Business Mobile Networks BV
f3507g
0bdb
1900
2.6.29

Ericsson Business Mobile Networks BV
f3507g
0bdb
1902
2.6.31

Ericsson Business Mobile Networks BV
f3607gw
0bdb
1904
2.6.31

Ericsson Business Mobile Networks BV
f3607gw
0bdb
1905
2.6.32

Ericsson Business Mobile Networks BV
f3607gw
0bdb
1906
2.6.31

Ericsson Business Mobile Networks BV
f3307
0bdb
190a
2.6.32

Ericsson Business Mobile Networks BV
f3307
0bdb
1909
2.6.32

Ericsson Business Mobile Networks BV
c3607w
0bdb
1049
2.6.32

Ericsson Business Mobile Networks BV
c3607w
0bdb
190b
2.6.33

Toshiba
f3507g
0930
130b
2.6.31

Toshiba
f3607gw
0930
130c
2.6.32

Toshiba
f3607gw
0930
1311
2.6.32

All
f36/f35/f33/c36


2.6.35

All
f5521gw/h5321/f5321/c5621/c33


2.6.38

To find out what vendor id and product id you are using, open a terminal and type:

# lsusb

The output will be something along the lines of:

# lsusb
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
**Bus 006 Device 004: ID 0bdb:1902 Ericsson Business Mobile Networks BV**
Bus 006 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 009: ID 046d:c03d Logitech, Inc. M-BT69a Pilot Optical Mouse
Bus 004 Device 005: ID 0557:2213 ATEN International Co., Ltd
Bus 004 Device 004: ID 0557:8021 ATEN International Co., Ltd
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 003: ID 0b97:7772 O2 Micro, Inc. OZ776 CCID Smartcard Reader
Bus 005 Device 002: ID 0b97:7761 O2 Micro, Inc. Oz776 1.1 Hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 413c:8140 Dell Computer Corp. Wireless 360 Bluetooth
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

You may have a module that is branded with some other vendor than Ericsson though (e.g. Toshiba, Dell etc).

Prerequisites

In order to build a Linux kernel and the other provided software some additional packages are required. To install the required packages open a terminal and run:

# sudo apt-get update
# sudo apt-get upgrade
# sudo apt-get install build-essential libncurses5-dev kernel-package wget fakeroot git subversion libmbca0
# sudo apt-get build-dep network-manager network-manager-gnome

Linux kernel modules

{{Tip|As of kernel 2.6.31 several vids/pids listed above are supported out of the box and no recompilation is necessary. If your module is not listed above then continue reading. USB autosuspend is available without patches from kernel version 2.6.33.

The MBM patch supports USB autosuspend except for 2.6.21 kernels.}} To compile a kernel we first have to get the source. Either a vanilla kernel can be downloaded from www.kernel.org or the distribution’s packaging system can be used (recommended). In this case we’ll use apt-get and a 2.6.28 kernel since that is what is currently used in Ubuntu 9.04. Other kernel versions are also supported, just adjust the commands below accordingly (e.g. replace instances of 28 with 24 if a 2.6.24 kernel is used). Also make sure to download the proper patch for the desired version.

{{Tip|If you can’t or really don’t want to recompile your kernel take a look at [Hex-editing_cdc_ether] to add support for your module in your running kernel. Otherwise follow the instructions below.}}

Download the kernel and mbm patch

First find out which kernel that is currently running:

# uname -r
2.6.28-12-generic

Then use apt-get to download the sources and cd into the source directory:

# sudo apt-get source linux-image-2.6.28-12-generic
# cd linux-2.6.28

or download a kernel of your choice:

# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.x.y.tar.bz2
# tar -xvjf linux-2.6.x.y.tar.bz2
# cd linux-2.6.x.y/

Download, extract and apply the desired MBM driver patch:

For f3507g/f3607gw/f3307/c3607w modules

**For kernel version 2.6.21 (no autosuspend, mbm driver):**
# wget http://downloads.sourceforge.net/project/mbm/mbm-drivers/2.6.21/patch-2.6.21.bz2
# bunzip2 patch-2.6.21.bz2
# patch -p1

Related

Wiki: Hex-editing_cdc_ether
Wiki: Main_Page
Wiki: Using_mbm-gpsd