Mar 26

Getting a Huawei E800 UMTS Modem to work with Linux

Category: Informatics, Mobile

Today I finally managed to get the E800 ExpressCard provided by BASE working with Linux. I installed the latest Version (0.8) of Klaas van Gends umtsmon, and configured it to use 3G instead of GPRS. The problem that kept me from bringing the configuration to work until today was that two of the tree USB serial devices (/dev/ttyUSB0 and /dev/ttyUSB2) are only available for a couple of seconds.

UMTS Monitor with established connection

But now I figured out that those will stay available once you disable the usb-storage part of the card right after the card is initialized.

To provide Windows drivers on the fly, the E800 has a build in, read only USB stick like device, where the manual (PDF) and the setup program are stored. Once that device gets mounted, the card is not usable as a modem anymore.

While writing this blog post I just found out that the ExpressCard slot also provides a USB interface, which explains the device tree seen in the following picture. There you can see that the modem hardware is detected as a Huawei E220 and is not using the PCI Express Bus at all. It is rather using the same USB Controller as the Infrared Remote Port of my MacBook Pro.

UMTS Monitor with established connection

When thinking about this further, I figured it would be possible to build a ExpressCard to USB adapter – and after some googling I found one that is even said to work with the E800. Engagded also reviewed one of those devices some time ago. I wonder that some plastic and connections from pin 34, 36 and 38 to a USB cable are still worth more than $ 30.

The steps to bring an E800 to work in a current Ubuntu Laptop are the following (this will only work if you are not using a USB storage device at the same time).

  • Register the USB serial modul to handle the Huawei card
  • sudo modprobe usbserial vendor=0x12d1 product=0x1001

  • Append the above line to your /etc/rc.local (without “sudo”)
  • Plug in the device
  • Try running the following command every second until no error is returned
  • sudo chmod a+rw /dev/ttyUSB{0..2}; sudo rmmod usb-storage

  • Run umtsmon (try with sudo in case it gets stuck)
  • Configure your connection and press the connect button

As umtsmon is a QT program, I think this would be a nice project for pyGTK.

1 comment

1 Comment so far

  1. Marco Bergman December 9th, 2008 23:56

    You can add a udev rule to ignore the USB storage volume – see http://en.opensuse.org/SDB:HUAWEI_E220_Support

Leave a comment