Huawei E220

The information on this page is outdated and may not be accurate anymore, since the Huawei E220 is now virtually obsolete and drivers/support for it and its descendants have since been added to most Linux variants.

The Huawei E220 is a 7.2Mbps HSDPA modem that provides a standard USB serial device interface and (in some models) a storage device containing operator-specific Plug-and-Play software required for it to work (usually for Windows).

The E220 is probably one of the most popular mobile broadband devices on the planet, and there are several hardware variants and similar models (E270, E172) that work in almost exactly the same way (and even use the same drivers).

Mac Support

Mac users can get generic drivers from Huawei here or Vodafone-branded software here, but it is generally recommended that you try your local operator’s site (since some updates and tweaks are first released regionally).

Those of you in Portugal can go here and click on the “Suporte” tab.

Also, if you prefer the stock drivers and don’t want to disable the PIN check on the SIM card, this hint has a rather convoluted solution to input the PIN code when the device is plugged in to your Mac.

Linux Support

Those of you who use a recent Linux variant can go here for a bunch of Linux resources, and get the GTK front-end for 3G devices on betavine (umtsmon is also known to work for some people).

Low End Stuff

If you’re using a Linux kernel that predates udev and can’t be bothered to check the console logs and figure out the mknod man page can set up a startup script with the following (or a variant thereof):

modprobe usb-ohci 
modprobe usb-uhci
modprobe usbserial vendor=0x12d1 product=0x1001 
modprobe usbserial vendor=0x12d1 product=0x1003
mknod /dev/ttyUSB0 c 188 0 
mknod /dev/ttyUSB1 c 188 1 
mknod /dev/ttyUSB2 c 188 2

This really shouldn’t be necessary anymore (see historic note below), but the information above is also useful for other Huawei devices like PCMCIA cards (thankfully, they use a common driver and bus interface for most of their HSDPA products, which makes things a lot easier in most regards).

As usual, there is a modem port, a monitoring port (both of which take AT Commands Commands) and a diagnostic interface (not meant to be messed around with).

(Deprecated) Ubuntu Notes:

This page was, for a while, one of the top Google hits for ‘Ubuntu Huawei e220’, and as such a bit of background information is in order.

My original suspicion (since then validated by kernel 2.6.23, which patched usb_storage and usbserial) was that since this is a multi-function device (i.e., storage for drivers + USB serial), Ubuntu’s HAL only detected the first portion of the device.

Besides tinkering with /lib/modules/2.6.17-10-generic/modules.usbmap (which led nowhere, despite there being a Huawei device listed there with device ID 0×1001), I tried to create a HAL file that would force detection of the serial component.

Later on, I corresponded with Johann Wilhelm (who used Slackware and had similar issues), who came up with a few workarounds, one of which was a small kernel patch (with a variant for devices with ProductID 0x1004).

Around the end of 2007, his patch (or a variant thereof) was commonplace enough for E220 support to be commonplace – and the same applies to the E270 and E172 devices, which are mostly the same hardware.

In the meantime, a few other people had pointed me to this page, which also lists some of the udev tweaks that were later rendered obsolete.