Wednesday, January 23, 2008

BSNL EVDO on GNU/Linux

The BSNL has launched EV-DO based wireless broadband all over India and become the first EVDO service provider in India.

I have successfully connected GNU/Linux system to Internet using this service. The system used is a laptop Acer Aspire 5573 with Fedora core -8. The procedure is described below. The procedure given is very brief, I will expand it once time permits.

  1. Ensure your EVDO connection is activated by BSNL. You will be provided with a user name of 10 integer size and a password of 4 integer size.

  2. Connect the EVDO data-card to one of the USB port of your system. You can ensure the device availability by the command

    $ lsusb

    The EV-DO USB data card provided by BSNL is manufactured by ZTE Corporation. However when this device is probed using lsusb command, the device vendor will be shown as Qualcomm.

  3. The device file of this card will be ttyUSB0. It this device is not created automatically, you can create it with following command with root privilege .

    $ modprobe usbserial vendor=0x05c6 product=0x6000

  4. You can verify the success of the operation usin g

    $ dmesg

    If device is detected properly, the output message will contain some thing like following line

    usbserial_generic 2-2:1.0: generic converter detected

    usb 2-2: generic converter now attached to ttyUSB0

    usbserial_generic 2-2:1.1: generic converter detected

    usb 2-2: generic converter now attached to ttyUSB1

    usbserial_generic 2-2:1.2: generic converter detected

    usb 2-2: generic converter now attached to ttyUSB2

  5. Now you EVDO set-up ready. You can connect to Internet by setting up a ppp dial up connection with following details. (I have used kppp)

    Modem device : /dev/ttyUSB0
    Connection baud rate : Up to 921600
    Dail to : #777
    Username and password : As provided by BSNL.

  6. To automate the device detection add a new udev rule to your system.

    Open a file ‘70_bsnl_evdo’ in /etc/udev/rules.d directory and add following content in single line.

    ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="6000" RUN+="/sbin/modprobe usbserial vendor=0x05c6 product=0x6000"


For further details, post your queries as comments.

- Anil

9 comments:

Bipin K Das said...

Hi Anil
Really Great work.

mallan said...

Dear Anil
i think , with the limited knowledge i have in the matter, this is a great effort.
i request U to tell me if this can be a cheaper substitute for our WiFi NSSEC project.
rgds
vijayan

Sabeesh said...

Hi Anil Sir,
It is really a Great Work.

jishi said...

Hi Anil,

Great !!!

p t joseph said...

i have ASUS EEEPC loaded with
Debian Linux.

The system recognises the USB
but not taking the modprobe command
as suggested.

can u provide a solution to this

Joshua said...

I have a slightly different device, 05c6:3197. It works, but you have to enable wvdial stupid mode.

Joshua said...

The udev rule is wrong. Use ATTR instead of ATTRS

അനൂപ് പനവളപ്പില്‍ said...

A simple performance enhancement...
After loading usbserial module load airprime module too, before executing wvdial

$ sudo modeprobe airprime

In Debian/Ubuntu you can automate this by adding two lines in /etc/modules file

Open it and add these lines to it

*********avoid this line**************
usbserial vendor=0x05c6 product=0x6000
airprime
*********avoid this line**************

Please take care the given order should be kept

Subin said...

hai Anil i tried all procedures mentioned by you everything goes fine but i cant browse nor the ping is working.I am using RHEL 5 please help me