-   Slackware (
-   -   HSPDA USB modem Huawei E220 (

Linuxkundi 10-12-2008 02:50 AM

HSPDA USB modem Huawei E220
How can I connect in an Easy way?

niels.horn 10-12-2008 07:21 AM

First: check the output of lsusb to find the vendor & product info.
Give us the output here and I can help you further.

Is it one of these modems that first connects as a pen-drive with Windows software?
Mine does that...
Then you'll have to get a little program called usb_modeswitch.

The connection is through pppd on the command line or kppp from KDE.

If your connection speed is not what you expect (but for instance limited to 512K) then you'll have to follow one more step: get a patch for option.c and recompile this module.
But I can give you instructions for this one as well...

H_TeXMeX_H 10-12-2008 07:28 AM

I think it should work just fine using the usb_serial module and pppd or kppp.

niels.horn 10-12-2008 08:07 AM

Just checked my /usr/src/linux/drivers/usb/serial/option.c and it supports your modem if 'lsusb' returns with one of the following IDs:
12d1:1001, 12d1:1003 or 12d1:1004

If it does, you're more lucky than I was with mine, which is only supported by the 2.6.26 kernels, so I had to hack option.c myself :)

You might still need the usb_modeswitch trick if your modem is only recognized as a pen-drive.

robel 10-12-2008 08:48 AM


Originally Posted by Linuxkundi (Post 3307479)
How can I connect in an Easy way?

My E220 shows up as:

idVendor 0x12d1
idProduct 0x1003

in lsusb -v

It is pretty easy to setup. Assuming the right modules (usbserial, option, etc.) are loaded and dmesg says someting like this:

option 3-1:1.0: GSM modem (1-port) converter detected
usb 3-1: GSM modem (1-port) converter now attached to ttyUSB1
option 3-1:1.1: GSM modem (1-port) converter detected
usb 3-1: GSM modem (1-port) converter now attached to ttyUSB2

you just consider the E220 as a straight forward telephone modem.

(I have a GPS connected to /dev/ttyUSB0, that's why my E220 starts at ttyUSB1)

I'm running Slackware 12.1 and as a console lover I just run pppsetup from console. The phone number (dialing command) should be someting like ATDT*99***1# (but that could depend on you network operator).

Good luck!


robel 10-12-2008 12:10 PM


Originally Posted by robel (Post 3307645)
My E220 shows up as:

It is pretty easy to setup. Assuming the right modules (usbserial, option, etc.) are loaded and dmesg says someting like this:

Come to think of it... A fresh Slackware install (12.1) with the huge-smp kernel (the ENTER choice) did not work for me. I got a weird error in dmesg saying something like "cannot load module twice". Sorry, I don't recall the error.

Anyway, after building a new kernel everything worked fine.

If you don't know how to build a kernel, here is a quick and dirty recipe:

(all commands should be typed without quotes)

(type "cp -a /boot /boot-backup")

1. Open a shell

2. Create a directory
type "mkdir kernel"

3. Change to that directory
type "cd kernel"

4. Get the latest kernel from
type "wget"

5. Unpack the kernel source
type "tar -jxf linux-2.6.27.tar.bz2"

6. Change to the linux-2.6.27 directory
type "cd linux-2.6.27"

7. copy the config from /boot
type "cp /boot/config .config"

8. Make the config
type "make silentoldconfig"
(just hit ENTER for every question until it's done)

9. Make the kernel
type "make"
(if you have a multicore CPU or multiple CPUs you can type "make -j2" (dual core) or "make -j4" (quad core) to speed things up. Please note that this does not speed up things on a single(core) CPU, on the contrary it probably slows the process due to task switching.

10. Install modules
type "make install_modules"

11. Install the kernel
type "make install"

10 and 11 should be performed as root, but if you're root in the first place that's fine.

Now you can reboot. Have the Slackware CD ready if the kernel doesn't work. Boot the system from CD (or whatever) and restore your /boot directory. Type "cp -a /boot-backup /boot"


T3slider 10-12-2008 12:17 PM

It would be easier to switch to the generic-smp kernel instead of building a whole new one (which can be error-prone if you don't know what you're doing). To switch to the generic-smp kernel, you need to create an initrd, edit /etc/lilo.conf, and run `lilo` as root. To create an initrd, follow the instructions in /boot/README.initrd. You could also use Alien Bob's script, which tries to guess the correct mkinitrd command for your system. You should also read `man mkinitrd`.

tix 05-16-2011 11:16 AM

Huawei E160/E220 in Slackware 13.0 (solution)
To get your USB dongle (Huawei E160 or Huawei E220) to work: (Slackware Linux 13.0 - kernel but may work on other linux versions)

Step 1: Ensure PPP is compiled into your kernel

Step 2: Ensure that you kernel does not spew any errors or does not panic (see kernel compilation howto in /usr/doc/Linux-HOWTOs)

Step 3: Ensure that your kernel supports USB storage

Step 3a: Ensure that kernel supports USB-Serial (generic usb_serial driver should work)

Step 4: obtain software called comgt (

Step 5: Boot your computer (LOL!)

Step 6: At command prompt login (duh!)

Step 7: su as root user (login as regular user, issue command "su" and put root password - risky to login directly as root)

Step 8: Uncompress comgt.032.tgz (tar -xvzf comgt.032.tgz)

Step 9:build the comgt and install comgt

Step 10:insert Huawei modem

Step 11: Huawei modem shall be detected as CD-ROM drive (/dev/sr1 or /dev/sdb) instead of a 3g modem (check using "dmesg")

Step 12: To switch modes of modem from CD-ROM to a modem, you need to eject the Huawei CD-ROM device using the command (eject
/dev/sr1 or eject /dev/sdb or eject /dev/<whatever is in you dmesg>)

Step 13: To switch modes of huawei modem, use comgt
"comgt -x -d /dev/-usb device-" where -usb device- is ttyUSB0 or ttyUSB1 -- e.g. "comgt -x -d /dev/ttyUSB0"
Some message should display giving you the network provide name and the signal strength!

Step 14: point /dev/modem to your Huawei modem at e.g. /dev/ttyUSB0. If /dev/modem does not exist, then create it LOL! "ln -s /dev/ttyUSB0 /dev/modem"

Step 15: Exit as root user and login as regular user! (if using "su" simply type exit)

Step 16: Start your dialer program - wvdial or kppp

Step 17: konfigure your dialer and dial! :)

Step 18: A new device "ppp0" will be listed in list of networking hardware (check this using "ifconfig")

Step 19: make sure your put your DNS server addresses in "/etc/resolv.conf" in format "nameserver -DNS server-" where -DNS server- is ip address of DNS server of your ISP

Step 20: enjoy surfing!

All times are GMT -5. The time now is 09:19 PM.