Using Reliance’s ZTE MG 880 USB Modem in Ubuntu

Check Out Ubuntu Newbie Section

This was the very first thing I did after I installed Ubuntu 8.04 in my laptop “Dell Inspiron 1525″, I had purchased Reliance’s ZTE MG 880 USB Modem and was using it in my Windows, as I had to update and all.. So here is how it goes..

The device that we have is like a phone cum modem. The ability to make calls and send messages along with connecting to the internet is provided by the software that is provided by the vendor but which unfortunately works well in windows only. In Linux however as u guys may be knowing by now every device has a place in /dev directory of the file system.. Since it is a USB device it’ll be connected to the serial port.

So to start with.. Put the device into any of ur USB slots and execute this in the terminal

1. dmesg

and u’ll get a scary list of things and in the last something like this will appear

[   28.294659] usb 4-2: new full speed USB device using uhci_hcd and address 3
[   28.302238] usb 4-2: device descriptor read/64, error -71
[   28.320441] usb 4-2: device descriptor read/64, error -71
[   28.330915] usb 4-2: new full speed USB device using uhci_hcd and address 4
[   28.338759] usb 4-2: device descriptor read/64, error -71
[   28.371548] usb 4-2: device descriptor read/64, error -71
[   28.421019] usb 4-2: new full speed USB device using uhci_hcd and address 6
[   28.450314] usb 4-2: new full speed USB device using uhci_hcd and address 7
[   28.471169] usb 4-2: configuration #1 chosen from 1 choice
[   30.509928] usbcore: registered new interface driver usbserial

After this type in this command

2. anshuman@anshuman-laptop:~$ cat /proc/bus/usb/devices

and search for something like this

T:  Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  7 Spd=12  MxCh= 0
D:  Ver= 1.01 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=16 #Cfgs=  1
P:  Vendor=19d2 ProdID=fffd Rev= 0.00
S:  Manufacturer=ZTE, Incorporated
S:  Product=ZTE CDMA Tech
S:  SerialNumber=Serial Number
C:* #Ifs= 3 Cfg#= 1 Atr=e0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbserial_generic
E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=128ms
E:  Ad=8a(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=0b(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbserial_generic
E:  Ad=83(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=06(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbserial_generic
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=05(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms

3. If there is no file with the name /proc/bus/usb/devices, then you need to mount the usb file system.

To mount the filesystem, you need to be root. Use the mount command:

mount -t usbfs none /proc/bus/usb.

Note that the none keyword is arbitrary – you can use anything, and some people prefer to use usbdevfs, as it makes the mount output look better.

If you do not want to have to mount the filesystem everytime you reboot the system, you can add the following to /etc/fstab after the /proc entry:

none            /proc/bus/usb             usbfs        defaults   0   0

Now you can re execute step 3.
4. Check the Vendor and the ProdID and take a note of it, and execute this.

sudo modprobe usbserial vendor=0x19d2 product=0xfffd

5. Now we again type in dmesg and this is what we see
[   30.510013] usbserial_generic 4-2:1.0: generic converter detected
[   30.510143] usb 4-2: generic converter now attached to ttyUSB0
[   30.510156] usbserial_generic 4-2:1.1: generic converter detected
[   30.510241] usb 4-2: generic converter now attached to ttyUSB1
[   30.510252] usbserial_generic 4-2:1.2: generic converter detected
[   30.510337] usb 4-2: generic converter now attached to ttyUSB2
[   30.510353] usbcore: registered new interface driver usbserial_generic
[   30.510356] /build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial Driver core

6. Now run a wvdialconf:
$ sudo wvdialconf

Editing `/etc/wvdial.conf'.Scanning your serial ports for a modem.
Modem Port Scan<*1>: S0   S1   S2  S3
WvModem<*1>: Cannot get information for serial port.
ttyUSB0<*1>: ATQ0 V1 E1 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 Z -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 --OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyUSB0<*1>:ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB0<*1>: Modem Identifier: ATI -- ZTEiT, Incorporated
ttyUSB0<*1>: Speed 4800: AT -- OK
ttyUSB0<*1>: Speed 9600: AT --OK
ttyUSB0<*1>: Speed 19200: AT -- OK
ttyUSB0<*1>: Speed 38400: AT -- OK
ttyUSB0<*1>: Speed 57600: AT --OK
ttyUSB0<*1>: Speed 115200: AT -- OK
ttyUSB0<*1>: Speed 230400: AT -- OK
ttyUSB0<*1>: Speed 460800: AT --OK
ttyUSB0<*1>: Max speed is 460800;
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
WvModem<*1>: Cannot get information for serial port.
ttyUSB1<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyUSB1<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud
ttyUSB1<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
WvModem<*1>: Cannot get information for serial port.
ttyUSB2<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyUSB2<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud
ttyUSB2<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
Found a modem on /dev/ttyUSB0. Modem configuration written to /etc/wvdial.conf.ttyUSB0: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"	

7. Finally edit /etc/wvdial.conf to make sure it looks like the following. I've added emphasis to the stuff which I had to edit. I'm not sure the "Stupid Mode = 1" line is need or not. It was required for the older Reliance data cards so I just put it in there:
[Dialer Zte]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2
+FCLASS=0
Modem Type = Analog Modem
Phone = #777
Username= 9313750406
Password = 9313750406
ISDN =0
SetVolume = 0
FlowControl = Hardware (CRTSCTS)
Modem =
/dev/ttyUSB0
Dial Command = ATDT
Baud = 460800
Stupid
Mode = 1

Just in case this did not work for you please post it in the comments section and I'll update the post accordingly.

Note: I noticed that if I do the modprobe with the modem inserted in the USB
slot, the /dev/ttyUSB* devices are not created. So, first modprobe,
and then insert the modem.

8. $ sudo wvdial zte

and get connected to the internet

PS: I tried using Reliance CDMA1X in Ubuntu 9.10 Karmic… It does not have  pre-installed wvdial. So install wvdial alongwith the suitable dependencies and do the above as mentioned…

49 Responses

  1. [...] case you have not seen my previous post about Using Reliance’s ZTE MG 880 USB Modem in Ubuntu please have a look at it as this post is an advanced version of connecting the Reliance ZTE MG 880 [...]

  2. i followed all instructions to install my datacard ZTE. But, the final output is this….
    srivara@ubuntu:~$ wvdial
    –> WvDial: Internet dialer version 1.60
    –> Cannot get information for serial port.
    –> Initializing modem.
    –> Sending: ATZ
    ATZ
    OK
    –> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
    ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
    OK
    –> Modem initialized.
    –> Configuration does not specify a valid phone number.
    –> Configuration does not specify a valid login name.
    –> Configuration does not specify a valid password.
    srivara@ubuntu:~$

    What could be the solution for this problem. Pl answer this to my id shrivara_AT_gmail

    regards,
    shri

  3. By the by my data card is CDMA 1x.
    shrivara

  4. even i got connected…

    today it says that …

    connected waiting for prompt….

    BUT connection could not be established.

    WHY ? pl clarify to me.

    shrivara@gmail.com

  5. thanks!!!!!
    just installed linux mint 6.
    this works like a charm.
    thanks again!!!!!

  6. I followed all instructions to install my datacard ZTE. But, the final output is this….
    root@veerendra-laptop:/home/veerendra# wvdial zte
    –> Ignoring malformed input line: “/dev/ttyUSB0″
    –> Ignoring malformed input line: “Stupid”
    –> WvDial: Internet dialer version 1.60
    –> Configuration does not specify a valid modem device.
    root@veerendra-laptop:/home/veerendra#

    pls help me

  7. thanx it is working.

  8. i have some problem to connect , i am not change the username and password .

  9. when i connect my modem following message appear

    sudhir@sudhir-laptop:~$ sudo wvdial zte
    –> WvDial: Internet dialer version 1.60
    –> Warning: section [Dialer zte] does not exist in wvdial.conf.
    –> Cannot get information for serial port.
    –> Initializing modem.
    –> Sending: ATZ
    ATZ
    OK
    –> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
    ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
    OK
    –> Modem initialized.
    –> Sending: ATDT#777
    –> Waiting for carrier.
    ATDT#777
    CONNECT
    –> Carrier detected. Waiting for prompt.
    –> Connected, but carrier signal lost! Retrying…
    –> Sending: ATDT#777
    –> Waiting for carrier.
    ATDT#777

    pls give me some sollution.
    Thanks

    • where you able to change the password and username? If not, there might be a semicolon at the beginning of the lline where you have to type in your username and password.

      then instead of “wvdial zte” use just “wvdial”. To use “wvdial zte”, you have to change [Dialer default] to [Dialer zte].
      Let me know if problem persist.

      P.S. Make sure the modem is activated (if you have windows try using it there once.

  10. I am following all the steps mention by you but still not able to connect to web. I am on Ubuntu .. here is what I am getting ..

    root@rushabh-laptop:/home/rushabh# wvdial zte
    –> WvDial: Internet dialer version 1.60
    –> Cannot get information for serial port.
    –> Initializing modem.
    –> Sending: ATZ
    ATZ
    OK
    –> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
    ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
    OK
    –> Modem initialized.
    –> Sending: ATDT#777
    –> Waiting for carrier.
    ATDT#777
    CONNECT
    –> Carrier detected. Starting PPP immediately.
    –> Starting pppd at Wed Jul 15 13:30:56 2009
    –> Pid of pppd: 4619
    –> Using interface ppp0
    –> pppd: �[11]� 0[08]�
    –> pppd: �[11]� 0[08]�
    –> pppd: �[11]� 0[08]�
    –> Disconnecting at Wed Jul 15 13:31:10 2009
    –> The PPP daemon has died: A modem hung up the phone (exit code = 16)
    –> man pppd explains pppd error codes in more detail.
    –> Try again and look into /var/log/messages and the wvdial and pppd man pages for more information.
    –> Auto Reconnect will be attempted in 5 seconds
    –> Cannot get information for serial port.
    –> Initializing modem.
    –> Sending: ATZ
    –> Sending: ATQ0
    ~[7f]}#@!}!}!} } Re-Sending: ATZ
    ~[7f]}#@!}!}”} }<}!}$}%j}"}&} } } } }#}$@#}%}&%Yut}'}"}(}"UB~~[7f]}#@!}!}#} }<}!}$}%j}"}&} } } } }#}$@#}%}&%Yut}'}"}(}"

    Please help me for the same ..

    Thanks in Advance ..

    Rushabh

    • Hey there,
      these problem can occur when the modem is not activated. I think you have to use a windows machine and dial *229 (some sought of this number) to activate the account. After this only you can use. Rest all is fine. The second problem may be, a weak network (i think its the 1st one)

  11. when i mount zte modem in ubuntu9.20
    following message appear
    s@s-laptop:~$ sudo mount -t usbfs none /proc/bus/usb.
    mount: mount point /proc/bus/usb. does not exist

    pls help

  12. Hi Guys,
    I think this link will be useful for those whose datacard is not working.
    http://prithisd.blogspot.com/2007/12/reliance-zte-cdma-1x-mg880-working-with.html

  13. Hi
    I have an Airtel’s Micromax EDGE USB Modem Model NO. MMX 610u. I am trying to configure it with Ubuntu 9.04. my lsusb shows this
    Bus 006 Device 007: ID 067b:0612 Prolific Technology, Inc.
    dmesg shows this
    [ 1067.903551] usb 6-2: configuration #1 chosen from 1 choice
    [ 1069.455252] USB Serial support registered for pl2303
    [ 1069.455291] pl2303 6-2:1.0: pl2303 converter detected
    [ 1069.467264] usb 6-2: pl2303 converter now attached to ttyUSB0
    [ 1069.467296] usbcore: registered new interface driver pl2303
    [ 1069.467302] pl2303: Prolific PL2303 USB to serial adaptor driver
    but wvdialconf
    cannot detect the modem.
    can u please help

  14. [...] Using Reliance’s ZTE MG 880 USB Modem in Ubuntu « Page Load Error | Anshuman Pa… a few seconds ago from choqoK in context [...]

  15. Hi Anshuman,
    Thanks for great post.
    I am facing problem while installing Reliance Netconnect on my Ubuntu 8.04
    I am not able to perform step 4
    When I execute modprobe command, it does not print those lines through dmesg

    My usb/devices list is also different

    T: Bus=06 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
    D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
    P: Vendor=19d2 ProdID=fff5 Rev= 0.00
    S: Manufacturer=ZTE, Incorporated
    S: Product=USB Storage
    S: SerialNumber=000000000002
    C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA
    I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
    E: Ad=89(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
    E: Ad=0a(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms

    Somehow usb device is getting “usb-storage” as the driver instead of
    usbserial_generic
    Is this kernel bug ?
    I have “Linux 2.6.27-11″.
    How do I force it to choose serial driver ?

    I have tried doing usb_modeswitch
    with following configuration. But it does not work
    I have also tried passing usbserial.vendor=0×19d2 usbserial.product=0xfff1 to kernel. That does not seem to work

    ########################################################
    # /etc/usb_modeswitch.conf
    #
    # Smart ZTE AC2726 (EVDO)
    #

    DefaultVendor= 0×19d2
    DefaultProduct= 0xfff5

    TargetVendor= 0×19d2
    TargetProduct= 0xfff1

    MessageContent=”5553424312345678c00000008000069f030000000000000000000000000000″

    I got it from internet that fff5 is storage for this perticular device
    and fff1 is modem

    Thanks in advance.

    BTW, things are working well on windows.

    • Well it seems You are trying out the Reliance Broadband… The ZTE EVDO gives such sought of reactions. I stumbled upon this site,
      http://www.tuxhat.com/linux/reliance-netconnect-broadband-on-linux/
      well the content seem pretty relevant to me. So I suggest You trying it out. I am sorry that I couldnt be of much help because I do not use the modem that You are using.

      If you upgrade to higher version (but i think its better to stick with LTS), in 9.04 there is an option for Auto CDMA connection, configuring which may allow you to use the modem properly.

      • I got it working by doing following settings

        Usb_modeswitch was hanging while inquiring device (I need to debug the program to find out exact reason), there is a way to make it not inquire the device

        I added following line to usb_modeswitch.conf

        InquireDevice= 0

        and it successfully changed product id to fff1 (modem) from fff5( stoage_device)

        and then it worked fine.

  16. Thanks a lot for sharing your idea and experience

  17. usbcore: registered new interface driver usbserial
    this line i am not getting
    and when i try to mount message shows that it should be done by root

  18. I have a problem..
    I am using Reliance MG880.It is showing lock mark on network connection.What is exactly problem.Is it network related problem ?

    • no its not a problem.its because ubuntu doesn’t recognize the modem by default. after doing the steps open firefox and go to file–>work offline(uncheck(remove the tick))… :)

  19. i tried ur method in ubuntu 9.10 but it didn’t work

    when i was running the wvdial.conf file it gave the following output…
    [Dialer not found
    Init1 : not found
    Init2 not found
    Modem Type : not found…..
    similarly for all the one….

    please help me

    • Not very sure why such a thing came. However, let me try it once in 9.10 and get back to you. Make sure u configure the wvdial.conf file under /etc/ properly

  20. the problem is solved… i connected ubuntu 9.10 through different internet connection and got the updated… then when i accidently connected my device it actually was showing in the network connection automatically…

  21. when u boot ubuntu u need to open the terminal and execute the command:
    sudo modprobe usbserial vendor=0×19d2 product=0xfffd

    then only u need to connect the device to the laptop. after that the os will recognise the device.

    but one has to configure the device which can be done through
    system -> preference -> network connections

    there will be an option called MOBILE BROADBAND where u can add the device and configure by giving the required password

    • well, we first put the modem in and then execute the modprobe command.

      in ubuntu 8.10 and 9.04 there was not reliance option.

  22. I have a problem in step :4 as….

    root@ubuntu:~# sudo modprobe usbserial vendor=0×19d2 product=0xfffd
    FATAL: Module usbserial not found.

    • Which modem are u using?I am using 9.10 and didnt find any trouble. The only problem that i faced was that there was no wvdial. So had to install that. But after that just usual steps.

      If U are using Reliance Broadband there myt be a problem. For this see Prafulla T’s comment above. See if that can be of any help.

      • no, I’m using mg880, i.e. Reliance CDMA 1x, black color modom.

        now tell me what to do for this problem in Linux 9.04

        root@ubuntu:~# sudo modprobe usbserial vendor=0×19d2 product=0xfffd
        FATAL: Module usbserial not found.

    • try executing dmesg first…
      u can see in the last line after executing if the device is connected or not…

  23. using ubuntu 9.04, please help, I’m a noob to linux

  24. one more thing I wanna ask is : is there any method to switch b/w windows & ubuntu without rebooting computer

  25. Ok.. Rahul do one thing. Go to Places on the top menubar on ur desktop. Select search files. Search usbserial there.

  26. File not found….!

    now what should I do..?

  27. :)
    Upgrade the kernel

  28. I think I need a connection to internet upgrade that…!

Leave a Reply