Making It Easy

NetworkManager makes it easy to connect to mobile broadband/3G networks, supporting Internet connections to both GSM-based (including UMTS and HSPA) and CDMA-based (including 1xRTT and EVDO) cellular networks. In most cases, setup simply requires picking your detected device from the UI applet's menu, and you'll be guided through a short wizard to set up and necessary details for your mobile operator. If you have a phone that uses Bluetooth PAN, it's even easier. Bluetooth DUN support will come with NetworkManager 0.8.1 in late 2009.

Supported Devices

The following mobile broadband devices are known to successfully make data connections with both NetworkManager 0.7.x and NetworkManager 0.8/ModemManager. Not all devices support all functionality; many devices use proprietary protocols that have not been reverse engineered (Sierra, Novatel, Qualcomm) and thus will not be able to report signal strength, SMS receipt, or roaming status while connected. GSM modems are generally more open in this respect and have a much greater change of exposing the full functionality of the device.

If you don't find your device here, chances are it will at least be able to connect to the cellular network. CDMA devices (oddly enough) have a better chance as they are simpler and more standards-conformant than GSM-based devices.

GSM

CDMA

Blackberry

At this time, USB-connected Blackberry devices are not supported due to their use of a completely non-standard serial protocol. In the future we hope to enable these devices via a ModemManager plugin using libberry. They may work correctly in NetworkManager 0.8.1 when Bluetooth DUN support is added, as Blackberry Bluetooth DUN functionality allows AT-compatible communication.

Windows Mobile

Most recent Windows Mobile devices will work correctly if using Internet Connection Sharing on the phone to provide a private network via USB ethernet. NetworkManager will detect these devices as USB ethernet and by default perform a DHCP request.

Nokia Phones

Be sure to select "PC Suite" mode on the phone when plugging the USB cable in as this mode provides an AT-compatible serial connection to NetworkManager. A common mistake is to place the phone in "Storage" mode.

Why Doesn't My Device Show Up?

Integrated Driver CDs

Many devices show up as a CD-ROM drive when first plugged in, and require a small helper to reset the device into the modem mode that NetworkManager can use. This is not the responsibility of NetworkManager itself, and is normally accomplished in a cleaner manner either in the kernel itself, or via small udev helper scripts that reset the modem in vendor-dependent ways.

Huawei

Most Huawei devices are handled automatically by the kernel. If the 'option' driver which handles Huawei devices lacks the USB IDs of your device, the correct solution is to add those IDs to the kernel driver by submitting a patch to your distribution's bugzilla or Linux Kernel Mailing List. If your device is not yet recognized, you can eject the fake driver CD with usb_modeswitch, and bind the generic usbserial driver manually to the device (see below).

Option

Option devices require usb_modeswitch to eject the fake driver CD.

ZTE

A simple "eject" on the CD device (ie, /dev/sr1) is sufficient to reset the devices to modem mode, but this can also be accomplished automatically with usb_modeswitch.

No Driver

If the device is new enough, often it's USB IDs will not have been added to the appropriate kernel driver. You may need to use usb_modeswitch to eject the fake driver CD first. For many devices, the generic usbserial driver can control the modem, albeit with lower performance as the generic usbserial driver is not built for high speed communication. Determine the USB IDs of your device with the 'lsusb' tool, they will be in the format of <vendor>:<device> and it should be pretty clear which one is the mobile broadband card. Then you can bind the usbserial driver to your device with "modprobe usbserial vendor=<vendor> product=<device>" where of course <vendor> and <product> are the IDs you got from 'lsusb'. If you are using NetworkManager 0.7, see the section below about device probing. If you are using NetworkManager 0.8, NM should then discover your device after 5 - 10 seconds.

I have a driver, but NetworkManager doesn't find my device

NetworkManager probes modems automatically to determine their capabilities. NetworkManager 0.7.x only probes known mobile broadband drivers to avoid interfering with non-3G serial devices. That does *not* include the generic usbserial driver, because it most often drives non-3G devices. To probe modems that are driven by usbserial with NetworkManager 0.7.x, edit the /lib/udev/rules.d/77-nm-probe-modem-capabilities.rules file and change the line:

DRIVERS=="option|sierra|hso|cdc_acm|qcserial|moto-modem", GOTO="probe"

to

DRIVERS=="option|sierra|hso|cdc_acm|qcserial|moto-modem|usbserial_generic", GOTO="probe"

and replug your modem. NetworkManager should then see it. If that still does not allow NetworkManager to find your modem, your modem may not yet be supported. Please file a bug and report the 'lsusb' output and other details of your device.

VirtualBox

If you are using NetworkManager 0.7.x and have VirtualBox installed, and you have manually added an entry to /etc/fstab to mount usbfs over /sys/bus/usb, you need to remove that fstab entry because it's wrong and no longer needed with recent VirtualBox releases. Mounting usbfs in that location breaks the standard sysfs directory stucture that HAL and NetworkManager depend on, and will result in your modem not being found by NetworkManager. NetworkManager 0.8 and ModemManager should not have this problem, because they use udev (not HAL) for device discovery.

NetworkManager/MobileBroadband (last edited 2009-11-04 19:06:40 by DanWilliams)