Mar 26
Getting a Huawei E800 UMTS Modem to work with Linux
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.

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.

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
- 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
- Run umtsmon (try with sudo in case it gets stuck)
- Configure your connection and press the connect button
sudo modprobe usbserial vendor=0x12d1 product=0x1001
sudo chmod a+rw /dev/ttyUSB{0..2}; sudo rmmod usb-storage
As umtsmon is a QT program, I think this would be a nice project for pyGTK.
1 comment1 Comment so far
Leave a comment
You can add a udev rule to ignore the USB storage volume – see http://en.opensuse.org/SDB:HUAWEI_E220_Support