BSNL EVDO in Linux – The Easy Way

Posted on 17 Comments


So you just bought yourself a swanky new BSNL EV-DO broadband Internet device. It works happily on your Windows, fine, as they provide a Windows-friendly CD along with the device that installs the required software and drivers easily. But what about if you want to use your EV-DO in Linux, if you have it? Due to lack of official Linux support, setting up EV-DO in Linux can be quite tricky, but here is how to do it easily, without much fuss.

Linux comes in many flavors (from different vendors), like Ubuntu, openSuSE, Mandriva, Fedora, Mint. If you have one of these, or any modern Linux distro, proceed as follows.

In Linux, plug in the USB modem device. Now check if device nodes for it are created in your /dev folder. Usually, they are like /dev/ttyUSB0, /dev/ttyUSB1, /dev/usb/ttyUSB0, and so on. In most cases, this step should automatically happen. If it doesn’t, then you’ll have to manually create the device nodes for your USB modem by inserting its module in the kernel. To do it:

Check for the device ID of the USB modem. You do this using the following command. Run the command first with the modem unplugged, and then with modem plugged in. Compare the output in both the cases; whichever new entry appears in the list is of your modem.


Within the output that you get, your modem (in most cases a ZTE device), will be listed something like:

Bus 002 Device 004: ID 19d2:fffe ZTE Corporation
Bus 002 Device 004: ID 19d2:fffe

Now using this device ID, you’ll create its device nodes by using this command:

modprobe usbserial vendor=0x19d2 product=0xfffe

This should create the relevant device nodes for the modem in /dev folder. If not, try unplugging and then plugging in the modem. Now your work is half done.

Next, you’ll need these packages installed to configure the modem:

kppp or kinternet (for KDE users)
gnome-ppp (for GNOME users)

After making sure wvdial is installed, edit the file /etc/wvdial.conf to make it look similar to (note – you can use the command wvdialconf to setup the file automatically):

[Dialer Defaults]
Modem = /dev/ttyUSB0
Baud = 115200
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 =
Area Code =
Phone = #777
Username = xxxxxxxxxx
Password = xxxxxxxxxx
Ask Password = 0
Dial Command = ATDT
Stupid Mode = 1
Compuserve = 0
Force Address =
Idle Seconds = 0
DialMessage1 =
DialMessage2 =
ISDN = 0
Auto DNS = 1

Replace xxxxxxxxxx in case of username and password with the 10-digit phone number of your modem. Now, execute this command:


Voila! Your Internet should work now, in full glory. To ease up things a bit, you may want to connect to Internet using a graphical (GUI ) tool everytime. Use kppp (KDE) or gnome-ppp (GNOME) for that.

UPDATE: As pointed out by my friend Yatin, NetworkManager is another great and easy way to setup EVDO. Most modern distros come pre-installed with it. If not, you can always install it manually.