Recently I bought a Reliance USB stick (So that I can use my Laptop as a truly portable machine). Right now I am using openSUSE 11.1 which uses Linux Kernel 2.6.27, which is I say is obsolete in this world of rapid technical changes (Even though Linux Kernel 2.6.27 is somewhat just a year old).
So when I plugged in my newly acquired USB modem into my laptop… my system could not detect it as a modem, but just as a USB storage device. So what to do!
Here are the steps I took to make my system recognize it as a USB modem.
First plug in the USB device in the system and after 5-10 seconds get the output of “lsusb” from the konsole (or any command line tool you use). Here is my output:
Bus 003 Device 003: ID 12d1:140b Huawei Technologies Co., Ltd.
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 002: ID 138a:0001
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 093a:2510 Pixart Imaging, Inc.
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 064e:a127 Suyin Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
On the USB device box it was written that the device was a Huawei one. So the first line from the output is what I need. The part I have bolded is what we need. It is vendor id and device id of the USB device. The product id is “0x140b” and vendor id is “0x12d1”.
Execute the below commands to make system stops recognizing the modem as USB storage device. Before giving out the “eject” command make sure that the device you are ejecting is USB modem. You can use “dmesg” to get this information.
$ eject /dev/sr1
$ modprobe -r usb-storage usbserial
$ modeprobe usbserial vendor=0x12d1 product=0x140b
Now as the device is successfully ejected and we can proceed further.
You will get three devices now:
/dev/ttyUSB0
/devttyUSB1
/dev/ttyUSB2
/dev/ttyUSB0 is the modem, use only this device. /dev/ttyUSB1 is the control channel, /dev/ttyUSB2 is doing GSM checks.
Make changes in /etc/wvdial.conf. Here are my chanages:
Modem = /dev/ttyUSB0
Baud = 115200
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2
Init3 =
Area Code =
Phone = #777
Username = myusername |With Reliance net connect |
Password = my_password |it is the mobile number of the modem|
Ask Password = 0
Dial Command = ATDT
Stupid Mode = 1
Compuserve = 0
Force Address =
Idle Seconds = 300
DialMessage1 =
DialMessage2 =
ISDN = 0
Auto DNS = 1
Run wvdial and you are connected to the world wide web 🙂
In place of wvdial you can also use kinternet. Just use settings –> configure with Yast –> add modem, and in the modem name put /dev/ttyUSB0
This may seem a lot of work to do, but we can automate this whole process which I will be putting down in my next blog 🙂
This problem has been solved in Linux Kernel 2.6.29 and greater (I am not sure about Kernel 2.6.28).
Have a nice time…