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 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).
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.
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:
My original suspicion (since then validated by kernel 2.6.23, which patched
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
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.